求助:Verilog 中,怎么把不同时钟的模块弄到一起???

Verilog中,怎么把不同时钟的模块弄到一起???如:顶层模块包含几个小模块,这几个小模块的工作时钟都不相同,该怎么做??请举例说明,非常感谢!!!... Verilog 中,怎么把不同时钟的模块弄到一起???如:顶层模块包含几个小模块,这几个小模块的工作时钟都不相同,该怎么做??
请举例说明,非常感谢!!!
展开
 我来答
2403102028
2011-08-23 · TA获得超过340个赞
知道答主
回答量:37
采纳率:0%
帮助的人:68.2万
展开全部
这是时钟域的问题,得看你的几个时钟的关系如何,比如你的两个时钟是由同一个时钟源分频出来的(也就是两个时钟有频率和相位的固定关系),那么是可以直接用的;如果你的两个时钟是异步的(就是频率和相位都没有关系),那么你需要先进行同步化处理之后,两个模块的信号才能交互。
如果是简单的单bit信号,直接打两拍之后就可用了;
如果是CPU和一个芯片传输数据,时钟频率没有关系,那么从CPU传进来的数据就需要进行同步化处理,比如交互是由一个片选cs和使能rw_en信号控制的,那么就需要将rw_en信号延迟两拍,取得rw_en信号的跳变边沿,然后CPU传输的数据都在这个边沿进行传输就可以了
基本的思想是这样的,具体的电路是在这种思想上生成的。
追问
怎么延迟,是像楼上说的用触发器打两拍吗?具体是怎么做的,能举例说明吗?
追答
具体做法是想让时钟之间没有关系的CPU和芯片交互,比如rw_en高有效,CPU的使能rw_en信号打三拍,用打两拍的信号和打三拍的信号的反相与rw_en_raise=(rw_en_2ff & (~rw_en_3ff)),rw_en_raise信号就是可以用的采样使能信号,可以在这个信号为高期间采样CPU的地址信号或者数据信号了,应该很明白了吧。上面仁兄说的打两拍的是对于单比特数据来说的,就是比如你判断CPU写数据时候,CS信号就是用触发器延迟两个时钟周期就可以拿来判断了
ppc68
2011-08-23 · TA获得超过581个赞
知道小有建树答主
回答量:1257
采纳率:100%
帮助的人:779万
展开全部
只要不影响系统功能,不同时钟也没关系,在顶层文件里例化就是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hebmaqian
2011-08-23 · TA获得超过155个赞
知道答主
回答量:77
采纳率:0%
帮助的人:75万
展开全部
怎么没有关系。。
1》对于没有联系的模块和信号,直接例化和引出来就可以了;
2》有联系的信号,但是处于不同的时钟域,就需要同步了。简单的处理方法就是用两级触发器打两拍,触发器时钟用需要同步到的时钟域的。
追问
能举例说明一下,怎么用触发器打两拍吗?谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式