




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
许钢2020 4 11 VHDL语言与数字逻辑电路设计 1 VHDL语言与数字逻辑电路设计 主讲 许钢2010 9 许钢2020 4 11 VHDL语言与数字逻辑电路设计 2 第6讲VHDL并行语句 并行语句是硬件描述语言与软件程序最大的区别所在 所有并行语句在结构体中的执行都是同时进行的 即它们的执行顺序与语句书写的顺序无关 这种并行性是由硬件本身的并行性决定的 即一旦电路接通电源 它的各部分就会按照事先设计好的方案同时工作 VHDL有几种主要并行语句 进程语句块语句并行信号赋值语句元件例化语句生成语句并行过程调用语句 许钢2020 4 11 VHDL语言与数字逻辑电路设计 3 第6讲VHDL并行语句 进程 Process 语句是一种并发处理语句 在一个构造体中多个Process是同时并行运行 它是VHDL语言中描述硬件系统并发行为的最基本的语句 它的特点归纳如下 一个进程语句可以与其他进程语句并发运行 进程语句可以存取在设计实体或构造体中定义的所有信号 在一个进程模块内的语句都是按顺序执行的 进程有挂起和执行两个状态 要激活进程 在进程结构中必须包含一个敏感信号列表或含一个Wait语句 进程之间的通信是通过信号传递实现的 进程语句 Process 许钢2020 4 11 VHDL语言与数字逻辑电路设计 4 第6讲VHDL并行语句 块语句是将结构体中的并行语句组合在一起 其主要目的是改善并行语句及其结构的可读性 一般用于较复杂的VHDL程序中 但从综合的角度看 BLOCK语句没有实用价值 块语句的语法描述如下 块标号 BLOCK说明语句 BEGIN并行语句 ENDBLOCK 块标号 注意 块标号必须有 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 5 第6讲VHDL并行语句 说明语句与结构体的说明语句相同 主要是对该块所要用到的对象 其它模块等加以说明 可说明的项目有 端口说明 类属说明 子程序说明及子程序体 数据类型说明 常数说明 信号说明 元件说明等 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 6 第6讲VHDL并行语句 例1 ARCHITECTUREbehaveOFtest blockISBEGIN p1 BLOCKBEGINaequalbbELSE 0 alessb 1 WHENa bELSE 0 ENDBLOCK ENDbehave 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 7 第6讲VHDL并行语句 BLOCK是可以嵌套的 内层BLOCK块可以使用外层BLOCK块所定义的信号 而反之则不行 例2 BLK1 BlockSignalqbus std logic vector BeginBLK2 BlockSignalqbus std logic vector Begin BLK2语句 使用BLK1中的qbus BLK1 qbusEndBlockBLK2 BLK1语句EndBlockBLK1 尽量不要用同名变量或信号 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 8 第6讲VHDL并行语句 块是一个独立的子结构 它可以包含Port和Generic语句 这样就允许设计者通过这两个语句将块内的信号变化传递给块的外部信号 同样也可以将块外部的信号变化传递给块的内部 Port和Generic语句的这种性能 将允许在一个新的设计中可重复使用已有的Block块 在新的模块中 如果Port名和Generic名与原来的不一致时 在块中采用Port和Generic映射就可以顺利解决这个问题 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 9 第6讲VHDL并行语句 例3 Architecturecpu blkOFcpuIsSignalibus dbus x tw32 Begin ALU BlockPort abus bbus Intw32 dout Outtw32 PortMap abus ibus bbus dbus dout x 原有的信号 常数等说明语句 Begin原有的块内语句 EndBlockALU Endcpu blk 块语句 Block 许钢2020 4 11 VHDL语言与数字逻辑电路设计 10 第6讲VHDL并行语句 并行信号赋值语句有三种形式 简单信号赋值语句简单信号赋值语句的格式 赋值目标 表达式 并行信号赋值语句 许钢2020 4 11 VHDL语言与数字逻辑电路设计 11 第6讲VHDL并行语句 并行信号赋值语句有三种形式 条件信号赋值语句条件信号赋值语句的格式 赋值目标 表达式1WHEN赋值条件ELSE表达式2WHEN赋值条件ELSE 表达式n 例4 ARCHITECTUREarchmuxOFmux4ISBEGINy a0WHENs 00 ELSEa1WHENs 01 ELSEa2WHENs 10 ELSEa3 ENDarchmux 并行信号赋值语句 对比If语句 If条件信号赋值语句是顺序语句 只能用在进程 Process 中 许钢2020 4 11 VHDL语言与数字逻辑电路设计 12 第6讲VHDL并行语句 并行信号赋值语句有三种形式 选择信号赋值语句选择信号赋值语句的格式 WITH选择表达式SELECT赋值目标信号 表达式1WHEN选择值1 表达式2WHEN选择值2 表达式nWHENothers 例5 ARCHITECTUREarchmuxOFmux4ISBEGINWITHsSELECTy a0WHEN 00 a1WHEN 01 a2WHEN 10 a3WHENOTHERS 最后一句为分号 ENDarchmux 并行信号赋值语句 对比Case语句 Case语句是顺序语句 只能用在进程 Process 中 许钢2020 4 11 VHDL语言与数字逻辑电路设计 13 第6讲VHDL并行语句 并行过程调用语句见第7讲 并行过程调用语句 许钢2020 4 11 VHDL语言与数字逻辑电路设计 14 第6讲VHDL并行语句 我们常把已设计好的设计实体称为一个元件或一个模块 VHDL中基本的设计层次是元件 它可以作为别的模块或者高层模块引用的低层模块 元件声明是对VHDL模块 即底层设计 也是完整的VHDL设计 的说明 使之可在其它模块中被调用 元件声明可放在程序包中 也可放在其它高层设计的结构体中进行 元件例化是指元件的调用 元件声明及元件例化的语法分别如下 元件声明 COMPONENT元件实体名PORT 元件端口信息 同该元件定义时实体的PORT部分ENDCOMPONENT 元件实体名 元件例化 例化名 元件实体名PORTMAP 端口列表 其中端口列表可以采用位置关联和名称关联的方法 元件的例化 许钢2020 4 11 VHDL语言与数字逻辑电路设计 15 第6讲VHDL并行语句 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 元件的例化 模10计数器模块cntm10的符号和输入输出关系时序图 许钢2020 4 11 VHDL语言与数字逻辑电路设计 16 第6讲VHDL并行语句 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 元件的例化 七段译码器模块decode48的符号和输入输出关系波形图 许钢2020 4 11 VHDL语言与数字逻辑电路设计 17 第6讲VHDL并行语句 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 元件的例化 cntm10和decode48模块的连接关系图 许钢2020 4 11 VHDL语言与数字逻辑电路设计 18 第6讲VHDL并行语句 顶层设计VHDL源程序 cntvh10 vhdLIBRARYieee USEieee std logic 1164 ALL USEieee std logic unsigned ALL ENTITYcntvh10PORT rd clk INstd logic co OUTstd logic qout OUTstd logic vector 6DOWNTO0 ENDcntvh10 接下一页 元件的例化 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 许钢2020 4 11 VHDL语言与数字逻辑电路设计 19 第6讲VHDL并行语句 ARCHITECTUREarchOFcntvh10IS 元件声明 库中已有cntm10及decode48这两个元件 COMPONENTcntm10PORT nreset clk INstd logic co OUTstd logic qcnt BUFFERstd logic vector 3DOWNTO0 ENDCOMPONENT COMPONENTdecode48PORT adr INstd logic vector 3DOWNTO0 decodeout OUTstd logic vector 6DOWNTO0 ENDCOMPONENT 接下一页 元件的例化 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 注意 元件声明时端口名一定要用原元件定义时的端口名 不能变动 许钢2020 4 11 VHDL语言与数字逻辑电路设计 20 第6讲VHDL并行语句 SIGNALqa std logic vector 3DOWNTO0 BEGINu1 cntm10PORTMAP rd clk co qa 元件例化语句 位置关联u2 decode48PORTMAP decodeout qout adr qa 元件例化语句 名称关联ENDarch 元件例化时的端口列表可采用位置关联方法 如u1 这种方法要求的实参 该设计中连接到端口的实际信号 如rd clk等 所映射的形参 被调用元件的对外接口信号 的位置同元件声明中一致 元件例化时的端口列表也可采用名称关联方法映射实参与形参 如u2 格式为 形参1 实参1 形参2 实参2 这种方法与位置无关 元件的例化 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 许钢2020 4 11 VHDL语言与数字逻辑电路设计 21 第6讲VHDL并行语句 元件的例化 例6 将一个模为10的计数器和一个七段译码器连接 送数码管显示 已知模10计数器模块名称为 cntm10 七段译码器模块名称为 decode48 许钢2020 4 11 VHDL语言与数字逻辑电路设计 22 第6讲VHDL并行语句 生成语句有一种复制作用 它可以生成与某个元件或设计单元电路完全相同的一组并行元件或设计单元电路结构 生成语句一般要和元件的例化语句联合起来使用 生成语句的格式 标号 FOR循环变量IN取值范围GENERATE说明语句 BEGIN并行语句 含元件例化语句 ENDGENERATE 标号 或标号 IF条件GENERAE说明语句 BEGIN并行语句 含元件例化语句 ENDGENERATE 标号 生成语句 Generate 许钢2020 4 11 VHDL语言与数字逻辑电路设计 23 第6讲VHDL并行语句 例7 利用Generate语句产生4个D触发器 如图所示 生成语句 Generate 许钢2020 4 11 VHDL语言与数字逻辑电路设计 24 第6讲VHDL并行语句 例7 利用Generate语句产生4个D触发器 如图所示 LIBRARYieee USEieee std logic 1164 ALL ENTITYdff 4ISPORT clk clrn prn INstd logic d INstd logic vector 3DOWNTO0 q OUTstd logic vector 3DOWNTO0 ENDdff 4 ARCHITECTUREarchdff 4OFdff 4ISCOMPONENTdffPORT D CLK CLRN PRN INstd logic Q OUTstd logic ENDCOMPONENT BEGINdff4 FORiIN3DOWNTO0GENERATEu dffPORTMAP d i clk clrn prn q i ENDGENERATE ENDarchdff 4 生成语句 Generate 许钢2020 4 11 VHDL语言与数字逻辑电路设计 25 第6讲VHDL并行语句 一般来讲 如果电路中各元件实体的输入 输出端是规则的 则用FOR GENERATE设计 如果是不规则的 则用IF GENERATE语句设计 例8 4位移位寄存器的设计 如图所示 生成语句 Generate 许钢2020 4 11 VHDL语言与数字逻辑电路设计 26 第6讲VHDL并行语句 例8 4位移位寄存器的设计 如图所示 LIBRARYieee USEieee std logic 1164 ALL ENTITYn shifterISGENERIC m integer 4 PORT a clk clrn prn INstd logic b OUTstd logic ENDn shifter ARCHITECTURE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西加油罐采购合同范本
- 锡山区餐饮投资合同范本
- 物业空调安装免责协议书
- 灌溉水渠修复协议书范本
- 用工程货款买房合同范本
- 法律欠款回收协议书范本
- 腻子工工程分包合同范本
- 父母卖房给子女合同范本
- 机械厂临时工合同协议书
- 砖窑摊位转让协议书模板
- 内分泌系统及代谢性疾病的药物治疗(临床药物治疗学课件)
- 民宿托管运营合同模板
- 2024郑州铁路职业技术学院教师招聘考试笔试试题
- 2023年喀什地区莎车县三支一扶笔试真题
- 2024年湖北农谷实业集团有限责任公司招聘笔试冲刺题(带答案解析)
- CHT 9008.3-2010 基础地理信息数字成果1:500 1:1 000 1:2 000数字正射影像图(正式版)
- 四川省成都市2024年七年级下学期期末数学试题附答案
- (正式版)JBT 9229-2024 剪叉式升降工作平台
- 2024年浙江金华义乌市水利工程管理有限公司招聘笔试参考题库含答案解析
- 人口社会学(杨菊华 第二版) 课件 第8-14章 婚姻家庭-人口特征与民生发展
- 2023年汽车内外饰件行业洞察报告及未来五至十年预测分析报告
评论
0/150
提交评论