verilog能生产这么快速执行的代码么

2020-02-23 10:43发布

各位大神,
  刚学VERILOG,有问题如下请教:
     如用 always @(posedge clk)  即CLK的上升沿会触发always语句内部的动作,但有个问题很担心----
     问题:always语句里如果有比较复杂的操作,从而在触发后由于动作复杂还消耗时间太长,导致在一个周期内没有执行完,但下一个时钟周期又来了,这样不是“死”在里面了?   
       我是这么想的,或许综合的时候会通不过?目前我只会用modelsim仿真,多谢啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
llf021421
1楼-- · 2020-02-23 16:38
你要把组合逻辑和时序逻辑分开来做
always@(posedge clk)用来描述的是时序逻辑电路,就是给触发器赋值,时间是很快的
always@(*)是用来描述组合逻辑,如果组合逻辑的传播延时太长的吧,就加入流水线或修改组合逻辑,这样会提高时钟频率
huangxz
2楼-- · 2020-02-23 20:18
 精彩回答 2  元偷偷看……
luyaker
3楼-- · 2020-02-24 00:03
这就是你要解决的所谓时序问题了,要满足建立时间和保持时间,具体你要深入学习,内容比较多
ococ
4楼-- · 2020-02-24 02:33
楼上正解。
感觉你还是用的软件思维。硬件描述语言没有所谓的死在里面。
要用正确的描述方式也就是代码风格加合适的时序约束来保证你的设计能达到预期的频率。
Magina_xm
5楼-- · 2020-02-24 06:14
完全是软件的思维,还是得了解下数字电路啊!
haitaox
6楼-- · 2020-02-24 08:09
你的意思是不是频率太高了,导致时序不满足了

一周热门 更多>