《EDA技术实用教程第四版》习题答案. 联系客服

发布时间 : 星期二 文章《EDA技术实用教程第四版》习题答案.更新完毕开始阅读84ae4f70657d27284b73f242336c1eb91a37332c

《EDA技术实用教程(第四版)》习题

1 习 题

1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?P3~4

1-2 与软件描述语言相比,VHDL有什么特点? P6

l-3 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 1-4 在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 1-5 IP在EDA技术的应用和发展中的意义是什么? P22~14

1-6 叙述EDA的FPGA/CPLD设计流程,以及涉及的EDA工具及其在整个流程中的作用。 (P11~13)

2 习 题

2-1 OLMC(输出逻辑宏单元)有何功能?说明GAL是怎样实现可编程组合电路与时序电路的。 P34~36

2-2 什么是基于乘积项的可编程逻辑结构? P33~34,40 什么是基于查找表的可编程逻辑结构? P40~41

2-3 FPGA系列器件中的LAB有何作用? P43~45 2-5 解释编程与配置这两个概念。 P58

2-6 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的PLD器件归类为CPLD;将基于查找表的可编程逻辑结构的PLD器什归类为FPGA,那么,APEX系列属于什么类型PLD器件? MAX II系列又属于什么类型的PLD器件?为什么? P54~56

3 习 题

3-1 画出与以下实体描述对应的原理图符号元件: 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-2 图3-16所示的是4选1多路选择器,试分别用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。

图3-16 4选1多路选择器

--解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&s0; --s1相并s0,即s1与s0并置操作 PROCESS(s0s1,a,b,c,d) BEGIN

IF s0s1 = \ THEN y <= a; ELSIF s0s1 = \ THEN y <= b; ELSIF s0s1 = \ 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<=s1&s0; --s1相并s0,即s1与s0并置操作 PROCESS(s0s1,a,b,c,d) BEGIN

CASE s0s1 IS --类似于真值表的case语句 WHEN \ => y <= a; WHEN \ => y <= b; WHEN \ => y <= c; WHEN \ => y <= d; WHEN OTHERS =>NULL ; END CASE; END PROCESS;

END ARCHITECTURE case_mux41;

3-3 图3-17所示的是双2选1多路选择器构成的电路MUXK,对于其中MUX21A,当s=’0’和s=’1’时,分别有y<=‘a’和y<=’b’。试在一个结构体中用两个进程来表达此电路,每个进程中用CASE语句描述一个2选1多路选择器MUX21A。

图3-17 含2选1多路选择器的模块

--解:用CASE语句实现图4-18所示的是双2选1多路选择器构成的电路 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux31 IS

PORT(a1,a2,a3,s0,s1: IN STD_LOGIC; outy:OUT STD_LOGIC); END ENTITY mux31;

ARCHITECTURE case_mux31 OF mux31 IS SIGNAL y : STD_LOGIC;

BEGIN

u1: PROCESS(s0,a1,a2,a3) BEGIN

CASE s0 IS --类似于真值表的case语句 WHEN '0' => y <= a2; WHEN '1' => y <= a3; WHEN OTHERS =>NULL ; END CASE; END PROCESS;

u2: PROCESS(s1,a1,a2,a3,y) BEGIN

CASE s1 IS --类似于真值表的case语句 WHEN '0' => outy <= a1; WHEN '1' => outy <= y; WHEN OTHERS =>NULL ; END CASE; END PROCESS;

END ARCHITECTURE case_mux31;

3-4 将例3-20程序的计数器改为十二进制计数器,程序用例3-21的方式表述,并且将复位RST改为同步清零控制,加载信号LOAD改为异步控制方式。讨论例3-20与例3-21的异同点。

--解:十二进制计数器VHDL程序设计。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT12 IS

PORT(CLK,RST,EN,LOAD : IN STD_LOGIC;

DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --4位预置数 DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--计数值输出 COUT : OUT STD_LOGIC); --计数进位输出 END CNT12;

ARCHITECTURE behav OF CNT12 IS

SIGNAL Q : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

REG: PROCESS(CLK,RST,EN,LOAD,Q) BEGIN

IF LOAD='0' THEN Q<=DATA; --允许加载

ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF RST='0' THEN Q<=(OTHERS =>'0'); --计数器异步复位 ELSE

IF EN='1' THEN --检测是否允许计数或加载(同步使能) IF LOAD='0' THEN Q<=DATA; --允许加载 ELSE

IF Q<12 THEN Q<=Q+1; --允许计数,检测是否小于9