微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求助:vhdl和verilog的时钟沿采样传输数据问题

求助:vhdl和verilog的时钟沿采样传输数据问题

时间:10-02 整理:3721RD 点击:
求助:vhdl和verilog的时钟沿采样传输数据问题,我才学vhdl不久,看到其他代码不管数据是上升沿变化还是下降沿变化,都是用的时钟上升沿采样的数据。我觉得这样不能有效采样数据啊,特别是verilog的代码,时钟都是用的上升沿,这样通过功能仿真不能有效采样的啊。但代码下载到硬件上运行还是正常的,比如说sdram接口控制的例程。
     我举一个例子:我用clk100m的上升沿变化产生数据(clk100m上升沿变化时,数据发生变化),在另一个模块我也用同一个clk100m采样这个产生的数据,功能仿真的话,用下降沿可以有效采样,但用clk100m上升沿采样的话,怎样能有效采样,保证代码正常运行呢?
     这个问题困惑比较久了,望大家给点建议,谢谢!

你用clk上升沿产生数据,并不意味着数据真的在clk上升沿变化,而是会延时的,你时序仿真下就知道了

对呀posedge clk后经过了hold time数据才开始发生变化,同样用posedge clk采样,实际上是下一个上沿采样到前一次产生的数据,而这一次新产生的数据还在trans中



谢谢你的回答,也就是说我都用时钟上升沿,也可能达到有效采样吗?也有可能达不到?你写代码都是用的时钟clk的上升沿吗?



   谢谢你的回答,请问你写带代码都是用的clk上升沿吗

你需要知道setup/hold的概念。后仿或者前仿加延迟参数就能看出来了。你可以理解为当前clk采的是上一个clk上升沿之后的数据



    都说叫你时序仿真下就知道了、



   用的quartus 11.0,没有时序仿真,只用modelsim进行的功能仿真,你用modelsim进行过后仿真吗?



   可以的

建议重修数字电路,重点是时序电路部分。



   说白了一般尽量都用posedge clk写代码,这样简单一致,便于后续流程自动完成。至于能不能成功采样,有timing check工具检查。上升沿发下降沿采的设计也不是没有,基本都是特殊场合,也有sdc约束

上升沿下降沿都可以啊!

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

网站地图

Top