微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 小白求助,一个电路问题

小白求助,一个电路问题

时间:10-02 整理:3721RD 点击:





如图所示,一篇硕士论文里的一个图,图的意思是在是在s1节拍选择CA3,并在S1的节拍末写入寄存器中,因为clk下降沿与s1重合(右图所示),所以图中是clk下降沿触发,但这样以来clk下降沿触发,那s1也变成了0,选择器选择的是寄存器本身的值,也就是CA3永远写不进去啊!
大家指导一下呀!

哪有对得刚刚好的,如果不是异步的,一个信号宽度是一个周期,满足时序就会被采样到。






S1是在节拍信号发生器根据clk产生的四个节拍之一,就是一个clk周期,是同步逻辑,那我怎么才能在S1节拍末把在S1节拍产生的信号写入寄存器呢

这样就可以啊。时钟沿先来,然后才是数据变化,仿真的时候加个#1,有利于新人理解。



   那这样建立时间成立,但保持时间不一定成立呀!怎么办呢

低速情况下这些时序都不是你要考虑的问题,工具会帮你搞定,所以你自己做功能仿真OK就行了。



   对对!谢谢指导!

可否用S1代替CLK?



   不行,这个电路就靠s1比clk延迟的那么一点点时间



   我在写顶层模块的时候,声明了一个wire型的数据总线DB, 子模块1满足某条件下输出DB1,不满足是高阻态,子模块2里满足某条件输出DB2,不满足是高阻态,两个模块往总线上写数据的时间也不冲突,例化时模块1是.DB1(DB),模块2是.DB2(DB),仿真时DB1却一直是不定态,DB2却一直是高阻态,如果我写成.DB1(DB1),在顶层模块声明一个DB1线,DB1的输出就正确了,但这个线不是我要的总线,求大神指导!

模块1中是这样的吗?
reg DB1_reg;
wire DB1 = 条件 ? DB1_reg : 1'bz;
模块2中是这样的吗?
reg DB2_reg;
wire DB2 = 条件 ? DB2_reg : 1'bz;

第一个问题,时序是什么都没理解,最最简单的同步逻辑。
第二个问题,线与了。

顶一下。

这不就是带使能的D触发器么?S就是使能信号。

    今天做代码覆盖率的时候用6.2b做是对的,但用6.1c做加入代码覆盖率后编译出现了两个表达覆盖unsupported infix oprator 和一个条件覆盖unsupported variable type,并且导致功能仿真也错了,求助!


    今天做代码覆盖率的时候用6.2b做是对的,但用6.1c做加入代码覆盖率后编译出现了两个表达覆盖unsupported infix oprator 和一个条件覆盖unsupported variable type,并且导致功能仿真也错了,求助!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top