草庐IT

$verilog

全部标签

3.2 Verilog 时延

关键词:时延,惯性时延连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。寄存器的时延也是可以控制的,这部分在时序控制里加以说明。连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。下面3个例子实现的功能是等效的,分别对应3种不同连续赋值时延的写法。//普通时延,A&B计算结果延时10个时间单位赋值给ZwireZ,A,B;assign#10  Z=A&B; //隐式时延,声明一个wire型变量时对其进行包含一定时延的连续赋值。wireA,B;wire#10    Z=A&B; //声明时延,声明一个wire型变量是指定一个时延。因此对

2.5 Verilog 编译指令

以反引号`开始的某些标识符是Verilog系统编译指令。编译指令为Verilog代码的撰写、编译、调试等提供了极大的便利。下面介绍下完整的8种编译指令,其中前4种使用频率较高。`define,`undef在编译阶段,`define用于文本替换,类似于C语言中的#define。一旦`define指令被编译,其在整个编译过程中都会有效。例如,在一个文件中定义:`defineDATA_DW32则在另一个文件中也可以直接使用DATA_DW。`defineS$stop;//用`S来代替系统函数$stop;(包括分号)`defineWORD_DEFreg[31:0]//可以用`WORD_DEF来声明32b

2.5 Verilog 编译指令

以反引号`开始的某些标识符是Verilog系统编译指令。编译指令为Verilog代码的撰写、编译、调试等提供了极大的便利。下面介绍下完整的8种编译指令,其中前4种使用频率较高。`define,`undef在编译阶段,`define用于文本替换,类似于C语言中的#define。一旦`define指令被编译,其在整个编译过程中都会有效。例如,在一个文件中定义:`defineDATA_DW32则在另一个文件中也可以直接使用DATA_DW。`defineS$stop;//用`S来代替系统函数$stop;(包括分号)`defineWORD_DEFreg[31:0]//可以用`WORD_DEF来声明32b

4.1 Verilog 过程结构

关键词:initial,always过程结构语句有2种,initial与always语句。它们是行为级建模的2种基本语句。一个模块中可以包含多个initial和always语句,但2种语句不能嵌套使用。这些语句在模块间并行执行,与其在模块的前后顺序没有关系。但是initial语句或always语句内部可以理解为是顺序执行的(非阻塞赋值除外)。每个initial语句或always语句都会产生一个独立的控制流,执行时间都是从0时刻开始。initial语句initial语句从0时刻开始执行,只执行一次,多个initial块之间是相互独立的。如果initial块内包含多个语句,需要使用关键字begin

4.1 Verilog 过程结构

关键词:initial,always过程结构语句有2种,initial与always语句。它们是行为级建模的2种基本语句。一个模块中可以包含多个initial和always语句,但2种语句不能嵌套使用。这些语句在模块间并行执行,与其在模块的前后顺序没有关系。但是initial语句或always语句内部可以理解为是顺序执行的(非阻塞赋值除外)。每个initial语句或always语句都会产生一个独立的控制流,执行时间都是从0时刻开始。initial语句initial语句从0时刻开始执行,只执行一次,多个initial块之间是相互独立的。如果initial块内包含多个语句,需要使用关键字begin

4.2 Verilog 过程赋值

关键词:阻塞赋值,非阻塞赋值,并行过程性赋值是在initial或always语句块里的赋值,赋值对象是寄存器、整数、实数等类型。这些变量在被赋值后,其值将保持不变,直到重新被赋予新值。连续性赋值总是处于激活状态,任何操作数的改变都会影响表达式的结果;过程赋值只有在语句执行的时候,才会起作用。这是连续性赋值与过程性赋值的区别。Verilog过程赋值包括2种语句:阻塞赋值与非阻塞赋值。阻塞赋值阻塞赋值属于顺序执行,即下一条语句执行前,当前语句一定会执行完毕。阻塞赋值语句使用等号=作为赋值符。前面的仿真中,initial里面的赋值语句都是用的阻塞赋值。非阻塞赋值非阻塞赋值属于并行执行语句,即下一条语

4.2 Verilog 过程赋值

关键词:阻塞赋值,非阻塞赋值,并行过程性赋值是在initial或always语句块里的赋值,赋值对象是寄存器、整数、实数等类型。这些变量在被赋值后,其值将保持不变,直到重新被赋予新值。连续性赋值总是处于激活状态,任何操作数的改变都会影响表达式的结果;过程赋值只有在语句执行的时候,才会起作用。这是连续性赋值与过程性赋值的区别。Verilog过程赋值包括2种语句:阻塞赋值与非阻塞赋值。阻塞赋值阻塞赋值属于顺序执行,即下一条语句执行前,当前语句一定会执行完毕。阻塞赋值语句使用等号=作为赋值符。前面的仿真中,initial里面的赋值语句都是用的阻塞赋值。非阻塞赋值非阻塞赋值属于并行执行语句,即下一条语