当前位置:网站首页>Verilog tutorial (11) initial block in Verilog
Verilog tutorial (11) initial block in Verilog
2022-07-04 23:59:00 【mb611f1478c9b26】
List of articles
- Preface
- Text
- Grammar format
- initial What is the block used for ?
- initial When the block begins and when it ends ?
- How many... Are allowed in a module initial block ?
Preface
In a simulation, a set of Verilog sentence . These statements are placed in a block . stay Verilog There are two main types of blocks in –initial Block and always block .
Text
Grammar format
initial Block can be understood as an initialization block , stay initial The starting position of the statement in 0 The moment begins to execute , After that, if there is a delay , The next statement is executed after the delay .
The syntax is as follows :
initial
[single statement]
initial begin
[multiple statements]
end
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
If initial There are multiple statements in , Then place the begin …end Between .
initial What is the block used for ?
The initial block is not integrable , So it can't be converted into a hardware schematic with digital elements . Therefore, in addition to being used in simulation , It doesn't help much . These blocks are mainly used to initialize variables and design ports with specific values .
Be careful : In chip logic design ,initial Blocks really can only be used for behavioral simulation , But in FPGA In design , Simple use initial The initialization of variables can be integrated .
for example :
reg a, b, c;
initial begin
a = 0;
b = 0;
c = 0;
end
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
But we initialize more at the moment of variable definition , This is the recommended usage .
for example :
reg a = 0;
- 1.
Or use a reset signal to initialize , But this will increase the burden of generic cabling , You can consciously reduce , Unless you have to .
for example :
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
initial When the block begins and when it ends ?
At the beginning of the simulation , In time 0 Unit starts an initial block . Throughout the simulation process , This block of code is executed only once . once initial All statements in the block are executed ,initial The execution of the block ends .
If initial There's just one sentence in the block , So the beginning is the end , The statement is executed to end this initial block , Such as :
The code shown in the figure below has an extra statement , It gives the signal b Assigned some values , But this only happens when the previous statement is executed 10 After units of time . It means a First assigned to a given value , And then in 10 After units of time ,b Assigned to 0.
How many... Are allowed in a module initial block ?
There can be multiple ( Arbitrarily )initial block .
Multiple initial Blocks are executed simultaneously , It's all from the moment 0 Start execution .
The code shown in the figure below has three initial blocks , All the initial blocks start and run in parallel at the same time . However , According to the statement and delay in each initial block , The time required to complete the block may vary .
$finish It's a Verilog System tasks , It tells the emulator to terminate the current simulation .
If the last block has 30 Time unit delay , As shown in the figure below , The simulation will be in 30 Time units end , So it killed all the others that were active at the time initial block .
initial begin
#30 $finish;
end
- 1.
- 2.
- 3.
Reference material
- WeChat official account : FPGA LAB
边栏推荐
- [paper reading] Tun det: a novel network for meridian ultra sound nodule detection
- 如何用快解析自制IoT云平台
- How to save your code works quickly to better protect your labor achievements
- Font design symbol combination multifunctional wechat applet source code
- What is the difference between port mapping and port forwarding
- 45岁教授,她投出2个超级独角兽
- 城市轨道交通站应急照明疏散指示系统设计
- 同事的接口文档我每次看着就头大,毛病多多。。。
- Application of multi loop instrument in base station "switching to direct"
- 微服务(Microservice)那点事儿
猜你喜欢
Fast parsing intranet penetration helps enterprises quickly achieve collaborative office
Font design symbol combination multifunctional wechat applet source code
高配笔记本使用CAD搬砖时卡死解决记录
Application of multi loop instrument in base station "switching to direct"
How to apply for PMP project management certification examination?
Hash table, hash function, bloom filter, consistency hash
【雅思阅读】王希伟阅读P4(matching1)
Why does infographic help your SEO
业务场景功能的继续修改
Acrel-EMS综合能效平台在校园建设的意义
随机推荐
Font design symbol combination multifunctional wechat applet source code
In the enterprise, win10 turns on BitLocker to lock the disk, how to back up the system, how to recover when the system has problems, and how to recover quickly while taking into account system securi
巩固表达式C# 案例简单变量运算
PaddleOCR教程
模板的进阶
多回路仪表在基站“转改直”方面的应用
C语言中sizeof操作符的坑
The caching feature of docker image and dockerfile
蓝天NH55系列笔记本内存读写速度奇慢解决过程记录
香港珠宝大亨,22亿“抄底”佐丹奴
Fast parsing intranet penetration helps enterprises quickly achieve collaborative office
It's too convenient. You can complete the code release and approval by nailing it!
go踩坑——no required module provides package : go.mod file not found in current directory or any parent
Pytoch --- use pytoch to realize linknet for semantic segmentation
快解析——好用的内网安全软件
PMP certificate renewal process
Cross domain request
Jar批量管理小工具
高配笔记本使用CAD搬砖时卡死解决记录
js正则表达式之中文验证(转)