欢迎来到天天文库
浏览记录
ID:48743918
大小:1.97 MB
页数:55页
时间:2020-01-21
《第3章 组合电路的Verilog设计-2014.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章组合电路的Verilog设计3.1半加器的设计半加器电路任何设计看成是一个模块模块名模块的端口信号模块的功能半加器模块描述的内容半加器的Verilog代码2、模块语句模块名的命名法则:*不能以数字开头;*不能用中文;*不能使用关键词;*一般使用模块功能的英文速写2、端口语句*端口信号名:信号名称*端口模式:信号的传输方向*总线信号表示:3、逻辑操作符*指逻辑门的符号与、或、非、异或等3、连续赋值语句*顺序语句*并行语句*assign是并行语句*有延时的assign语句只在仿真时使用*时间单元和精度5、关键词*
2、input,output,module等都是关键词*关键词必须小写,如INPUT就不是关键词6、标示符*指用户命名的信号、模块等名称*标示符对大小写敏感如:a和A是属于不同的信号7、注释符号1)//用于一行的注释2)/*….*/用于注释连续数行8、代码书写格式(codingstyle)*指代码的书写要注意对齐和宿进,便于阅读9、文件取名和存盘Verilog代码文件的扩展名是.v文件名不能用中文和数字开头文件名对大小写敏感文件名和模块名必须相同文件不能保存在根目录下10、半加器仿真波形4选1选择器的功能4选1选择器的
3、Verilog代码1、reg变量型定义*信号的2种数据类型1)wire类型,一般默认的信号是wire型2)reg类型,always语句中的被赋值信号必须定义为reg类型2、always语句(过程语句)always语句是并行语句,内部放置顺序语句always语句描述的是一个电路模块,有输入和输出敏感表中的信号是输入信号always语句的启动:敏感表中的任何信号发生变化都启动,执行完后等待always语句的新格式:用,代替or,或者用*代替所有信号3、块语句begin…end*用于组合顺序语句*块名称一般不写4、cas
4、e语句*case语句是顺序语句*功能:表示多分支选择*if语句是顺序语句,也表示选择*if语句和case语句的差别都表示选择关系if语句有优先级,可以表示2个分支的条件同时满足的情况,但每次执行时只执行前面的语句,前面分支的优先级高case语句也可以表示优先级,但一般适合于表示分支比较多的情况,if语句适合于表示分支少的情况,在VHDL中case不能表示优先级。4、verilog中信号的取值范围*0:4种含义,二进制0,逻辑0,低电平,事件为假*1:4种含义,二进制1,逻辑1,高电平,事件为真*z或者Z:高阻,不分
5、大小写*x或者X:不确定值,不分大小写5、并位操作符{,}*0:4种含义,二进制0,逻辑0,低电平,事件为假*1:4种含义,二进制1,逻辑1,高电平,事件为真*z或者Z:高阻,不分大小写*x或者X:不确定值,不分大小写6、verilog信号值表示方法B,H,D,O分别表示二进制、16进制,10进制,8进制,不分大小写2’b00,4’B10114’hA3’D7赋值符号:=是并行语句的赋值符号<=是顺序语句的赋值符号==是等于比较符号3.2.2、选择器的数据流描述*3种描述方式:行为描述,数据流描述,结构描述1、逻辑操
6、作符按位操作符:位宽不等时补0扩宽,使位宽相等2、比较操作符*位宽不等时补0扩宽,使位宽相等*全等操作必须位宽相等,不能补0扩宽*表达式的值:成立为真,其值为1不成立为假,其值为03、wire变量*默认的变量都是wire型的*模块内部的变量需要定义。或者reg型,或者wire型*例如:wirea;wire[7:0]b;3.2.3、用条件赋值语句描述选择器*wirey=条件表达式?表达式1:表达式23.2.4、用if语句描述选择器1、if语句*表示选择功能*可以表示优先级*每个分支有多个赋值语句时,使用begin…e
7、nd括起来2、阻塞赋值和非阻塞赋值1)阻塞赋值:赋值符号是=,是按顺序执行,后面的赋值语句被阻塞2)非阻塞赋值:赋值符号是<=,always内的所有语句是并行执行,即后面的赋值语句没有被阻塞。always语句结束时所有的变量同时更新。*当表示较复杂的算法时,使用阻塞赋值比较方便,因为它和C语言的赋值行为类似。3、数据类型*数据类型:指变量的取值范围*verilog综合器可以自动处理数据类型不同的赋值,位宽不等的赋值等操作*例如:SEL==13.3、加法器的设计*全加器调用2个半加器和一个或门实现2、全加器顶层设计文
8、件*顶层模块:指整个系统*子模块:指组成系统的各个模块3、例化语句的使用*2种调用方法:1)位置关联法(顺序一致);2)信号名关联法(常用):左边元件引脚名,右边是外部与引脚相连的信号名3.3.2、半加器的UDP描述*UDP:用户定义的原语(primitive),可以作为库元件调用*库元件调用:可使用位置关联,左边是输出3.3.3、用UDP设计选择器*先定义
此文档下载收益归作者所有