EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 A. d& U9 m% ]0 p3 ~ G0 W
Verilog语法(reg、wire、always语法) /ex_module.v " C( T' y8 b6 ~. s2 g
module ex_module( 7 P- ]) Y! X( R4 T* L3 x) P
input wire sclk,
, E, i+ K" H) n0 i input wire rst_n,
5 J/ ]- p4 @9 w' L/ u input wire [7:0] d,//声明模块的时候,输入一定是wire变量 + b# ]% t3 S% z" U5 V, T: K
output reg [7:0] q//声明模块的时候,输出可以是wire变量也可以是reg;reg变量必须在always块里面赋值
5 @8 S8 x% O- ^- v8 p);//接口列表
8 {+ E# n8 w* E# h) V, C! r//异步的D触发器 / v9 \3 n- @& m: }
always @(posedge sclk or negedge rst_n) //括号里面是敏感列表,可以包括电平触发或者沿触发
]* x/ v3 B/ v) \' ?( c3 @% | //寄存器发生变化或翻转就是由CLK(让D触发器翻转)或CLR(复位端让寄存器清零)
" x" w4 c. h$ q* e; f if(rst_n == 1'b0) //if后面的括号里是条件表,这里是组合逻辑。"=="声明一个比较器,"1"指的是1比特、"’"用来区分阿拉伯数字和进制,"b"代表的进制binary,“0”是一个比特的0
0 B2 Q, F1 Z5 h' C, ?$ o q<=8'h00; //10'b00000_00000 10'd10 10'hff,沿触发的逻辑里边一定都用<=非阻塞赋值。 . e. z. `3 O8 f m- a( J2 L+ X- z
else " x' }! j) ]+ R: _% P
q<=d; 1 G% S. T/ G" _7 P; Y2 D) w( \
; x2 i- Q- l3 m6 f
/ y. |, q0 L$ r$ u+ H! x: ]
|