mokang0421 发表于 2013-10-14 11:05:48

always语句牛角尖

   always@(posedge clk)
         begin
               块语句            //注意 假设这个块语句要执行10ms才能执行完
         end


如果在这个10ms之间又发了 clk的上升沿,那么 是继续执行块语句       还是重头再来?

咖啡可乐 发表于 2013-10-14 11:16:40

瞬间完成,不可能10ms。
这不是单片机指令,不存在指令周期时间,只是内部逻辑门延时。

kenson 发表于 2013-10-14 13:27:42

逻辑上好像没有这个情况的哦,并行处理一下就完了假如下面还有另外一个判断那就要等到下个时脉了。如:状态机

kebaojun305 发表于 2013-10-14 13:38:11

本帖最后由 kebaojun305 于 2013-10-14 13:40 编辑

2楼说的对    在一个楼主如果出现你这种现象那么你的电路设计绝对是错误的。 电路不可能正常工作。

usingavr 发表于 2013-10-14 17:10:53

楼主还没理解硬件描述语言,当成软件编程语言了

brahen 发表于 2013-10-14 17:23:09

。。。。。。。。你让你的老师情何以堪。

浮云残雪 发表于 2013-10-14 18:27:01

楼主以前是做软件开发的吧。一定要在写verilog代码时想着它的硬件实现。这是硬件电路,不是软件开发。

cmos2345 发表于 2013-10-14 18:35:23

BL 一笑而过

oped001 发表于 2013-10-14 18:41:32

组合逻辑从这头到那头应该用不了10ms

yuyu87 发表于 2013-10-14 19:03:08

这是硬件电路,首先
另外,比如典型 的EPM240它的运行频率是<400MHZ,

lans0625 发表于 2013-10-14 19:22:14

我用VHDL也有过这样的疑惑....{:lol:}

DOER 发表于 2013-10-14 19:25:11

问的很有道理,毫无疑问,逻辑会发生混乱。begin块内部是顺序执行的,和C程序一样。即便是硬件,也不可能瞬间完成,必须保证在下一个CLK来之前完成当前块。

lihui_mc 发表于 2013-10-14 20:16:39

10ms 啊? 你估计得用10 000 000个非门串起来才有10ms

超群天晴 发表于 2013-10-14 22:35:31

如果有延时,也是组合逻辑的门延迟。ms级别是不可能,ns倒还有可能。如果这种情况,要么分割组合逻辑,增加pipeline,要么修改组合逻辑。数电是基础,编程只是工具。verilog不是C

超群天晴 发表于 2013-10-14 22:37:12

DOER 发表于 2013-10-14 19:25 static/image/common/back.gif
问的很有道理,毫无疑问,逻辑会发生混乱。begin块内部是顺序执行的,和C程序一样。即便是硬件,也不可能瞬 ...

‘begin块内部是顺序执行的’
呵呵

wangjun403 发表于 2013-10-15 09:09:51

DOER 发表于 2013-10-14 19:25 static/image/common/back.gif
问的很有道理,毫无疑问,逻辑会发生混乱。begin块内部是顺序执行的,和C程序一样。即便是硬件,也不可能瞬 ...

begin块内部是顺序执行的, 我猜只是在语法分析的时候这样理解

实际电路,几个同时的赋值,怎么可能会有顺序

DOER 发表于 2013-10-15 09:43:59

wangjun403 发表于 2013-10-15 09:09 static/image/common/back.gif
begin块内部是顺序执行的, 我猜只是在语法分析的时候这样理解

实际电路,几个同时的赋值,怎么可能会有 ...

你见过很长的begin块吗?
这个你可以实践下,写一个很长的begin块,然后将这个很长的begin块拆分为很多个小的begin块,运行在很高的CLK下比较。
begin块内部是串行执行的,就好像很多级门电路串在一起,时间总是需要的,楼主只是打个比方说是10ms。

acmilannast 发表于 2013-10-15 09:52:31

fpga 看上去是编程 其实不是编程 生成的都是硬件 你的换换思路

acmilannast 发表于 2013-10-15 09:54:08

DOER 发表于 2013-10-15 09:43 static/image/common/back.gif
你见过很长的begin块吗?
这个你可以实践下,写一个很长的begin块,然后将这个很长的begin块拆分为很多个 ...

门级延时都是n秒级别的,如果真的出现这个问题 就是数字电路中 竞争 冒险的问题的。一遍设计工具可以优化这些问题的。

DOER 发表于 2013-10-15 10:00:50

acmilannast 发表于 2013-10-15 09:54 static/image/common/back.gif
门级延时都是n秒级别的,如果真的出现这个问题 就是数字电路中 竞争 冒险的问题的。一遍设计工具可以优化 ...

ns级的延迟已经很长了,200M的时钟也就5ns的周期,经得起延迟几次呢?

cuiliang1984 发表于 2013-10-15 11:23:19

楼主描述的现象只是假设,实际情况就是竞争冒险,会出现亚稳态,综合工具给出的最大clk频率值是要保证满足时序约束的情况下的最大值。即便缩小假设延时值,实际应用中为满足时序或数据速率要求,多会进行多级流水,乒乓操作,串并传换等等。

hyghyg1234 发表于 2013-10-15 11:26:00

一个硬件电路跑10ms,吓死人啊

mokang0421 发表于 2013-10-15 11:49:01

DOER 发表于 2013-10-15 09:43 static/image/common/back.gif
你见过很长的begin块吗?
这个你可以实践下,写一个很长的begin块,然后将这个很长的begin块拆分为很多个 ...

嗯是的就是假设    那我不妨假设 200M时钟的clk      块语句门延迟时间要是大于5ns   是不是电路设计错误了就

putty 发表于 2013-10-15 11:51:39

HDL是硬件描述语言
切记,重点是描述两个字.一个电路,我用原理图是描述,我用HDL也是描述,两者是等同的.没有什么顺序执行的概念.

DOER 发表于 2013-10-15 12:19:55

mokang0421 发表于 2013-10-15 11:49 static/image/common/back.gif
嗯是的就是假设    那我不妨假设 200M时钟的clk      块语句门延迟时间要是大于5ns   是不是电路设计错 ...

如果门电路串的太多,延迟有可能大于时钟周期。此时就要用流水线,延迟几个时钟后取出正确的结果。这种情况很常见,我们不可能要求逻辑电路翻转速度无限。

acmilannast 发表于 2013-10-15 13:04:55

DOER 发表于 2013-10-15 10:00 static/image/common/back.gif
ns级的延迟已经很长了,200M的时钟也就5ns的周期,经得起延迟几次呢?

回去好好看看 数字电路 竞争冒险。

xiaocaofei 发表于 2013-10-15 15:05:19

路过,受教了

隐姓埋名 发表于 2013-10-16 00:43:00

楼主不要心急去解决这个问题,也许现在很多人跟你说你都无法理解,你坚持学习下去,你自己就会得到答案的,记住Verilog HDL是硬件描述语言,多学点基础,多找些资料,也许你就有了答案

macaroni 发表于 2013-10-16 08:54:26

always块内的都是寄存器级别的电路,也就是一级二级寄存器的事情~

huatong 发表于 2013-10-17 13:43:42

这个情况时序分析报告可以看到问题,到时就改一下吧,比如加流水线。

wangjun403 发表于 2013-10-18 09:23:16

DOER 发表于 2013-10-15 09:43 static/image/common/back.gif
你见过很长的begin块吗?
这个你可以实践下,写一个很长的begin块,然后将这个很长的begin块拆分为很多个 ...

alway
begin
a <= b
c <= a
d <=c
end
如果是这样,那肯定是串行

alway
begin
a <= a1
b <= b1
c <=c1
end
如果是这样,还是串行,我死都不信

wangjun403 发表于 2013-10-18 09:25:34

DOER 发表于 2013-10-15 12:19 static/image/common/back.gif
如果门电路串的太多,延迟有可能大于时钟周期。此时就要用流水线,延迟几个时钟后取出正确的结果。这种情 ...

从逻辑上来说, 延迟和同时发生,以及串行没有相关性

同时发生的事件可以因为延迟的不同而导致先后的顺序,但这并不能说明他是串行的

thought224 发表于 2013-10-22 12:00:05

还是在单片机里,没跳出来呢,呵呵!

mokang0421 发表于 2013-11-7 11:16:00

thought224 发表于 2013-10-22 12:00 static/image/common/back.gif
还是在单片机里,没跳出来呢,呵呵!

人总会有菜比的时候呵呵
页: [1]
查看完整版本: always语句牛角尖