Verilog 语言
定义
赋值语句
过程赋值语句:always, initial
敏感信号列表中的任意一个信号有变化,则触发 always 语句执行一遍。
initial 一般用在仿真程序中,不可综合。连续赋值语句:assign
当等号右边的表达式中的任何一个变量发生了变化,表达式重新计算,并将结果赋值给左边的目标变量。
wire 与 reg
- wire 类型的变量不能作过程赋值语句的输出。
- reg 类型的变量不能做连续赋值语句的输出。
操作符
操作符 作用 操作符 作用 ~ 按位取反 && 逻辑与 & 按位与 || 逻辑或 | 按位或 ! 逻辑非 ^ 按位异或 ~^ 或 ^~ 按位同或 - 按位操作符中,如果两个操作数位宽不等,位宽较小的操作数左侧补零再运算。
- 逻辑操作符中,当操作数中的任何一位为 x 或 z 时,结果为 x。
- 不等操作中,如果操作数中有 x 或 z,结果为 x。
模块例化语句
元件名 例化名(.元件端口名1(外接端口名1), ......);
H_Adder U1(.A(a), .R(R1), .B(b), .C(C1));
元件名 例化名(端口名1, 端口名2, ......);
H_Adder U1(a, b, R1, C1);
代码
8-3 编码器
1 | module Coder83 ( |
3-8 译码器
1 | module Decoder38 ( |
七段数码管
1 | module Seg7Led ( |
8选1选择器
1 | module choose1_8 ( |
比较器
1 | module Comp ( |
两位全加器
1 | module FullAdd2 ( |
两位乘法器
1 | module MUL2_2 ( |
四位寄存器
1 | module bit_Latch_4 ( |
计数器
1 | module counter_8 ( |
分频器
1 | module Div_F ( |
有限状态机
1 | module seq_create_y ( |