已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA 技术实用教程技术实用教程 第五版第五版 习题习题 1 1 习习 题题 1 1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系 FPGA 在 ASIC 设计中有什么用 途 P3 4 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系 答 利用 EDA 技术进行电子系统设 计的最后目标是完成专用集成电路 ASIC 的设计和实现 FPGA 和 CPLD 是实现这一途径的主 流器件 FPGA 和 CPLD 的应用是 EDA 技术有机融合软硬件电子设计技术 SoC 片上系统 和 ASIC 设计 以及对自动设计与自动实现最典型的诠释 FPGA 在 ASIC 设计中有什么用途 答 FPGA 和 CPLD 通常也被称为可编程专用 IC 或可编程 ASIC FPGA 实现 ASIC 设计的现场可编程器件 1 2 与软件描述语言相比 VHDL 有什么特点 P4 6 答 编译器将软件程序翻译成基于某种特定 CPU 的机器代码 这种代码仅限于这种 CPU 而不能移植 并且机器代码不代表硬件结构 更不能改变 CPU 的硬件结构 只能被动 地为其特定的硬件电路结构所利用 综合器将 VHDL 程序转化的目标是底层的电路结构网表文件 这种满足 VHDL 设计 程序功能描述的电路结构 不依赖于任何特定硬件环境 具有相对独立性 综合器在将 VHDL 硬件描述语言 表达的电路功能转化成具体的电路结构网表过程中 具有明显的能动 性和创造性 它不是机械的一一对应式的 翻译 而是根据设计库 工艺库以及预先设置 的各类约束条件 选择最优的方式完成电路结构的设计 l 3 什么是综合 有哪些类型 综合在电子设计自动化中的地位是什么 P6 什么是综合 答 在电子设计领域中综合的概念可以表示为 将用行为和功能层次表 达的电子系统转换为低层次的便于具体实现的模块组合装配的过程 有哪些类型 答 1 从自然语言转换到 VHDL 语言算法表示 即自然语言综合 2 从 算法表示转换到寄存器传输级 RegisterTransport Level RTL 即从行为域到结构域的 综合 即行为综合 3 从 RTL 级表示转换到逻辑门 包括触发器 的表示 即逻辑综合 4 从 逻辑门表示转换到版图表示 ASIC 设计 或转换到 FPGA 的配置网表文件 可称为版图综 合或结构综合 综合在电子设计自动化中的地位是什么 答 是核心地位 见图 1 3 综合器具有更 复杂的工作环境 综合器在接受 VHDL 程序并准备对其综合前 必须获得与最终实现设计电 路硬件特征相关的工艺库信息 以及获得优化综合的诸多约束条件信息 根据工艺库和约 束条件信息 将 VHDL 程序转化成电路实现的相关信息 1 4 在 EDA 技术中 自顶向下的设计方法的重要意义是什么 P8 10 答 在 EDA 技术应用中 自顶向下的设计方法 就是在整个设计流程中各设计环节逐 步求精的过程 1 5 IP 在 EDA 技术的应用和发展中的意义是什么 P23 25 答 IP 核具有规范的接口协议 良好的可移植与可测试性 为系统开发提供了可靠的 保证 1 6 叙述 EDA 的 FPGA CPLD 设计流程 以及涉及的 EDA 工具及其在整个流程中的作 用 P12 14 答 1 1 设计输入设计输入 原理图原理图 HDL HDL 文本编辑文本编辑 EDA 设计输入器将电路系统以一定的表达方 式输入计算机 2 2 综合综合 EDA 综合器就是将电路的高级语言 如行为描述 转换成低级的 可与 FPGA CPLD 的基本结构相映射的网表文件或程序 3 3 适配适配 EDA 适配器的功能是 将由综合器产生的网表文件配置于指定的目标器件中 使之产生最终的下载文件 如 JEDEC JAM 格式的文件 4 4 时序仿真时序仿真 EDA 时序仿真器就是接近真实器件运行特性的仿 真 仿真文件中已包含了器件硬件特性参数 因而 仿真精度高 与功能仿真与功能仿真 EDA 功能 仿真器直接对 VHDL 原理图描述或其他描述形式的逻辑功能进行测试模拟 以了解其实现 的功能是否满足原设计的要求 仿真过程不涉及任何具体器件的硬件特性 5 5 编程下载编程下载 EDA 编程下载把适配后生成的下载或配置文件 通过编程器或编程电缆向 FPGA 或 CPLD 下载 以便进行硬件调试和验证 Hardware Debugging 6 6 硬件测试硬件测试 最后是将含有载 入了设计的 FPGA 或 CPLD 的硬件系统进行统一测试 以便最终验证设计项目在目标系统上 的实际工作情况 以排除错误 改进设计 其中 EDA 的嵌入式逻辑分析仪是将含有载入 了设计的 FPGA 的硬件系统进行统一测试 并将测试波形在 PC 机上显示 观察和分析 2 2 习习 题题 2 1 OLMC 输出逻辑宏单元 有何功能 说明 GAL 是怎样实现可编程组合电路与时序 电路的 P34 36 OLMC 有何功能 答 OLMC 单元设有多种组态 可配置成专用组合输出 专用输入 组合输出双向口 寄存器输出 寄存器输出双向口等 说明 GAL 是怎样实现可编程组合电路与时序电路的 答 GAL 通用阵列逻辑器件 是通过对其中的 OLMC 逻辑宏单元 的编程和三种模式配置 寄存器模式 复合模式 简单模式 实现组合电路与时序电路设计的 2 2 什么是基于乘积项的可编程逻辑结构 P33 34 40 什么是基于查找表的可编程 逻辑结构 P40 42 什么是基于乘积项的可编程逻辑结构 答 GAL CPLD 之类都是基于乘积项的可编程结 构 即包含有可编程与阵列和固定的或阵列的 PAL 可编程阵列逻辑 器件构成 什么是基于查找表的可编程逻辑结构 答 FPGA 现场可编程门阵列 是基于查找表 的可编程逻辑结构 2 3 FPGA 系列器件中的 LAB 有何作用 P42 44 答 FPGA Cyclone Cyclone II 系列器件主要由逻辑阵列块 LAB 嵌入式存储器块 EAB I O 单元 嵌入式硬件乘法器和 PLL 等模块构成 其中 LAB 逻辑阵列块 由一 系列相邻的 LE 逻辑单元 构成的 FPGA 可编程资源主要来自逻辑阵列块 LAB 2 4 与传统的测试技术相比 边界扫描技术有何优点 P47 50 答 使用 BST 边界扫描测试 规范测试 不必使用物理探针 可在器件正常工作时 在系统捕获测量的功能数据 克服传统的外探针测试法和 针床 夹具测试法来无法对 IC 内部节点无法测试的难题 2 5 解释编程与配置这两个概念 P51 56 答 编程 基于电可擦除存储单元的 EEPROM 或 Flash 技术 CPLD 一股使用此技术进 行编程 CPLD 被编程后改变了电可擦除存储单元中的信息 掉电后可保存 电可擦除编程 工艺的优点是编程后信息不会因掉电而丢失 但编程次数有限 编程的速度不快 配置 基于 SRAM 查找表的编程单元 编程信息是保存在 SRAM 中的 SRAM 在掉电 后编程信息立即丢失 在下次上电后 还需要重新载入编程信息 大部分 FPGA 采用该种编 程工艺 该类器件的编程一般称为配置 对于 SRAM 型 FPGA 来说 配置次数无限 且速度 快 在加电时可随时更改逻辑 下载信息的保密性也不如电可擦除的编程 2 6 请参阅相关资料 并回答问题 按本章给出的归类方式 将基于乘积项的可编程逻 辑结构的 PLD 器件归类为 CPLD 将基于查找表的可编程逻辑结构的 PLD 器什归类为 FPGA 那么 APEX 系列属于什么类型 PLD 器件 MAX II 系列又属于什么类型的 PLD 器 件 为什么 P47 51 答 APEX Advanced Logic Element Matrix 系列属于 FPGA 类型 PLD 器件 编程信 息存于 SRAM 中 MAX II 系列属于 CPLD 类型的 PLD 器件 编程信息存于 EEPROM 中 3 3 习习 题题 3 1 说明端口模式 INOUT 和 BUFFER 有何异同点 P60 INOUT 具有三态控制的双向传送端口 BUFFER 具有输出反馈的单向东湖出口 3 2 画出与以下实体描述对应的原理图符号元件 ENTITY buf3s IS 实体 1 三态缓冲器 PORT input IN STD LOGIC 输入端 enable IN STD LOGIC 使能端 output OUT STD LOGIC 输出端 END buf3s buf3s input output enable ENTITY mux21 IS 实体 2 2 选 1 多路选择器 PORT in0 in1 sel IN STD LOGIC output OUT STD LOGIC mux21 in0 output in1 sel 3 3 试分别用 IF THEN 语句和 CASE 语句的表达方式写出此电路的 VHDL 程序 选择控 制信号 s1 和 s0 的数据类型为 STD LOGIC VECTOR 当 s1 0 s0 0 s1 0 s0 1 s1 1 s0 0 和 s1 1 s0 1 时 分别执行 y a y b y c y d 解 1 用 IF THEN 语句实现 4 选 1 多路选择器 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY mux41 IS PORT a b c d IN STD LOGIC s0 IN STD LOGIC s1 IN STD LOGIC y OUT STD LOGIC END ENTITY mux41 ARCHITECTURE if mux41 OF mux41 IS SIGNAL s0s1 STD LOGIC VECTOR 1 DOWNTO 0 定义标准逻辑位矢量数据 BEGIN s0s1 s1 s1 相并 s0 即 s1 与 s0 并置操作 PROCESS s0s1 a b c d BEGIN IF s0s1 00 THEN y a ELSIF s0s1 01 THEN y b ELSIF s0s1 10 THEN y c ELSE y d END IF END PROCESS END ARCHITECTURE if mux41 解 2 用 CASE 语句实现 4 选 1 多路选择器 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY mux41 IS PORT a b c d IN STD LOGIC s0 IN STD LOGIC s1 IN STD LOGIC y OUT STD LOGIC END ENTITY mux41 ARCHITECTURE case mux41 OF mux41 IS SIGNAL s0s1 STD LOGIC VECTOR 1 DOWNTO 0 定义标准逻辑位矢量数据类型 BEGIN s0s1 y y y y NULL END CASE END PROCESS END ARCHITECTURE case mux41 3 4 给出 1 位全减器的 VHDL 描述 最终实现 8 位全减器 要求 1 首先设计 1 位半减器 然后用例化语句将它们连接起来 图 4 20 中 h suber 是半减器 diff 是 输出差 diff x y s out 是借位输出 s out 1 x y sub in 是借位输入 图 3 18 全减器结构图 解 1 1 实现 1 位半减器 h suber diff x y s out 1 x y LIBRARY IEEE 半减器描述 1 布尔方程描述方法 USE IEEE STD LOGIC 1164 ALL ENTITY h suber IS PORT x y IN STD LOGIC diff s out OUT STD LOGIC END ENTITY h suber ARCHITECTURE hs1 OF h suber IS BEGIN Diff x XOR NOT y s out xin y yin diff a s out b u2 h suber PORT MAP x a y sub in diff diff out s out c sub out x0 yin y0 diff out diff0 sub in sin sub out a0 u1 f suber PORT MAP xin x1 yin y1 diff out diff1 sub in a0 sub out a1 u2 f suber PORT MAP xin x2 yin y2 diff out diff2 sub in a1 sub out a2 u3 f suber PORT MAP xin x3 yin y3 diff out diff3 sub in a2 sub out a3 u4 f suber PORT MAP xin x4 yin y4 diff out diff4 sub in a3 sub out a4 u5 f suber PORT MAP xin x5 yin y5 diff out diff5 sub in a4 sub out a5 u6 f suber PORT MAP xin x6 yin y6 diff out diff6 sub in a5 sub out a6 u7 f suber PORT MAP xin x7 yin y7 diff out diff7 sub in a6 sub out sout END ARCHITECTURE s8 3 5 用 VHDL 设计一个 3 8 译码器 要求分别用 条件 赋值语句 case 语句 if else 语句 或移位操作符来完成 比较这 4 种方式中 哪一种最节省逻辑资源 解 1 条件赋值语句 3 5 3 到 8 译码器设计 条件赋值语句实现 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL 为使用类型转换函数 打开此程序包 ENTITY decoder3to8 IS port DIN IN STD LOGIC VECTOR 2 DOWNTO 0 DOUT OUT BIT VECTOR 7 DOWNTO 0 END decoder3to8 ARCHITECTURE behave OF decoder3to8 IS BEGIN WITH CONV INTEGER DIN SELECT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT NULL END CASE END PROCESS END behave 解 3 if else 语句 3 5 3 到 8 译码器设计 if else 语句实现 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL 为使用类型转换函数 打开此程序包 ENTITY decoder3to8 IS port DIN IN STD LOGIC VECTOR 2 DOWNTO 0 DOUT OUT BIT VECTOR 7 DOWNTO 0 END decoder3to8 ARCHITECTURE behave OF decoder3to8 IS BEGIN PROCESS DIN BEGIN IF CONV INTEGER DIN 0 THEN DOUT ELSIF CONV INTEGER DIN 1 THEN DOUT ELSIF CONV INTEGER DIN 2 THEN DOUT ELSIF CONV INTEGER DIN 3 THEN DOUT ELSIF CONV INTEGER DIN 4 THEN DOUT ELSIF CONV INTEGER DIN 5 THEN DOUT ELSIF CONV INTEGER DIN 6 THEN DOUT ELSIF CONV INTEGER DIN 7 THEN DOUT END IF END PROCESS END behave 解 4 移位操作符 3 5 3 到 8 译码器设计 移位操作实现 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL 为使用类型转换函数 打开此程序包 ENTITY decoder3to8 IS port DIN IN STD LOGIC VECTOR 2 DOWNTO 0 DOUT OUT BIT VECTOR 7 DOWNTO 0 END decoder3to8 ARCHITECTURE behave OF decoder3to8 IS BEGIN DOUT5 END g 5 cmp ARCHITECTURE BHV OF g 5 cmp IS BEGIN PROCESS d in BEGIN IF d in 0101 THEN cmp out 1 输入数据大于 5 比较输出 1 else cmp out 0 输入数据小于等于 5 比较输出 0 END IF END PROCESS END BHV 3 7 利用 if 语句设计一个全加器 3 7 利用 if 语句设计一个全加器 LIBRARY IEEE 1 位二进制全加器顶层设计描述 USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY f adder IS PORT ain bin cin IN STD LOGIC cout sum OUT STD LOGIC END ENTITY f adder ARCHITECTURE fd1 OF f adder IS BEGIN PROCESS ain bin cin BEGIN IF ain 1 XOR bin 1 XOR cin 1 THEN sum 1 ELSE sum 0 END IF IF ain 1 AND bin 1 OR ain 1 AND cin 1 OR bin 1 AND cin 1 OR ain 1 AND bin 1 AND cin 1 THEN cout 1 ELSE cout 0 END IF END PROCESS END ARCHITECTURE fd1 3 8 设计一个求补码的程序 输入数据是一个有符号的 8 位二进制数 解 3 8 设计一个求补码的程序 输入数据是一个有符号的 8 位二进制数 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY org patch IS PORT org data IN STD LOGIC VECTOR 7 DOWNTO 0 原码输入 patch data OUT STD LOGIC VECTOR 7 DOWNTO 0 补码输出 END org patch ARCHITECTURE BHV OF org patch IS BEGIN PROCESS org data BEGIN IF org data 7 0 THEN patch data 0 补码 原码 else patch data org data 7 org data DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT DOUT NULL END CASE END PROCESS END behave 3 10 利用 if 语句设计一个 3 位二进制数 A 2 0 B 2 0 的比较器电路 对于比较 AB A B 的结果分别给出输出信号 LT 1 GT 1 EQ 1 3 10 利用 if 语句设计一个 3 位二进制数 A 2 0 B 2 0 的比较器电路 对于比较 AB A B 的结果分别给出输出信号 LT 1 GT 1 EQ 1 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY COMP IS PORT A B IN STD LOGIC VECTOR 2 DOWNTO 0 两个 3 位输入 LT OUT STD LOGIC 小于输出 GT OUT STD LOGIC 大于输出 EQ OUT STD LOGIC 等于输出 END ENTITY COMP ARCHITECTURE ONE OF COMP IS BEGIN PROCESS A B BEGIN IF A B THEN LT 1 ELSE LTB THEN GT 1 ELSE GT 0 END IF IF A B THEN EQ 1 ELSE EQ 0 END IF END PROCESS LT A B 小于 GT B 大于 EQ A B 等于 END ARCHITECTURE ONE 3 11 利用 8 个全加器 可以构成一个 8 位加法器 利用循环语句来实现这项设计 并以 此项设计为例 使用 GENERIC 参数传递的功能 设计一个 32 位加法器 3 11 利用 GENERIC 参数和循环语句将 8 个全加器构成成 8 位加法器 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY ADDER8B IS GENERIC S INTEGER 8 定义参数 S 为整数类型 且等于 4 PORT A B IN STD LOGIC VECTOR S 1 DOWNTO 0 CIN IN STD LOGIC SUM OUT STD LOGIC VECTOR S 1 DOWNTO 0 COUT OUT STD LOGIC END ENTITY ADDER8B ARCHITECTURE ONE OF ADDER8B IS BEGIN PROCESS A B CIN VARIABLE S1 STD LOGIC VECTOR S 1 DOWNTO 0 VARIABLE C1 STD LOGIC VECTOR S DOWNTO 0 BEGIN C1 CIN C1 0 CIN FOR i IN 1 TO S LOOP IF A i 1 1 XOR B i 1 1 XOR C1 1 THEN S1 i 1 1 ELSE S1 i 1 0 END IF IF A i 1 1 AND B i 1 1 OR A i 1 1 AND C1 1 OR B i 1 1 AND C1 1 OR A i 1 1 AND B i 1 1 AND C1 1 THEN C1 1 ELSE C1 0 END IF END LOOP SUM S1 COUT C1 END PROCESS END ARCHITECTURE ONE 3 12 设计一个 2 位 BCD 码减法器 注意可以利用 BCD 码加法器来实现 因为减去一个 二进制数 等于加上这个数的补码 只是需要注意 作为十进制的 BCD 码的补码获取方 式与普通二进制数稍有不同 我们知道二进制数的补码是这个数的取反加 1 假设有一个 4 位二进制数是 0011 其取补实际上是用 1111 减去 0011 再加上 l 相类似 以 4 位二进 制表达的 BCD 码的取补则是用 9 1001 减去这个数再加上 1 3 12 设计 2 位 BCD 码减法器 利用减去数等于加上该数补码方法 a b a b 补码 LIBRARY IEEE 待例化元件 USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC arith ALL USE IEEE STD LOGIC unsigned ALL ENTITY SUB2BCD IS PORT a b IN STD LOGIC VECTOR 7 DOWNTO 0 diff out STD LOGIC VECTOR 7 DOWNTO 0 sout OUT STD LOGIC END SUB2BCD ARCHITECTURE behave OF SUB2BCD IS BEGIN PROCESS a b VARIABLE cc STD LOGIC VECTOR 7 DOWNTO 0 BEGIN IF a b THEN sout 1 ELSE sout 1001 THEN cc cc END IF IF cc 7 DOWNTO 4 1001 THEN cc cc END IF cc a cc IF cc 3 DOWNTO 0 1001 THEN cc cc END IF IF cc 7 DOWNTO 4 1001 THEN cc cc END IF IF a 1001 THEN cc cc END IF IF cc 7 DOWNTO 4 1001 THEN cc cc END IF END IF diff cc END PROCESS END behave 3 13 设计一个 4 位乘法器 为此首先设计一个加法器 用例化语句调用这个加法器 用 移位相加的方式完成乘法 并以此项设计为基础 使用 GENERIC 参数传递的功能 设计 一个 16 位乘法器 3 13 4 位移位相加型乘法器设计 例化调用加法器 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY MULT4B IS GENERIC S INTEGER 4 定义参数 S 为整数类型 且等于 4 PORT R OUT STD LOGIC VECTOR 2 S 1 DOWNTO 0 A B IN STD LOGIC VECTOR S 1 DOWNTO 0 END ENTITY MULT4B ARCHITECTURE ONE OF MULT4B IS COMPONENT addern IS PORT a b IN STD LOGIC VECTOR result out STD LOGIC VECTOR END COMPONENT SIGNAL A0 STD LOGIC VECTOR 2 S 1 DOWNTO 0 SIGNAL RR3 RR2 RR1 RR0 ZZ1 ZZ0 STD LOGIC VECTOR 2 S 1 DOWNTO 0 BEGIN A0 CONV STD LOGIC VECTOR 0 S PROCESS A B BEGIN IF B 0 1 THEN RR0 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 0 ELSE RR0 0 END IF IF B 1 1 THEN RR1 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 1 ELSE RR1 0 END IF IF B 2 1 THEN RR2 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 2 ELSE RR2 0 END IF IF B 3 1 THEN RR3 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 3 ELSE RR3 0 END IF END PROCESS u0 addern PORT MAP a RR0 b RR1 result ZZ0 u1 addern PORT MAP a ZZ0 b RR2 result ZZ1 u2 addern PORT MAP a ZZ1 b RR3 result R END ARCHITECTURE ONE 3 13a 16 位乘法器 通过底层 3 13 MULTSB 和顶层 GENERIC 参数和传递例化语句实 现 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY MULT16B IS PORT D1 D2 IN STD LOGIC VECTOR 15 DOWNTO 0 Q OUT STD LOGIC VECTOR 31 DOWNTO 0 END ARCHITECTURE BHV OF MULT16B IS COMPONENT MULTSB MULTS8 模块的调用声明 GENERIC S integer 照抄 MULTSB 实体中关于参数 端口 定义的语句 PORT R OUT std logic vector 2 S 1 DOWNTO 0 A B IN std logic vector S 1 DOWNTO 0 END COMPONENT BEGIN u1 MULTSB GENERIC MAP S 16 PORT MAP R Q A D1 B D2 END 3 14 用循环语句设计一个 7 人投票表决器 解 3 14 用循环语句设计一个 7 人投票表决器 及一个 4 位 4 输出最大数值检测电路 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY vote 7 IS PORT DIN IN STD LOGIC VECTOR 6 DOWNTO 0 7 位表决输入 1 同意 0 不同意 G 4 OUT STD LOGIC 超过半数指示 CNTH OUT STD LOGIC VECTOR 2 DOWNTO 0 表决结果统计数 END vote 7 ARCHITECTURE BHV OF vote 7 IS BEGIN PROCESS DIN VARIABLE Q STD LOGIC VECTOR 2 DOWNTO 0 BEGIN Q 000 FOR n IN 0 TO 6 LOOP n 是 LOOP 的循环变量 IF DIN n 1 THEN Q Q 1 END IF END LOOP CNTH 4 THEN G 4 1 ELSE G 4 0 END IF END PROCESS END BHV 3 15 设计一个 4 位 4 输入最大数值检测电路 3 15 设计一个 4 位 4 输入最大数值检测电路 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY MAXDATA IS PORT A IN STD LOGIC VECTOR 3 DOWNTO 0 MAXOUT OUT STD LOGIC END ENTITY MAXDATA ARCHITECTURE ONE OF MAXDATA IS BEGIN PROCESS A BEGIN IF A 1111 THEN MAXOUT 1 ELSE MAXOUT 0 END IF END PROCESS END ARCHITECTURE ONE 3 16 设计 VHDL 程序 实现两个 8 位二进制数相加 然后将和左移或右移 4 位 并分 别将移位后的值存入变量 AA 和 BB 中 3 16 设计 VHDL 程序 实现两个 8 位二进制数相加 然后将和左移或右移 4 位 并分别 将移位后的值存入变量 A 和 B 中 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY ADDER8B IS GENERIC S INTEGER 8 定义参数 S 为整数类型 且等于 4 PORT A B IN STD LOGIC VECTOR S 1 DOWNTO 0 CIN IN STD LOGIC SUM OUT STD LOGIC VECTOR S 1 DOWNTO 0 COUT OUT STD LOGIC AA BB OUT STD LOGIC VECTOR S 1 4 DOWNTO 0 END ENTITY ADDER8B ARCHITECTURE ONE OF ADDER8B IS BEGIN PROCESS A B CIN VARIABLE S1 STD LOGIC VECTOR S 1 DOWNTO 0 VARIABLE C1 STD LOGIC VARIABLE AB STD LOGIC VECTOR S 1 4 DOWNTO 0 BEGIN C1 CIN FOR i IN 1 TO S LOOP IF A i 1 1 XOR B i 1 1 XOR C1 1 THEN S1 i 1 1 ELSE S1 i 1 0 END IF IF A i 1 1 AND B i 1 1 OR A i 1 1 AND C1 1 OR B i 1 1 AND C1 1 OR A i 1 1 AND B i 1 1 AND C1 1 THEN C1 1 ELSE C1 0 END IF END LOOP SUM S1 COUT C1 AA TO STDLOGICVECTOR TO BITVECTOR 0000 BB TO STDLOGICVECTOR TO BITVECTOR 0000 END PROCESS END ARCHITECTURE ONE 3 17 举例说明 GENERIC 说明语句 在实体定义语句中定义类属常数 和 GENERIC 映 射语句 在例化语句中将类属常数赋予新值 有何用处 P82 3 18 表达式 C A B 中 A B 和 C 的数据类型都是 STD LOGIC VECTOR 是否能 直接进行加法运算 说明原因和解决方法 能 第一种将 A B 转换成整型数相加结果再转 换成逻辑位矢后送 C P89 第二种使用 USE IEEE SDT LOGIC UNSIGNED ALL 语句打开 重载运算符程序包 P70 P130 3 19 VHDL 中有哪三种数据对象 详细说明它们的功能特点以及使用方法 举例说明数 据对象与数据类型的关系 信号 变量 常量 P71 3 20 能把任意一种进制的值向一整数类型的数据对象赋值吗 如果能 怎样做 能 若 A B C D 是信号整数类型 A 16 df B 8 23 C 2 01 DB 时 E 1 当 AB 时 GT 1 当 A B 时 LT 1 第一种设计方案是常规的比较器设计方法 即直接利用关系操作符进行编程设计 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY COMP IS PORT A B IN STD LOGIC VECTOR 7 DOWNTO 0 两个 3 位输入 LT OUT STD LOGIC 小于输出 GT OUT STD LOGIC 大于输出 EQ OUT STD LOGIC 等于输出 END ENTITY COMP ARCHITECTURE ONE OF COMP IS BEGIN PROCESS A B BEGIN IF A B THEN LT 1 ELSE LTB THEN GT 1 ELSE GT 0 END IF IF A B THEN EQ 1 ELSE EQB 时 GT 1 当 A B 时 LT 1 第二种设计方案是利用减法器来完成 通过减法运算后的符号和结果来判别两个被 比较值的大小 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY COMP IS PORT A B IN STD LOGIC VECTOR 7 DOWNTO 0 两个 3 位输入 LT OUT STD LOGIC 小于输出 GT OUT STD LOGIC 大于输出 EQ OUT STD LOGIC 等于输出 END ENTITY COMP ARCHITECTURE ONE OF COMP IS SIGNAL C STD LOGIC VECTOR 7 DOWNTO 0 SIGNAL D E F G INTEGER RANGE 255 DOWNTO 0 BEGIN C A B D 10 E 16 D9 F 8 72 G 2 PROCESS A B BEGIN IF C 7 1 THEN LT 1 ELSE LT 0 END IF IF C 0 THEN EQ 1 ELSE EQ 0 IF C 7 0 THEN GT 1 ELSE GT 0 END IF END IF END PROCESS END ARCHITECTURE ONE 3 23 根据图 3 19 用两种不同描述方式设计一 4 选 1 多路选择器 在设计中需要体现此 电路由三个 2 选 l 多路选择器构成 解 1 层次例化 解 2 单层 3 进程 解 1 层次例化 底层元件 mux21a vhd 程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY mux21a IS PORT a b s IN STD LOGIC y OUT STD LOGIC END ENTITY mux21a ARCHITECTURE one OF mux21a IS BEGIN PROCESS a b s BEGIN IF s 0 THEN y a ELSE yX0 b X1 s S0 y N0 u2 mux21a PORT MAP a X2 b X3 s S0 y N1 u3 mux21a PORT MAP a N0 b N1 s S1 y OUTY END 解 2 单层结构 mux41a vhd 程序如下 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY mux41a IS PORT x1 x2 x3 x4 s0 s1 IN STD LOGIC y OUT STD LOGIC END ENTITY mux41a ARCHITECTURE one OF mux41a IS signal N0 N1 STD LOGIC BEGIN com1 PROCESS x1 x2 s0 BEGIN IF s0 0 THEN N0 x1 ELSE N0 x2 END IF END PROCESS com2 PROCESS x3 x4 s0 BEGIN IF s0 0 THEN N1 x3 ELSE N1 x4 END IF END PROCESS com3 PROCESS N0 N1 s1 BEGIN IF s1 0 THEN y N0 ELSE y N1 END IF END PROCESS END ARCHITECTURE one 4 4 习习 题题 4 1 归纳利用 Quartus II 进行 VHDL 文本输入设计的流程 从文件输入一直到硬件功能 测试 P96 P110 答 1 建立工作库文件夹和编辑设计文件 2 创建工程 3 编译前设置 4 全程 编译 5 时序仿真 6 引脚锁定 7 配置文件下载 8 打开 SignalTap II 编辑窗口 9 调入 SignalTap II 的待测信号 10 SignalTap II 参数设置 11 SignalTap II 参数设 置文件存盘 12 带有 SignalTap II 测试信息的编译下载 13 启动 SignalTap II 进行采 样与分析 14 SignalTap II 的其他设置和控制方法 4 2 参考 Quartus II 的 Help 详细说明 Assignments 菜单中 Settings 对话框的功能 1 说明其中的 Timing Requirements USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL USE IEEE STD LOGIC ARITH ALL ENTITY MULT4B IS GENERIC S INTEGER 4 定义参数 S 为整数类型 且等于 4 PORT R OUT STD LOGIC VECTOR 2 S 1 DOWNTO 0 A B IN STD LOGIC VECTOR S 1 DOWNTO 0 END ENTITY MULT4B ARCHITECTURE ONE OF MULT4B IS COMPONENT addern IS PORT a b IN STD LOGIC VECTOR result out STD LOGIC VECTOR END COMPONENT SIGNAL A0 STD LOGIC VECTOR 2 S 1 DOWNTO 0 SIGNAL RR3 RR2 RR1 RR0 ZZ1 ZZ0 STD LOGIC VECTOR 2 S 1 DOWNTO 0 BEGIN A0 CONV STD LOGIC VECTOR 0 S PROCESS A B BEGIN IF B 0 1 THEN RR0 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 0 ELSE RR0 0 END IF IF B 1 1 THEN RR1 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 1 ELSE RR1 0 END IF IF B 2 1 THEN RR2 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 2 ELSE RR2 0 END IF IF B 3 1 THEN RR3 TO STDLOGICVECTOR TO BITVECTOR A0 SLL 3 ELSE RR3 0 END IF END PROCESS u0 addern PORT MAP a RR0 b RR1 result ZZ0 u1 addern PORT MAP a ZZ0 b RR2 result ZZ1 u2 addern PORT MAP a ZZ1 b RR3 result R END ARCHITECTURE ONE 解 3 14 用循环语句设计一个 7 人投票表决器 及一个 4 位 4 输出最大数值检测电路 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED ALL ENTITY vote 7 IS PORT DIN IN STD LOGIC VECTOR 6 DOWNTO 0 7 位表决输入 1 同意 0 不同意 G 4 OUT STD LOGIC 超过半数指示 CNTH OUT STD LOGIC VECTOR 2 DOWNTO 0 表决结果统计数 END vote 7 ARCHITECTURE BHV OF vote 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑电气配电线路电压降允许值确定方法选择原则
- TLS协议的性能优化技巧课程设计
- 朋克形象设计
- 创客贴设计转换应用方案
- 新员工入职三个月工作计划
- 机械类毕业设计
- 旅游产品设计市场分析报告
- 急诊科中暑处理方案
- 电水壶改良设计方案
- 模具设计标准规范
- 2025年社区工作者招聘考试真题试卷及答案
- 2025年福建省高考生物试卷真题(含答案解析)
- 山顶索道施工技术交底
- 第 29 课 智能工具再体验说课稿小学信息技术人教版2024五年级全一册-人教版2024
- 宁德时代shl测试题库以及答案
- 初级注册安全工程师(安全生产法律法规)题库及答案(上海市2025年)
- 肿瘤溶解综合征的临床护理
- 湖北省高速公路改扩建施工路域环境提升指南(试行)2025
- 滴滴人证考试题库及答案
- 尾矿库施工方案安全措施与实施步骤试题及答案
- 2026年中考英语专题复习:常考必背热点话题作文满分范文汇编
评论
0/150
提交评论