关于verilog中initial和always的使用问题
我的想法是,总体上要用initial,让用户可以选择执行什么功能,整体程序要按顺序进行,不能并行;但在每一个功能里面,还需要用到always语句,比如计费部分是时序电路。好像initial语句不能嵌套always吧,而且always循环还不能退出,那怎么办呢? 展开
verilog描述的是硬件电路,所以initial语句只能用在仿真时测试平台testbench中,可以使用状态机来描述你说的功能。
Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。Verilog HDL是一种硬件描述语言。
用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。
此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。
但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。
2023-06-12 广告
初学者两天可以搞定,具体步骤如下:
1.根据功能画出状态转换图
2.参考状态机写法,将你的图用verilog实现
3.按要求编写仿真平台testbench
4.状态机和测试平台编译通过后使用quartus或ISE调用modelsim仿真
5.仿真通过,设计完成
一个状态跳到另外一个状态
还有就是initial是不可综合语句,生成不了实际电路,所以用initial不能用来做实际的设计,只能仿真。
FPGA多采用时序always进程,你去看看状态机怎么做就知道了
如果是仿真的时候想在initial中用类似always的功能,可以写成
initial begin
...
forever@( posedge clk )begin
...
end
...
end