date: 2019-11-12 19:46:19

模块是Verilog的基本描述单位
说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数
语句定义设计的功能和结构,说明部分和语句可以散步在模块中的任何地方

input 定义输入端口
input A,B;

output 定义输出端口
output C,D;

如果没有数据类型说明的话,端口默认为线网数据类型

initial语句
initial语句只执行一次

always语句
该语句总是反复执行/重复执行
上述两种语句中只有寄存器类型的数据能够被赋值
寄存器类型数据在被赋新值前保持原有值不变,所有的初始化语句与always语句在0时刻并发执行

case语句
在Verilog中没有switch,只有case
example:

case(target)
   8' d0: result = 3' b001 ;
   8' d1: result = 3' b010 ;
   8' d2: result = 3' b100 ;
   default: result = 3' b000 ;
endcase  

不需要break,每执行完一个case分项后的语句就会跳出该case语句的执行
case语句注意带上endcase

wire
wire型数据常用来表示以assign关键字指定的组合逻辑信号,模块的输入输出端口类型都默认为wire型
wire相当于物理连线,无逻辑连线,不带逻辑性
默认初始值为z

assign语句中必须定义为wire不能是reg

reg a,b;
wire test_result;  

assign test_result = a&&b;  

如果将test_result定义为reg,则会报错

reg
表示寄存器类型,用于always模块内被复制的信号,必须定义为reg型,代表触发器
常用于时许逻辑电路,reg相当于存储单元
默认初始值为x

参考:
https://blog.csdn.net/u010549444/article/details/50993274?utm_source=copy
https://max.book118.com/html/2018/0220/153942558.shtm

如何进行仿真
点击Window中的Library,点击其中的work,点击要进行模拟的文件,右键选择"Simulate"
进入界面选自需要的Objects右键选择“Add to”随后选择“Wave”随后选择“Selected Signals”
随后在上面的按钮组中选择"Run All",点击Wave即可看到结果

随后在Transcript中输入
quit -sim
退出仿真

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议