基于HDL实现的2选1数据选择器设计.ppt_第1页
基于HDL实现的2选1数据选择器设计.ppt_第2页
基于HDL实现的2选1数据选择器设计.ppt_第3页
基于HDL实现的2选1数据选择器设计.ppt_第4页
基于HDL实现的2选1数据选择器设计.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五讲:基于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)逻辑运算符 (&、|、!) (5)位运算符 (、&、|) (6)缩位运算符 (7)移位运算符 (、) (8)条件运算符 (?:) (9)位拼接运算符,1、算术运算符,1、算术运算符,加法运算符“+”可以是双目运算符,用法为:操作数1 + 操作数2。如:a+b;也可以做为单目运算符,即正值运算符,用法如:+1、+b。 减法运算符“-” 也与加法运算符一样,可以是双目运算符,用法为:操作数1 - 操作数2。如:a-b;也可以做为单目运算符,即负值运算符,用法如:-1、-b。 乘法运算符“*”、除法运算符“/”和求余运算符“%”都属于双目运算符。用法为:操作数1*操作数2、操作数1/操作数2、操作数1%操作数2。如:a*b、a/b、a%b。 使用除法运算符进行整数除法运算时,结果值要略去小数部分只取整数部分。例如“5/2”的值为2,“10/3”的值为3。 求余运算符也称为模运算符,要求“%”的两侧均为整数,2、逻辑运算符,逻辑与“&”和逻辑或“|”都是双目运算符,要求有两个操作数。 逻辑与的用法:操作数1 & 操作数2。当两个操作数都为真时,运算的结果才为真。如果任何一个操作数为假,则运算的结果为假。 逻辑或的用法:操作数1 | 操作数2。当两个操作数中有一个为真时,运算的结果就为真。只有当两个操作数都为假时,则运算的结果才为假。 逻辑非“!”只有一个操作数,用法:!操作数。,3、 关系运算符,4、位运算符,5、等式运算符,等式运算符=与全等运算符=的区别: 对于=,参与比较的两个操作数必须逐位相等,其相等比较结果为1,如果某位为不定态和高阻值,其相等比较结果为不定态;而全等比较=,则对于这些高阻和不定态也进行比较,两个操作数完全一致其结果为1,否则为0; 如:A=8b1100010x,B=8b1100010x,则A=B的运算结果为不定值x,而A=B的运算结果为1.,6、缩位运算符,7、移位运算符,移位运算符 左移 A2 如:A=4b1101, A2 A=4b0011,8、位拼接运算符,位拼接运算符“”,将两个或多个信号的某些位拼接起来。 信号1的某几位,信号2的某几位,,任务:用Verilog实现2选1数据选择器,1、新建工程 FileNew Project mux2_1_ex1 2、设计输入 a、File New Design Files Verilog HDL File OK b、输入程序代码 c、 File Save As mux2_1_ex1.v,程序代码-数据流描述方式,/*2选1数据选择器,方法一:采用结构描述法*/ module mux2_1_ex1(P0,P1,S,F); 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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论