EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ d D- ^) a/ F6 b, i4 pVerilog语法(reg、wire、always语法) /ex_module.v 6 K/ a( z) O$ I+ d
module ex_module( " W) i$ Z6 U' c2 B8 P- P) j
input wire sclk, . {# A. H3 S6 {! g* C) O
input wire rst_n,
" }' |* {: R" Q$ o; Q3 j input wire [7:0] d,//声明模块的时候,输入一定是wire变量 x7 i9 A1 r2 n/ D4 g
output reg [7:0] q//声明模块的时候,输出可以是wire变量也可以是reg;reg变量必须在always块里面赋值 6 }4 O3 a% v* |7 v* X
);//接口列表
: k3 ?$ J4 B1 ^1 B4 R* O H/ J7 w//异步的D触发器 * C/ R9 Z5 Q9 e) e4 B0 G
always @(posedge sclk or negedge rst_n) //括号里面是敏感列表,可以包括电平触发或者沿触发
& Z1 o7 [9 f) V- q //寄存器发生变化或翻转就是由CLK(让D触发器翻转)或CLR(复位端让寄存器清零)
+ e0 o5 J1 j1 w! B& I r' [: a" [ if(rst_n == 1'b0) //if后面的括号里是条件表,这里是组合逻辑。"=="声明一个比较器,"1"指的是1比特、"’"用来区分阿拉伯数字和进制,"b"代表的进制binary,“0”是一个比特的0
4 G/ r% Y2 c. }/ y! f5 e0 g+ X& o. M q<=8'h00; //10'b00000_00000 10'd10 10'hff,沿触发的逻辑里边一定都用<=非阻塞赋值。 8 |8 ]& ^) b; U! q+ m
else ' z# y9 C& B- r- m4 B. d
q<=d; # q, T. \$ E) k( @! z2 C
# B0 T6 D6 y" b) r4 y9 s+ H5 U
# ]6 Z1 X. L% m9 a* @, X
|