99问答网
所有问题
verilog语句执行顺序的疑问?
小弟刚学verilog,有些疑问,模块里面always、intial、模块引用、门实例这些语句块是并行执行还是串行?不胜感激
举报该问题
推荐答案 推荐于2018-03-12
可综合的都是并行执行的。其实也不难理解,verilog是硬件语言,也就可以看成是一个电路。在实际的电路中没办法延迟,没办法让一边先通电,再让另一边通电,所以一切都是同时进行的。
这并行的前提都是“可综合”。
如果是写testbench,会用到不可综合的模块,这些模块是行为级的,在实际电路中无法实现。比如task,比如阻塞赋值等等,这些都是有顺序的。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/vWttOt7Wv.html
其他回答
第1个回答 推荐于2016-10-08
所有块是并行的。always块和forever通电后只要满足触发条件就始终执行,initial是仿真用的,只执行一次。
举例如下:
always@(posedge clk)
begin
a=b;
c=d;
end
always@ (posedge clk or negedge rst)
if(scl)
df=1'b1;
else df=1'b0;
上面的两个块为并行。在时钟上升沿到来时同时判定两个always块内逻辑是否符合,符合则执行相关语句。
第2个回答 2010-12-27
各个ALWAYS模块都是并行执行的,这比较难理解,你需要慢慢理解
相似回答
verilog
task内部
语句执行顺序
答:
顺序语句是执行完一句再执行下一句
。如果有非阻塞就要按照并行处理,再说几个概念: 并行,顺序:verilog主要的模块之间都是并行执行的,例如各个always之间 如果你在一个always中要对a赋值,而在另一个always中要使用a的值,这时候就要注意了,两者并行的,处理先后不能确定。 你当前处理的a,是这个时钟...
Verilog
中
顺序语句
begin……end中的语句是怎么
执行的?
是不是一条语句...
答:
begin 。。。end之间是
顺序执行的
但是你这里又是非阻塞赋值 又是for
语句
就比较复杂了 不过还是可以分析出来 首先非阻塞赋值是在这个模块结束的时候一起完成赋值的 并不是下一个下降沿才执行 这个模块最后一条语句就是赋值语句 所以基本上是立即执行了 (阻塞赋值是立即执行的,如果有多...
verilog
问题,能解释下为什么是这个答案吗
答:
casex是
顺序执行的
满足条件就退出 所以5‘b00
???
是满足5’b0x000的 因为这里‘x’和‘?’ 一样会被看成是任意满足的数值。如果在实际电路里面这种语义的东西是综合不出来的。所以请尽量避免进到casex()的信号是带有x数值的信号。
有关
verilog
里always的问题……?
答:
他们如何同时进行,如何确保各自的食物被照顾到?这在电子电路中涉及竞争与冒险现象。因此,将此类任务交由一个“always”
执行
即可。这样,“always”兄弟将按照
顺序
逐步完成任务,确保每个环节得到妥善处理。希望这个解答能帮助您理解
Verilog
中的“always”机制。如有不当之处,欢迎指正。
这几天没事,又看了看老夏的
VERILOG的
那本数,发现了一些宏观上不太理解...
答:
1、c
语言
是一条一条编译的,同时它又是
顺序执行
的,所以不会有问题。2、但是
verilog
或者VHDL语言呢就不一样了,这两种语言描述的硬件是并行执行的,但是编译或者仿真又是
顺序的
,就有可能出问题了。举个例子说明下:在一个always里面你对一个信号连续两次赋值了,在硬件上这两个是同时的,那应该给...
关于
verilog
中两个always的关系问题
答:
第一个always块中把enclk当成普通信号而把datain当时钟信号,第二个always块中把enclk当时钟信号,这在一般的设计当中是不允许的。如果非要这样用,则因为有多个时钟,需要特别做同步处理,否则做成的硬件不能正常工作。
Verilog
HDL中怎么让块
语句顺序执行?
答:
如果是用于仿真的代码 可以添加延时
语句
如果是可综合代码 不妨增加一个控制信号放到第一个Always里面和第二个Always的敏感列表中 当满足你希望第二个Always开始的条件时触发第二个
关于
verilog
中initial和always的使用问题
答:
此外,
Verilog
HDL
语言
提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和
运行
。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构...
verilog
中多个always的困惑
答:
是并行的 你要注意他们是出于不同的时钟上升沿下,两个always是同时起作用的,第一个计算tempa、tempb,而此时第二个always中tempa、tempb还是上一周期算出的tempa、tempb;也就是说第一次需要两个周期才能出一个结果的,以后每周期出一个结果的 你这里相当于流水了,不知道你明白不?
大家正在搜
verilog语言基本语句
verilog并行语句有哪些
verilog语言赋值语句
verilog循环语句的使用
verilog when语句
case语句verilog
verilog中always语句
下面哪种语句不是顺序语句
语句执行顺序
相关问题
verilog 中什么语句并行运行什么时候顺序运行!搞不懂 ...
Verilog HDL中怎么让块语句顺序执行?
Verilog中顺序语句begin……end中的语句是怎么执...
verilog中哪些是并行执行的,哪些是顺序执行的
Verilog语言顺序
verilog中always语句内的各语句是否是顺序执行
Verilog HDL中怎么让块语句顺序执行
forever内的语句在fpga 中是顺序执行的还是并行执行...