资源描述
第五讲:基于HDL实现的2选1数据选择器设计,主讲人:雷求胜,复习: Verilog HDL模块的一般结构,模块声明 module 模块名(port1,port2,port3portn); 端口声明语句块 逻辑功能描述语句块 Endmodule,一、数据类型及常量变量,1、标识符 标识符用于表示电路系统中模块、寄存器、输入/输出端口、连线等物理对象名字。 标识符可以是任意一组字母、数字以及符号“$”和下画线“_”的组合,但必须是字母和下画线开头。 标识符是区分大小写的,2、常量,整数型数据 +/- 位宽:表示整数以二进制形式存在时的位数; 进制符号:B或b表示二进制;o或O表示八进制;d或D表示十进制;h或H表示十六进制。 如:8b01010101 4hE 5D25 6o70,注意:,书写较长的数值使用下划线,可以提高可读性。 如:16b1100_0110_0000_1010 x或z表示的宽度取决于所用进制。 如:8h1x/等价于8b0001xxxx 4bz/等价于4bzzzz 如果定义的位宽不实际的位数要长,通常在数的左边填“0”补位,如果数的最左边一位位x,z,就相应用x或z在左边补位。 如果定义的位宽比实际的位数小,那么将最左边的为舍掉。,实数型数据,实数型数据可以用十进制方式表示,但不能省略小数点后面的数字。 实数10.0,不能写成10 实数型数据可以用科学记数法表示 9.32e2表示十进制数932,字符串数据,在Verilog中字符串是一个双引号引出的字符序列。 字符串数据不能分成多行书写 Parameter型(符号常量) Parameter 参数名1=表达式,参数名2=表达式参数名n=表达式;,3、变量以及数据类型,wire线网型 wire线网型是最常用的数据类型,它相当于组合逻辑电路中各种连接线,其特点就是输出值紧随输入变化而变化,不能暂存。 Verilog模块中的输入/输出信号类型默认定义为wire型,模块中引用实例元件输出信号以及用“assign”语句赋值的变量,一般都定义为wire型。 定义一根单信号连线为wire型变量的格式: wire 信号名1,信号2,; 定义n位总线为wire型变量的格式: wire n-1:0信号名1,信号2,; 如:wire f;/定义一位数据f。 wire7:0 date/定义一个8位数据总线date为wire型。,3、变量以及数据类型,reg寄存器型 reg类型定义的是一种能暂存数据的变量。 reg 信号名1,信号2,;/定义一位reg型数据 reg n-1:0信号名1,信号2,; /定义n位reg型数据 用reg数据类型定义的信号必须放在过程块 (如always,initial)中通过过程赋值语句赋值。,3、变量以及数据类型,Memory寄存器型 Verilog 可通过reg变量来建立数组,用来表示一组存储器,称为memory寄存器。 定义格式:regn-1:0 存储器名m-1:0; 如:reg7:0 memory1255:0;/定义了256个8位的存储器,名字叫memory1。该存储器的地址范围为0255.,二、连续赋值语句及“?:”语句,1、连续赋值语句 assign wire型变量=表达式; 连续赋值语句assign与过程语句always中过程赋值语句的区别. a、连续赋值语句用于wire型数据,而过程赋值语句用于寄存器型变量的赋值。 b、连续赋值语句在过程块外使用,而过程赋值语句在过程快内使用。,2、 “?:”语句,条件操作符的语法格式如下: 条件表达式?表达式1:表达式2 如果条件表达式为1(即为真),则运算后结果取表达式1的值,否则取表达式2的值。 如:assign F=(s=1b0)?P0:P1;,三、运算符,(1)算术运算符 (+、-、/、%) (2)关系运算符 () (3)等式运算符 (= 、!=) (4)逻辑运算符 ( input P0,P1,S; output F; wire not_s,andcntrl1,andcntrl2; not U1(not_s,s); and U2(andcntrl1,P0,not_s), U3(andcntrl2,P1,s); or U4(F,andcntrl1,andcntrl2); endmodule,程序代码-数据流描述方式,/*2选1数据选择器,方法二:数据流描述方式*/ module mux2_1_ex2(P0,P1,S,F); input P0,P1,S; output F; assign F=S endmodule,程序代码-行为描述方式,/*2选1数据选择器,方法三:采用行为描述方式*/ module mux2_1_ex1(P0,P1,S,F); input P0,P1,S; output F; reg F; always(P0 or P1 or S) Begin if(S=1b0) F=P0; else F=P1; end endmodule,3、工程编译,Processing Start Compilation 4、功能测试(波形仿真) 新建波形文件添加输入输出端口设置输入信号波形功能仿真检验功能,课堂任务: 利用三种方法设计一个4选1的选择器,
展开阅读全文