数字系统设计与Verilog HDL

6.2 下列数字的表示是否正确?

6'd18, 'Bx0, 5'b0x110, 'da30, 10'd2, 'hzF 6.3 定义如下的变量和常量: (1)定义一个名为count的整数;

(2)定义一个名为ABUS的8位wire总线;

(3)定义一个名为address的16位reg型变量,并将该变量的值赋为十进制数128; (4)定义参数Delay_time, 参数值为8; (5)定义一个名为DELAY的时间变量; (6)定义一个32位的寄存器MYREG;

(7)定义一个容量为128,字长为32位的存储器MYMEM; 第7章 Verilog行为语句 p61

Verilog HDL行为语句

类别 块语句

赋值语句

循环语句

编译向导语句 p62

7.1 过程语句 initial always

在一个模块(module)中,使用initial和always语句的次数是不受限制的。initial语句常用于仿真中的初始化,initial过程块中的语句仅执行一次;always块内的语句则是不断重复执行的。 p63

initial always

语句

串行块begin-end 并行块fork-join 持续赋值assign 过程赋值=、<= if-else case for repeat while forever `define `include

`ifdef, `else, `endif

可综合性

√ √

√ √ √ √ √

√ √ √

always过程语句使用模板

always @(<敏感信号表达式event-expression>) begin

//过程赋值

//if-else,case,casex,casez选择语句 //while,repeat,for循环 //task,function调用 end

“always”过程语句通常是带有触发条件的,触发条件写在敏感信号表达式中,只有当触发条件满足时,其后的“begin-end”块语句才能被执行。 p64

7.2 块语句

块语句是由块标志符begin-end或fork-join界定的一组语句,当块语句只包含一条语句时,块标志符可以缺省。

begin-end串行块中的语句按串行方式顺序执行。比如: begin

regb=rega; regc=regb; end

由于begin-end块内的语句顺序执行,在最后,将regb、regc 的值都更新为rega的值,该begin-end块执行完后,regb、regc 的值是相同的。 p65

7.3 赋值语句

持续赋值语句(Continuous Assignments)

assign为持续赋值语句,主要用于对wire型变量的赋值。 比如:assign c=a&b;

在上面的赋值中,a、b、c三个变量皆为wire型变量,a和b信号的任何变化,都将随时反映到c上来。 p66

7.4 条件语句 ( if-else语句)

if-else语句使用方法有以下3种: (1)if(表达式) 语句1; (2)if(表达式) 语句1; else 语句2;

(3)if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; ??

else if(表

>>闁诲繒鍋炲ú鏍閹达箑绀傞柕濠忛檮閻庯拷<<
12@gma联系客服:779662525#qq.com(#替换为@)