首页 > 代码库 > cpu设计-->verilog理解

cpu设计-->verilog理解

  1. Verilog HDL语言中的变量只有网线wire和寄存器reg两大类数据类型。
  2. 网线类型表示Verilog HDL结构化元件间的物理连线,它的值由驱动它的源器件的值决定,如果没有驱动源器件连接到网线,网线的缺省值为高阻z。
  3. 寄存器类型表示一个抽象的数据寄存器,它只能在always语句和initial语句中被赋值,并且寄存器变量赋值之后,值会一直被保存下来,只有在下次赋值时才会发生改变。寄存器类型变量的缺省值为x,使用中一般要进行初始化。
  4. Verilog HDL语言的描述主要有数据流描述和行为描述两种方式。数据流描述方式主要用assign语句,建立元器件间的连接。因而assign语句就是“连接”语句。行为描述主要用always结构。在Verilog HDL语言中规定:每个描述语句以“ ;”结束。
  5. 模块的连接方法-->模块的结构中允许将多个模块组织成更大的模块。它的组织方式很像c语言中带有形参数的函数调用。为了说明问题简单,我们用模块来定义逻辑与、或和异或,然后以模块调用的方法来构造半加器,借此来说明模块间的关联方法。
 1 module bjq (    input A,        //定义输入端口A 2  3          input B,        //定义输入端口B 4  5          output Sum,    //定义和输出端口Sum 6  7          output Cout    //定义进位输出端口Cout 8  9         ) ;10 11 wire  S1,T1;            //定义连接导线12 13 assign  Cout =T1;        //进位导线连接14 15 assign  Sum = S1;        //本位和导线连接16 17 yu yu1 (A, B, T1) ;        //连接调用逻辑与模块18 19 yihuo yihuo1(A,B,S1);    //连接调用逻辑异或模块20 21 endmodule

 

 1 parameter  MON=0,TUE=1,WED=2,THU=3,FRI=4,SAT=5,SUN=6; 2  3 reg  [0:2]  Day; 4  5 integer  Pocket_Money; 6  7 case  (Day) 8  9 TUE:  Pocket_Money=6;           //分支110 11 MON,WED:   Pocket_Money=2;    //分支212 13 FRI,SAT,SUN: Pocket_Money=7;        //分支314 15 default:  Pocket_Money=0;             //分支416 17 endcase

 

cpu设计-->verilog理解