第3章 组合电路的Verilog设计-2014.ppt_第1页
第3章 组合电路的Verilog设计-2014.ppt_第2页
第3章 组合电路的Verilog设计-2014.ppt_第3页
第3章 组合电路的Verilog设计-2014.ppt_第4页
第3章 组合电路的Verilog设计-2014.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章,组合电路的Verilog设计,3.1 半加器的设计,半加器电路,任何设计看成是一个模块 模块名 模块的端口信号 模块的功能,半加器模块描述的内容,半加器的Verilog代码,2、模块语句,模块名的命名法则: *不能以数字开头; *不能用中文; *不能使用关键词; *一般使用模块功能的英文速写,2、端口语句,*端口信号名:信号名称 *端口模式:信号的传输方向 *总线信号表示:,3、逻辑操作符,*指逻辑门的符号 与、或、非、异或等,3、连续赋值语句,*顺序语句 *并行语句 *assign是并行语句 *有延时的assign语句只在仿真时使用 *时间单元和精度,5、关键词,* input,ou

2、tput,module等都是关键词 *关键词必须小写,如INPUT就不是关键词,6、标示符,*指用户命名的信号、模块等名称 *标示符对大小写敏感 如:a和A是属于不同的信号,7、注释符号,1) / 用于一行的注释 2) /* .*/ 用于注释连续数行,8、代码书写格式(coding style),*指代码的书写要注意对齐和宿进,便于阅读,9、文件取名和存盘,Verilog 代码文件的扩展名是 .v 文件名不能用中文和数字开头 文件名对大小写敏感 文件名和模块名必须相同 文件不能保存在根目录下,10、半加器仿真波形,4选1选择器的功能,4选1选择器的Verilog代码,1、reg变量型定义,*信

3、号的2种数据类型 1)wire类型 ,一般默认的信号是wire型 2) reg类型,always语句中的被赋值信号必须定义为 reg类型,2、always语句(过程语句),always语句是并行语句,内部放置顺序语句 always语句描述的是一个电路模块,有输入和输出 敏感表中的信号是输入信号 always语句的启动:敏感表中的任何信号发生变化都启动,执行完后等待 always语句的新格式:用,代替or,或者用*代替所有信号,3、块语句 begin end,*用于组合顺序语句 *块名称一般不写,4、case语句,*case语句是顺序语句 *功能:表示多分支选择 *if语句是顺序语句,也表示选择

4、 *if语句和case语句的差别 都表示选择关系 if语句有优先级,可以表示2个分支的条件同时满足的情况,但每次执行时只执行前面的语句,前面分支的优先级高 case语句也可以表示优先级,但一般适合于表示分支比较多的情况,if语句适合于表示分支少的情况,在VHDL中case不能表示优先级。,4、verilog中信号的取值范围,*0: 4种含义,二进制0,逻辑0,低电平,事件为假 *1 : 4种含义,二进制1,逻辑1,高电平,事件为真 *z 或者Z: 高阻,不分大小写 *x或者X:不确定值,不分大小写,5、并位操作符 ,,*0: 4种含义,二进制0,逻辑0,低电平,事件为假 *1 : 4种含义,二

5、进制1,逻辑1,高电平,事件为真 *z 或者Z: 高阻,不分大小写 *x或者X:不确定值,不分大小写,6、verilog信号值表示方法,B,H,D,O分别表示二进制、16进制,10进制,8进制,不分大小写 2b00, 4B1011 4hA 3D7 赋值符号: =是并行语句的赋值符号 =是顺序语句的赋值符号 = 是等于比较符号,3.2.2、选择器的数据流描述,*3种描述方式: 行为描述,数据流描述,结构描述,1、逻辑操作符,按位操作符:位宽不等时补0扩宽,使位宽相等,2、比较操作符,*位宽不等时补0扩宽,使位宽相等 *全等操作必须位宽相等,不能补0扩宽 *表达式的值: 成立为真,其值为1 不成立

6、为假,其值为0,3、wire变量,*默认的变量都是wire型的 *模块内部的变量需要定义。或者reg 型,或者wire型 *例如:wire a; wire 7:0b;,3.2.3、用条件赋值语句描述选择器,*wire y=条件表达式?表达式1:表达式2,3.2.4、用if语句描述选择器,1、if语句,*表示选择功能 *可以表示优先级 *每个分支有多个赋值语句时,使用beginend括起来,2、阻塞赋值和非阻塞赋值,1)阻塞赋值:赋值符号是 =,是按顺序执行,后面的赋值语句被阻塞 2)非阻塞赋值:赋值符号是 =,always内的所有语句是并行执行,即后面的赋值语句没有被阻塞。 always语句结

7、束时所有的变量同时更新。 *当表示较复杂的算法时,使用阻塞赋值比较方便,因为它和C语言的赋值行为类似。,3、数据类型,*数据类型:指变量的取值范围 *verilog综合器可以自动处理数据类型不同的赋值,位宽不等的赋值等操作 *例如:SEL=1,3.3、加法器的设计,*全加器调用2个半加器和一个或门实现,2、全加器顶层设计文件,*顶层模块:指整个系统 *子模块:指组成系统的各个模块,3、例化语句的使用,* 2种调用方法: 1)位置关联法(顺序一致); 2)信号名关联法(常用): 左边元件引脚名,右边是外部与引脚相连的信号名,3.3.2、半加器的UDP描述,*UDP:用户定义的原语(primiti

8、ve),可以作为库元件调用 *库元件调用:可使用位置关联,左边是输出,3.3.3、用UDP设计选择器,*先定义UDP,然后调用,3.3.4、8位加法器的设计,*直接使用算术运算符 +,2种描述代码如下:,仿真波形和综合出的RTL级原理图,*,3.3.5、算术运算符,*用signed 定义有符号数,使用补码表示,减法结果也用补码i表示,3.3.6、2位BCD码加法器设计,*2个BCD码相加,如果大于或者等于10,则需要加6进行溢出调整,同时输出一个进位,放在前面较好,3.4、乘法器的设计,*参数的用途:便宜描述和修改,整数默认为是32位的,注意整数赋值时的位宽可变化,3.4.3、for语句,*用于循环描述,和C语言类似,3.4.4、移位操作,*无符号数,左移和右移时,腾空的位补0,, *有符号数,右移时腾空的位填符号位,左移时腾空位补

温馨提示

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

评论

0/150

提交评论