首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更名为同步时钟吗?

更名为同步时钟吗?
EN

Stack Overflow用户
提问于 2015-01-15 16:38:28
回答 2查看 190关注 0票数 3

假设我有一个密码:

代码语言:javascript
复制
wire clk1;
wire clk2;
assign clk1 = Clk;
assign Clk2 = Clk;

现在,clk1和clk2被用来对各个模块进行时钟,并遍历设计的层次结构。在层次结构的某个地方,如果一个模块被clk1时钟,它的输出是否与来自module2的另一个同步?

例如:

代码语言:javascript
复制
reg r1;
always @ (posedge clk1)
    r1 <= rSomething;

reg r2;
always @ (posedge clk2)
    r2 <= r1;

这个代码有效吗?综合工具(Altera工具链)会保持这两个时钟的倾斜吗?还是只在命名相同的时钟上保持倾斜,而clk1和clk2将停止同步,尽管它们的源是共同的?

谢谢

EDIT1 :这是为了合成,而不是模拟。

EDIT2:更改了第二个代码示例。我试图分配r2 <= r1,而不是像我们前面那样反过来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-15 18:28:59

合成器将将您的设计输入转换为表示逻辑结构的内部netlist。这通常分两个阶段完成。首先是表示抽象操作的高级行为形式,然后是直接实现目标体系结构的逻辑原语的技术映射表单。在这个转换过程中,clk1clkl2将被看作是与clk在拓扑上等价的,它们将被视为一个组合网。

正常的时钟缓冲区插入过程将考虑到统一网络中所有叶节点的倾斜。任何时间限制都需要放在clk上。试图独立地约束clk1clk2可能会产生不可预测的结果。

票数 2
EN

Stack Overflow用户

发布于 2015-01-15 17:50:23

重命名的时钟保持同步。一种显式的连续分配,类似于通过连接信号名称和端口名称不同的端口传递信号。

但是,据我所知,没有任何综合工具会让您从多个过程中为同一个变量分配任务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27968410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档