当前位置:首页 >> 核电技术聚变聚能设备 >> 【Verilog HDL】语句的并发执行,广州太平洋电脑网

【Verilog HDL】语句的并发执行,广州太平洋电脑网

cpugpu芯片开发光刻机 核电技术聚变聚能设备 3
文件名:【Verilog HDL】语句的并发执行,广州太平洋电脑网 【Verilog HDL】语句的并发执行 1. 实践得到的启发

先从一个简单的现象得出结论,Verilog语句是并发执行的!

同时,这也是**$monitor系统任务为全局有效**的一个重要支持因素,如果没有并发,它是完不成这项功能的实现的。

众所周知,高级语言通常都是自上而下编译和执行的,但是Verilog硬件描述语言不一样,它更喜欢并发执行。

这是一门直接触及底层硬件编程的语言,效率非常高,并发执行是为了适应它所处的环境。

先来看看一下激励块代码:

module stimulus;// 设置激励信号reg I0 = 1,I1 = 0,I2 = 1,I3 = 0,I4 = 1,I5 = 0,I6 = 1,I7 = 0; // 输入数据信息reg S2,S1,S0; // 地址输入端信息,注意使用“小端序”wire OUT; // 输出数据mux8_to_1 M8T (I0,I1,I2,I3,I4,I5,I6,I7,S2,S1,S0,OUT);// 设置信号监视器initialbegin$monitor ($time," S2 = %b, S1 = %b, S0 = %b, OUT = %b\n",S2,S1,S0,OUT); // 注意【\n】end// 设置激励信号initialbegin// $display ("I0 = %b, I1 = %b, I2 = %b, I3 = %b, I4 = %b, I5 = %b, I6 = %b, I7 = %b\n"// ,I0,I1,I2,I3,I4,I5,I6,I7);#1 S2 = 0; S1 = 0; S0 = 0;#1 S2 = 0; S1 = 0; S0 = 1;#1 S2 = 0; S1 = 1; S0 = 0;#1 S2 = 0; S1 = 1; S0 = 1;#1 S2 = 1; S1 = 0; S0 = 0;#1 S2 = 1; S1 = 0; S0 = 1;#1 S2 = 1; S1 = 1; S0 = 0;#1 S2 = 1; S1 = 1; S0 = 1;endendmodule

输出结果为:

0 S2 = x, S1 = x, S0 = x, OUT = x1 S2 = 0, S1 = 0, S0 = 0, OUT = 12 S2 = 0, S1 = 0, S0 = 1, OUT = 03 S2 = 0, S1 = 1, S0 = 0, OUT = 14 S2 = 0, S1 = 1, S0 = 1, OUT = 05 S2 = 1, S1 = 0, S0 = 0, OUT = 16 S2 = 1, S1 = 0, S0 = 1, OUT = 07 S2 = 1, S1 = 1, S0 = 0, OUT = 18 S2 = 1, S1 = 1, S0 = 1, OUT = 0

观察可得,不仅仅两个initial块是并发执行的,并且他们还是从仿真时刻为0的时候就开始并发执行了。

【疑问】(未解决) Vivado 2017.4中 红圈圈是意味着并发执行吗?暂时不知道,后续再研究。 —————————— 后续深入内容以后再说

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接