欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

《ch3VHDL设计初步》PPT课件.ppt

  • 资源ID:7342780       资源大小:692.60KB        全文页数:58页
  • 资源格式: PPT        下载积分:14.9积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要14.9积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

《ch3VHDL设计初步》PPT课件.ppt

第3章VHDL设计初步 3 1组合电路的VHDL描述3 2基本时序电路的VHDL描述3 3计数器的VHDL设计3 4实用计数器的VHDL设计 一 VHDL结构及相关语句说明 1 实体是VHDL程序的基本单元 用于描述设计系统的端口结构 一个电路系统的程序设计只有一个实体 一般语句结构 ENTITY实体名ISPORT 端口表 ENDENTITY实体名 3 1二选一多路选择器VHDL描述 用VHDL描术电路由两部分组成 实体和结构体 例3 1 ENTITYelector2 1IS ENDENTITYelector2 1 1 实体名实体名设计者自己添加 最好根据相应电路的功能来确定 不要用数字或中文定义实体名 不要与EDA工具库中已定义好的元件同名 2 PORT语句和端口信号名PORT说明语句是对一个设计实体与外部电路的接口通道的说明 其中包括对每一接口的输入输出模式和数据类型的定义 其格式如下 PORT 端口名 端口名 端口模式数据类型 端口名 端口名 端口模式数据类型 A 端口模式 端口模式用于定义端口上的数据的流动方向和方式 一般有四种模式 IN OUT INOUT BUFFER IN OUT INOUT BUFFER B 数据类型 1 意义和作用 数据类型是指端口上流动的数据的表达格式或取值类型 VHDL要求只有相同数据类型的端口信号和操作数才能相互作用 2 数据类型种类 INTEGER BOOLEAN BIT和STD LOGIC等 BOOLEAN FALSE TRUEBIT 0 1 STD LOGIC U X 0 1 Z W L H U 表示未初始化的 X 表示强未知的 0 表示强逻辑0 1 表示强逻辑1 Z 表示高阻态 W 表示弱未知的 L 表示弱逻辑0 H 表示弱逻辑1 表示忽略 ENTITYmux21aISPORT a b INBIT s INBIT y OUTBIT ENDENTITYmux21a 3 2选1多路选择器的VHDL描述 实体 2 结构体表达结构体是描述设计实体的内部结构和外部设计实体端口间的逻辑关系 结构体的一般结构为 ARCHITECTURE结构体名OF实体名IS 说明语句 BEGIN功能描述语句 ENDARCHITECTURE结构体名 说明语句 包括对数据对象 数据类型 常数 信号 子程序和元件等元素的说明部分 可省略 功能描述语句 描述实体逻辑行为 可以是并行 顺序语句或两者的混合 必须给出 一个实体可以有多个结构体 每个结构体对应着实体不同的结构和算法实现方案 各个结构体的地位是同等的 ARCHITECTUREoneOFmux21aISBEGINy aAND NOTs OR bANDs ENDARCHITECTUREone 例3 2 2选1多路选择器的VHDL描述 结构体 3 完整的2选1多路选择器的VHDL描述 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21aISPORT a b INbit s INbit y OUTbit ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINy aAND NOTs OR bANDs ENDARCHITECTUREone 例3 3 ENTITYmux21aISPORT a b INBIT s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISSIGNALd e BIT BEGINd aAND NOTS e bANDs y dORe ENDARCHITECTUREone 并行语句 4 不同方式2选1多路选择器的VHDL描述 1 使用并行语句描述 例3 4 ENTITYmux21aISPORT a b s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINPROCESS a b s BEGINIFs 0 THENy a ELSEy b ENDIF ENDPROCESS ENDARCHITECTUREone 顺序语句 2 使用进程和顺序语句描述 例3 5 ENTITYmux21aISPORT a b INBIT s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINy aWHENs 0 ELSEb ENDARCHITECTUREone 是顺序语句还是并行语句 二 信号传输 赋值 符号和数据比较符号 1 信号传输 赋值 符号 例 y a表示信号a向信号y赋值 要求两边的信号数据类型必须一致 赋值操作要经历一个模拟器的最小分辨时间 后才完成 可看成实际电路存在的固有延时量 2 数据比较符号 例 s 0 输出为布尔型 可能取值为 1 0 分别表示true和false 布尔型数据只能用于逻辑操作和条件判断 用于条件语句的判断表达式可以是一个值 也可以是复杂的逻辑或运算表达式 IF s1 0 AND S2 1 OR c b 1 THEN 4 逻辑操作符 3 关系运算符 三 关系运算符 逻辑操作符 1 IF THEN条件语句 2 WHEN ELSE条件信号赋值语句 赋值目标 表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE 表达式 IFs 0 THENy a ELSEy b ENDIF z aWHENp1 1 ELSEbWHENp2 1 ELSEc 四 条件语句 条件信号赋值语句 A 格式 并行信号赋值语句 赋值目标必须是信号 与其他并行语句一样 在结构体内的执行是同时发生的 根据指定条件对信号赋值 条件可以为任意表达式 根据赋值条件出现的先后次序隐含优先权 赋值条件测试具有顺序性 最后一个ELSE子句隐含了所有未列出的条件 每一子句的结尾没有标点 只有最后一句有分号 B 几点说明 x awhen s 00 elsebwhen s 01 elsecwhen s 10 elsed C 实例1 j wwhen a 1 elsexwhen b 1 elseywhen c 1 elsezwhen d 1 else 0 实例2 五 PROCESS进程语句和顺序语句 1 基本格式 进程标号 PROCESS 信号敏感表 IS P1 说明区 BEGIN 顺序语句 ENDPROCESS进程标号 进程标号 PROCESS 信号敏感表 IS Pn 说明区 BEGIN 顺序语句 ENDPROCESS进程标号 2 进程语句的特点 ARCHITECTURE 3 信号敏感表PROCESS a b s 敏感表中列出的任何信号的改变 都将启动进程 执行进程内相应顺序语句 执行完顺序语句后 进程进入等待状态 直到下一次敏感表中某一信号发生改变 一些VHDL综合器 综合后 对应进程的硬件系统对进程中的所有输入的信号都是敏感的 不论在源程序的进程中是否把所有的信号都列人敏感表中 为了使软件仿真与综合后的硬件仿真对应起来 应当将进程中的所有输人信号都列入敏感表中 entityterminal countisport clock reset enable inbit data instd logic vector 7downto0 equals term cnt inoutstd logic vector 7downto0 endterminal count architecturebheofterminal countissignalcount std logic vector 7downto0 beginP1 process data beginifdata countthenequals 11111111 endif endprocessP1 P2 process clock beginifreset 1 thencount 11111111 elsifclock eventandclock 1 thencount count 1 endif endprocessP2 term cnt countwhenenable 1 else ZZZZZZZZ endbhe 例3 6 4 顺序语句 每一条顺序语句的执行顺序是与它们的书写顺序基本一致的 顺序语句只能出现在进程 Process 函数 Funcation 和过程 Procedure 中 顺序语句包括 赋值语句 流程控制语句 等待语句 子程序调用语句 返回语句 空操作语句 六1位二进制全加器的VHDL设计 半加器h adder电路图 1 半加器描述和CASE语句 例1 半加器描述 1 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYh adderISPORT a b INSTD LOGIC co so OUTSTD LOGIC ENDENTITYh adder ARCHITECTUREfh1OFh adderISBEGINso NOT aXOR NOTb co aANDb ENDARCHITECTUREfh1 例2 半加器描述 2 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYh adderISPORT a b INSTD LOGIC co so OUTSTD LOGIC ENDENTITYh adder ARCHITECTUREfh1OFh adderisSIGNALabc STD LOGIC VECTOR 1DOWNTO0 BEGINabcsosososoNULL ENDCASE ENDPROCESS ENDARCHITECTUREfh1 CASE语句 并置操作符 1 CASE语句 CASE语句属于顺序语句 必须放在进程语句中 CASE语句的一般表达式是 CASEISWHEN WHEN WHENOTHERS ENDCASE 选择值或标识符的值必须在表达式的取值范围内 OTHERS作为最后一种条件取值 只能出现一次 以涵盖表达式未列出的值 关键词NULL表示不做任何操作 相同的选择值只能出现一次 CASE语句执行时 只能选中所列条件语句中的一条 例3 半加器描述 3 SIGNALabc cso STD LOGIC VECTOR 1DOWNTO0 BEGINabccsocsocsocso 01 ENDCASE ENDPROCESS ENDARCHITECTUREfh1 信号合并 并置操作符 2 标准逻辑矢量数据类型STD LOGIC VECTOR 定义在STD LOGIC 1164程序包中 可以表示多通道端口 节点 总线 STD LOGIC VECTOR被定义为标准的一维数组 数组中每一个元素都是STD LOGIC数据类型 使用STD LOGIC VECTOR中 必须注明其数组宽度 即位宽 如B OUTSTD LOGIC VECTOR 7DOWNTO0 或SIGNALA STD LOGIC VECTOR 1TO4 BIT VECTOR为位矢量数据类型 其每一个元素都是BIT数据类型 3 并置操作符 SIGNALa STD LOGIC VECTOR 3DOWNTO0 SIGNALd STD LOGIC VECTOR 1DOWNTO0 a 1 0 d 1 1 元素与元素并置 并置后的数组长度为4 IFa d 101011 THEN 在IF条件句中可以使用并置符 2全加器描述和例化语句 全加器f adder电路图 例4 LIBRARYIEEE 或门逻辑描述USEIEEE STD LOGIC 1164 ALL ENTITYor2aISPORT a b INSTD LOGIC c OUTSTD LOGIC ENDENTITYor2a ARCHITECTUREoneOFor2aISBEGINc aORb ENDARCHITECTUREone 元件例化语句由两部分组成 第一部分是对一个现成的设计实体定义为一个元件 语句的功能是对待调用的元件作出调用声明 它的最简表达式如下所示 1 例化语句 COMPONENT元件名ISPORT 端口名表 ENDCOMPONENT元件名 放在结构体的说明部分 元件例化语句的第二部分则是此元件与当前设计实体 顶层文件 中元件间及端口的连接说明 语句的表达式如下 例化名 元件名PORTMAP 端口名 连接端口名 u1 h adderPORTMAP a ain b bin co d so e u2 h adderPORTMAP a e b cin co f so sum u3 or2aPORTMAP a d b f c cout 全加器f adder电路图 2 全加器描述LIBRARYIEEE 1位二进制全加器顶层设计描述USEIEEE STD LOGIC 1164 ALL ENTITYf adderISPORT ain bin cin INSTD LOGIC cout sum OUTSTD LOGIC ENDENTITYf adder ARCHITECTUREfd1OFf adderISCOMPONENTh adderPORT a b INSTD LOGIC co so OUTSTD LOGIC ENDCOMPONENT COMPONENTor2aPORT a b INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT SIGNALd e f STD LOGIC BEGINu1 h adderPORTMAP a ain b bin co d so e u2 h adderPORTMAP a e b cin co f so sum u3 or2aPORTMAP a d b f c cout ENDARCHITECTUREfd1 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF1ISPORT CLK INSTD LOGIC D INSTD LOGIC Q OUTSTD LOGIC END ARCHITECTUREbhvOFDFF1ISSIGNALQ1 STD LOGIC 类似于在芯片内部定义一个数据的暂存节点BEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ1 D ENDIF Q Q1 将内部的暂存数据向端口输出ENDPROCESS ENDbhv 3 2基本时序电路的VHDL描术 一 D触发器的VHDL描述 D触发器 1 SIGNAL信号定义和数据对象 VHDL语言的数据对象有三类 信号 SIGNAL 变量 VARIABLE 常量 CONSTANT 含义 是电子电路内部硬件实体相互连接的抽象表示 可代表连线 内连元件 或端口 在结构体Architecture 包集合Package和实体Entity说明中使用 一般格式 SIGNAL信号名 数据类型 约束条件 表达式 信号使用规则 表示赋值 是信号值的传递 允许产生延迟 如 T1 T2AFTER20ns 信号使用实例1 ENTITYreg1ISPORT d inBIT clk inBIT q outBIT ENDreg1 ARCHITECTUREreg1OFreg1ISSIGNALa b BIT BEGINPROCESS clk BEGINIFclk 1 ANDclk EVENTTHENa d b a q b ENDIF ENDPROCESS ENDreg1 程序如下 LIBRARYieee USEieee std logic 1164 all ENTITYsimpISPORT a b c d INStd Logic g OUTStd Logic ENDsimp ARCHITECTURElogicOFsimpISSIGNALe f Std Logic BEGINe aorb f not cord g eandf ENDlogic 信号使用实例2 2 上升沿检测表式和信号属性函数EVENT 关键词EVENT是信号属性 VHDL通过以下表达式来测定某信号的跳变边沿 信号名 EVENT 对信号在当前时间段 内发生事件检测 发生事件是指信号的电平发生变化 clk inStd Logic IFCLK EVENTANDCLK 1 CLK上升沿检测 例 PROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ1 D ENDIF Q Q1 ENDPROCESS 二 不完整条件语句与时序电路 不完整条件语句 不完整的条件语句描述引进寄存器元件 从而构成时序电路 完整的条件语句构成组合逻辑电路 不必要的时序元件既浪费逻辑资源 降低了电路工作速度 又影响了电路的可靠性 例1 ENTITYCOMP BADISPORT a1 INBIT b1 INBIT q1 OUTBIT END ARCHITECTUREoneOFCOMP BADISBEGINPROCESS a1 b1 BEGINIFa1 b1THENq1 1 ELSIFa1 b1THENq1 0 未提及当a1 b1时 q1作何操作ENDIF ENDPROCESS ENDone 例4 9的电路图 例2 ENTITYCOMP GOODISPORT a1 INBIT b1 INBIT q1 OUTBIT END ARCHITECTUREoneOFCOMP GOODISBEGINPROCESS a1 b1 BEGINIFa1 b1THENq1 1 ELSEq1 0 ENDIF ENDPROCESS END 例2的电路图 三 实现时序电路的VHDL不同表达方式 例1 PROCESS CLK BEGINIFCLK EVENTAND CLK 1 AND CLK LAST VALUE 0 THENQ D 确保CLK的变化是一次上升沿的跳变ENDIF ENDPROCESS 例2 PROCESS CLK BEGINIFCLK 1 ANDCLK LAST VALUE 0 同例4 11THENQ D ENDIF ENDPROCESS 例3 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF3ISPORT CLK INSTD LOGIC D INSTD LOGIC Q OUTSTD LOGIC END ARCHITECTUREbhvOFDFF3ISSIGNALQ1 STD LOGIC BEGINPROCESS CLK BEGINIFrising edge CLK THENQ1 D ENDIF Q Q1 ENDPROCESS END rising edge为STD LOGIC 1164程序包中预定义函数 例4 PROCESSBEGINwaituntilCLK 1 利用wait语句Q D ENDPROCESS 例5 PROCESS CLK BEGINIFCLK 1 THENQ D 利用进程的启动特性产生对CLK的边沿检测ENDIF ENDPROCESS 例6 PROCESS CLK D BEGINIFCLK 1 电平触发型寄存器THENQ D ENDIF ENDPROCESS 三 实现时序电路的VHDL不同表达方式 三 实现时序电路的VHDL不同表达方式 边沿型触发器时序波形 电平触发型寄存器的时序波形 四 异步时序电路设计 ARCHITECTUREbhvOFMULTI DFFISSIGNALQ1 Q2 STD LOGIC BEGINPRO1 PROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ1 NOT Q2ORA ENDIF ENDPROCESS PRO2 PROCESS Q1 BEGINIFQ1 EVENTANDQ1 1 THENQ2 D ENDIF QQ Q2 ENDPEOCESS END 异步逻辑用多个时钟进程语句来构成 例 ENTITYCNT4ISPORT CLK INBIT Q BUFFERINTEGERRANGE15DOWNTO0 END ARCHITECTUREbhvOFCNT4ISBEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ Q 1 ENDIF ENDPROCESS ENDbhv 3 3计数器的VHDL设计 一4位二进制加法计数器的设计 取整数数据类型 为什么 端口信号模式取BUFFER 为什么 当前周期 注意整数和位的不同表达方式 下一周期 整数范围 二整数 自然数和正整数数据类型 整数类型INTEGER包含的元素包含正整数 负整数和零 通常VHDL仿真器将INTEGER类型作为有符号数 VHDL综合器将INTEGER类型作为无符号数 VHDL综合器要求必须使用RANGE子句为所定义的数限定范围 然后据此决定表示此信号或变量的二进制位数 整数常量的书写方式示例如下 1十进制整数0十进制整数35十进制整数10E3十进制整数16 D9 十六进制整数8 720 八进制整数2 11010010 二进制整数 NATURAL 自然数类型POSITIVE 整数类型 定义于标准程序包STANDARD 例 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCNT4ISPORT CLK INSTD LOGIC Q OUTSTD LOGIC VECTOR 3DOWNTO0 END ARCHITECTUREbhvOFCNT4ISSIGNALQ1 STD LOGIC VECTOR 3DOWNTO0 BEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ1 Q1 1 ENDIF ENDPROCESS Q Q1 ENDbhv 注意 信号端口模式和数据类型的改变 运算符加载 注意 引进内部信号矢量 三4位加法计数器的另一种表达方式 打开程序包 逻辑矢量 整数 图14位加法计数器RTL电路 4位锁存器 组合电路加1器 时钟信号 输出反馈 输出端口为BUFFER和OUT 综合后的输出电路结构是相同的 BUFFER并非是某种特定端口电路结构 只是对端口具有某种特定工作方式的描述 图24位加法计数器工作时序 3 4实用计数器VHDL的设计 一相关语法 1 变量 VARIABLE 赋值符号为 a 1 2 省略赋值操作符 OTHERS X 为了简化表达才使用短语 OTHERS X 这是一个省略赋值操作符 它可以在较多位的位矢量赋值中作省略化的赋值 如以下语句 SIGNALd1 d2 STD LOGIC VECTOR 4DOWNTO0 VARIABLEa1 STD LOGIC VECTOR 15DOWNTO0 d1 0 a1 OTHERS 0 d2 1 4 1 others 0 则d1为00000 a1为0000000000000000 d2为10010 BEGINIFRST 1 THENCQI OTHERS 0 计数器复位ELSIFCLK EVENTANDCLK 1 THEN 检测时钟上升沿IFEN 1 THEN 检测是否允许计数IFCQI 0 大于9 计数值清零ENDIF ENDIF ENDIF IFCQI 1001 THENCOUT 1 计数大于9 输出进位信号ELSECOUT 0 ENDIF CQ CQI 将计数值向端口输出ENDPROCESS ENDbehav 例一 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCNT10ISPORT CLK RST EN INSTD LOGIC CQ OUTSTD LOGIC VECTOR 3DOWNTO0 COUT OUTSTD LOGIC ENDCNT10 二带有复位和时钟使能的10进制计数器 ARCHITECTUREbehavOFCNT10ISBEGINPROCESS CLK RST EN VARIABLECQI STD LOGIC VECTOR 3DOWNTO0 非完整性条件语句 完整性条件语句 BEGINIFRST 1 THENCQI OTHERS 0 计数器复位ELSIFCLK EVENTANDCLK 1 THEN 检测时钟上升沿IFEN 1 THEN 检测是否允许计数IFCQI 0 大于9 计数值清零ENDIF ENDIF ENDIF IFCQI 1001 THENCOUT 1 计数大于9 输出进位信号ELSECOUT 0 ENDIF CQ CQI 将计数值向端口输出ENDPROCESS ENDbehav 图RTL电路 图3例一的RTL电路 图4例一的工作时序

注意事项

本文(《ch3VHDL设计初步》PPT课件.ppt)为本站会员(san****019)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!