EDA技术与Verilog_HDL潘松第四章与第六章课后习题答案 ppt课件

合集下载

EDA技术及应用—Verilog HDL版第6章

EDA技术及应用—Verilog HDL版第6章

第6章 Verilog HDL设计应用实例
3) 8位布斯乘法器 布斯(booth)乘法算法,是先将被乘数的最低位加设一虚 拟位,开始时虚拟位设为0,并存放于被乘数中。根据最低 位与虚拟位构成的布斯编码的不同,分别执行如下四种运算: (1) 00:不执行运算,乘积缓存器直接右移1位。 (2) 01:将乘积加上被乘数后右移1位。 (3) 10:将乘积减去被乘数后右移1位。 (4) 11:不执行运算,乘积缓存器直接右移1位。
第6章 Verilog HDL设计应用实例
第6章 Verilog HDL设计应用实例
6.1 8位加法器的设计 6.2 8位乘法器的设计 6.3 8位除法器的设计 6.4 可调信号发生器的设计 6.5 PWM信号发生器的设计 6.6 数字频率计的设计 6.7 数字秒表的设计 6.8 交通灯信号控制器的设计 6.9 高速PID控制器的设计 6.10 FIR滤波器的设计 6.11 CORDIC算法的应用设计 6.12 闹钟系统的设计
pc1[k] = pp[k] & pc[k] | pp[k] & ps[k+1] | pc[k] & ps[k+1];//
end ps1[width-1] = pp[width-1];
//将pp乘积指定给ps1
第6章 Verilog HDL设计应用实例
pc1[width-1] = 0; //设定每列的最后一个进位都为0
//a为被乘数,b为乘数 //16位乘积
第6章 Verilog HDL设计应用实例
begin ra = a; rb = b; if (a==0 || b==0)
//当a=0或b=0时,rp=0
rp = 16'b0;
else if (a==1)

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年大学_EDA技术与VHDL第二版(潘松著)课后习题答案下载

2023年EDA技术与VHDL第二版(潘松著)课后习题答案下载EDA技术与VHDL第二版(潘松著)课后答案下载第1章 EDA技术概述1.1 EDA技术及其发展1.1.1 EDA技术的发展1.1.2 EDA技术的涵义1.1.3 EDA技术的基本特征1.2 EDA技术的主要内容及主要的EDA厂商1.2.1 EDA技术的主要内容1.2.2 主要EDA厂商概述1.3 EDA技术实现目标1.3.1 超大规模可编程逻辑器件1.3.2 半定制或全定制ASIC1.3.3 混合ASIC1.4 EDA技术应用1.4.1 EDA技术应用形式1.4.2 EDA技术应用场合1.5 EDA技术的发展趋势1.5.1 可编程器件的发展趋势1.5.2 软件开发工具的发展趋势1.5.3 输入方式的发展趋势__小结思考题和习题第2章大规模可编程逻辑器件2.1 可编程逻辑器件概述2.1.1 PLD的'发展进程2.1.2 PLD的种类及分类方法2.2 简单可编程逻辑器件2.2.1 PLD电路的表示方法及有关符号 2.2.2 PROM基本结构2.2.3 PLA基本结构2.2.4 PAL基本结构2.2.5 GAL基本结构2.3 复杂可编程逻辑器件2.3.1 CPLD基本结构2.3.2 Altera公司器件2.4 现场可编程逻辑器件2.4.1 FPGA整体结构2.4.2 Xilinx公司FPGA器件2.5 在系统可编程逻辑器件2.5.1 ispLSl/pLSl的结构2.5.2 Lattice公司ispLSI系列器件 2.6 FPGA和CPLD的开发应用2.6.1 CPLD和FPGA的编程与配置2.6.2 FPGA和CPLD的性能比较2.6.3 FPGA和CPLD的应用选择__小结思考题和习题第3章 EDA设计流程与开发3.1 EDA设计流程3.1.1 设计输入3.1.2 综合3.1.3 适配3.1.4 时序仿真与功能仿真3.1.5 编程下载3.1.6 硬件测试3.2 ASIC及其设计流程3.2.1 ASIC设计方法3.2.2 一般的ASIC设计流程3.3 可编程逻辑器件的开发环境 3.4 硬件描述语言3.5 IP核__小结思考题和习题第4章硬件描述语言VHDL4.1 VHDL概述4.1.1 VHDL的发展历程4.1.2 VHDL的特点4.2 VHDL程序基本结构4.2.1 实体4.2.2 结构体4.2.3 库4.2.4 程序包4.2.5 配置4.3 VHDL基本要素4.3.1 文字规则4.3.2 数据对象4.3.3 数据类型4.3.4 运算操作符4.3.5 VHDL结构体描述方式 4.4 VHDL顺序语句4.4.1 赋值语句4.4.2 IF语句4.4.3 等待和断言语句4.4.4 cASE语句4.4.5 LOOP语句4.4.6 RETIARN语句4.4.7 过程调用语句4.4.8 REPORT语句4.5 VHDL并行语句4.5.1 进程语句4.5.2 块语句4.5.3 并行信号代人语句4.5.4 并行过程调用语句4.5.5 并行断言语句4.5.6 参数传递语句4.5.7 元件例化语句__小结思考题和习题第5章 QuartusⅡ软件及其应用5.1 基本设计流程5.1.1 建立工作库文件夹和编辑设计文件 5.1.2 创建工程5.1.3 编译前设计5.1.4 全程编译5.1.5 时序仿真5.1.6 应用RTL电路图观察器5.2 引脚设置和下载5.2.1 引脚锁定5.2.2 配置文件下载5.2.3 AS模式编程配置器件5.2.4 JTAG间接模式编程配置器件5.2.5 USBBlaster编程配置器件使用方法 __小结思考题和习题第6章 VHDL应用实例6.1 组合逻辑电路设计6.1.1 基本门电路设计6.1.2 译码器设计6.1.3 数据选择器设计6.1.4 三态门设计6.1.5 编码器设计6.1.6 数值比较器设计6.2 时序逻辑电路设计6.2.1 时钟信号和复位信号6.2.2 触发器设计6.2.3 寄存器和移位寄存器设计6.2.4 计数器设计6.2.5 存储器设计6.3 综合实例——数字秒表的设计__小结思考题和习题第7章状态机设计7.1 一般有限状态机7.1.1 数据类型定义语句7.1.2 为什么要使用状态机 7.1.3 一般有限状态机的设计 7.2 Moore型有限状态机设计 7.2.1 多进程有限状态机7.2.2 单进程有限状态机7.3 Mealy型有限状态机7.4 状态编码7.4.1 状态位直接输出型编码 7.4.2 顺序编码7.4.3 一位热码编码7.5 状态机处理__小结思考题和习题第8章 EDlA实验开发系统8.1 GW48型实验开发系统原理与应用8.1.1 系统性能及使用注意事项8.1.2 GW48系统主板结构与使用方法8.2 实验电路结构图8.2.1 实验电路信号资源符号图说明8.2.2 各实验电路结构图特点与适用范围简述8.3 GW48CK/GK/EK/PK2系统信号名与芯片引脚对照表 __小结思考题和习题第9章 EnA技术实验实验一:全加器的设计实验二:4位加减法器的设计实验三:基本D触发器的设计实验四:同步清零计数器的设计实验五:基本移位寄存器的设计串人/串出移位寄存器实验六:同步预置数串行输出移位寄存器的设计实验七:半整数分频器的设计实验八:音乐发生器的设计实验九:交通灯控制器的设计实验十:数字时钟的设计EDA技术与VHDL第二版(潘松著):内容简介《EDA技术与VHDL》主要内容有Altera公司可编程器件及器件的选用、QuartusⅡ开发工具的使用;VHDL硬件描述语言及丰富的数字电路和电子数字系统EDA设计实例。

EDA技术与Verilog_HDL(潘松)第6章习题答案

EDA技术与Verilog_HDL(潘松)第6章习题答案

6-1 在Verilog设计中,给时序电路清零(复位)有两种不同方法,它们是什么,如何实现?答:同步清零、异步清零,在过程语句敏感信号表中的逻辑表述posedge CLK用于指明正向跳变,或negedge用于指明负向跳变实现6-2 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的Verilog 描述。

答:异步复位必须将复位信号放在敏感信号表中。

同步清零:always @(posedge CLK) //CLK上升沿启动Q<=D; //当CLK有升沿时D被锁入Q异步清零:always @(posedge CLK or negedge RST) begin //块开始if(!RST)Q<=0; //如果RST=0条件成立,Q被清0else if(EN) Q<=D;//在CLK上升沿处,EN=1,则执行赋值语句end//块结束6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。

module Statistics8(sum,A); output[3:0]sum;input[7:0] A;reg[3:0] sum;integer i;always @(A)beginsum=0;for(i=0;i<=8;i=i+1) //for 语句if(A[i]) sum=sum+1;else sum=sum;endendmodule module Statistics8(sum,A); parameter S=4;output[3:0]sum;input[7:0] A;reg[3:0] sum;reg[2*S:1]TA;integer i;always @(A)beginTA=A; sum=0;repeat(2*S)beginif(TA[1])sum=sum+1;TA=TA>>1;endendendmodulerepeat循环语句for循环语句module Statistics8(sum,A);parameter S=8;output[3:0]sum;input[7:0] A;reg[S:1] AT;reg[3:0] sum;reg[S:0] CT;always @(A) beginAT={{S{1'b0}},A}; sum=0; CT=S;while(CT>0) beginif(AT[1])sum=sum+1;else sum=sum;begin CT= CT-1; AT=AT>>1; end end endendmodule6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。

《EDA技术与Verilog HDL》PPT第3版 第4章 FPGA硬件实现

《EDA技术与Verilog HDL》PPT第3版 第4章 FPGA硬件实现
实验4-4 应用宏模块设计数字频率计
图4-59 测频时序控制电路
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-60 测频时序控制电路工作波形
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-61 频率计顶层电路原理图
实验与设计
实验4-4 应用宏模块设计数字频率计
图4-62 频率计工作时序波形
4.8 安装Quartus II 13.1说明
图4-45 安装QuartusII 13.1设计文件界面,点击右侧安装按钮
4.8 安装Quartus II 13.1说明
图4-46 设定QuartusII 13.1设计文件安装路径
4.8 安装Quartus II 13.1说明
图4-47 选择安装软件。注意不要漏了ModelSim-Altera Starter Edition
图4-3 利用New Project Wizard创建工程CNT10 ⑵ 将设计文件加入工程中。
4.1 代码编辑输入和系统编译
4.1.2 创建工程 ⑶ 选择目标芯片。
图4-4 选择目标器件EP4CE55F23C8
4.1 代码编辑输入和系统编译
4.1.2 创建工程 ⑷ 工具设置。
图4-5 设计与验证工具软件选择
(3)原理图文件存盘。
图4-30 完成设计并将半加器封装成一个元件,以便在更高层设计中调用
4.4 电路原理图设计流程
4.4.1 设计一个半加器
(4)创建原理图文件为顶层设计的工程。
(5)绘制半加器原理图。
(6)仿真测试半加器。
4.4 电路原理图设计流程
4.4.2 完成全加器顶层设计
图4-31 在f_adder工程下加入半加器原件

eda技术实用教程 教学配套课件 潘松, 黄继业 第4章_vhdl设计初步

eda技术实用教程 教学配套课件 潘松, 黄继业 第4章_vhdl设计初步
【例4-11】 ... PROCESS (CLK)
BEGIN IF CLK'EVENT AND (CLK='1') AND (CLK'LAST_VALUE='0')
THEN Q <= D ; --确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ;
K 康芯科技 X
4.2 寄存器描述及其VHDL语言现象
BEGIN PROCESS (a,b,s)
BEGIN IF s = '0' THEN y <= a ; ELSE
y <= b ; END IF;
END PROCESS; END ARCHITECTURE one ;
K 康芯科技 X
4.1 多路选择器VHDL描述
4.1.1 2选1多路选择器的VHDL描述
... p_namei : port_mi data_type ); END ENTITY e_name;
K 康芯科技 X
4.1 多路选择器VHDL描述
4.1.2 VHDL相关语法说明 2. 实体名 3. PORT语句和端口信号名
4. 端口模式
“IN”、“OUT”、“INOUT”、“BUFFER”
END ;
K 康芯科技 X
K 康芯科技 X
4.2 寄存器描述及其VHDL语言现象
K 康芯科技 X
4.1 多路选择器VHDL描述
4.1.1 2选1多路选择器的VHDL描述
【例4-4】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT );
END ENTITY mux21a; ARCHITECTURE one OF mux21a IS

EDA技术与Verilog设计第六章课后习题部分答案

EDA技术与Verilog设计第六章课后习题部分答案



else case(in) 3'd0: out=8'b11111110; 3'd1: out=8'b11111101; 3'd2: out=8'b11111011; 3'd3: out=8'b11110111; 3'd4: out=8'b11101111; 3'd5: out=8'b11011111; 3'd6: out=8'b10111111; 3'd7: out=8'b01111111; endcase end
6-11仿真波形
8A-原码表示的十进制数-10 B6-原码表示的十进制数-54 80-原码表示的十进制数128 0A----十进制数10 36-----十进制数53
6-12
6-12 编写两个四位二进制数相减的verilog程序


module wytest(opr1,opr2,out_data); //完成Opr1-opr2的运算 input[3:0] opr1,opr2; output[4:0] out_data; reg[3:0] out; reg cout; function[3:0] abs; input[3:0] data; case(data[3]) 1'b0:abs=data; 1'b1:abs=(~data)+1; //对负数求绝对值,按位取反再加1 endcase endfunction
6-13
仿真波形
6-13

module wytest(bcd_in,out); //习题6-13 input[3:0] bcd_in; output out; //assign out=(bcd_in>4)?1:0;

EDA技术与VerilogHDL潘松第四章与第六章课后习题答案(共27张PPT)


endmodule
习题
4-8 给出一个4选1多路选择器的Verilog描述。此器件与图4-1类似,但选通控制端有4个输入:S0、S1、 S2、S3。当且仅当S0=0时:Y=A;S1=0时:Y=B;S2=0时:Y=C;S3=0时:Y=D。
module MUX41a (A,B,C,D,S0,S1,S2,S3,Y);
module MUXK (a1, a2, a3, s0, s1, outy);
input a1, a2, a3, s0, s1;
output outy;
wire outy;
wire tmp;
mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp));
mux21a u2 (.a (a1),.b (tmp),.s(s1),.y(outy));
else if (A==3'b100)Y=8'b11101111;
else if (A==3'b101)Y=8'b11011111;
else if (A==3'b110)Y=8'b10111111;
else if (A==3'b111)Y=8'b01111111;
else
Y=8'bxxxxxxxx;end
00
0
0
01
1
1
10
1
0
11
0
0
x为被减数, x y sub_in diffr sub_out
y为减数,
00
0
0
0
sub_in为低
00
1
1
1
位的借位,
diffr为差, 0 1

EDA技术实用教程课后答案潘松版

----------------------- Page 1----------------------- 第一章1-1EDA技术与ASIC设计和FPGA开发有什么关系? P3~4答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。

FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。

FPGA 和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。

1-2与软件描述语言相比,VHDL有什么特点? P6答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU 而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。

综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。

综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。

l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

有哪些类型? 答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。

(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。

(3)从RTL 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。

(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。

《EDA技术与VHDL基础》课后习题答案

《EDA技术与VHDL基础》课后习题答案第一章EDA技术概述一、填空题1、电子设计自动化2、非常高速集成芯片硬件描述语言3、CAD、CAE、EDA4、原理图输入、状态图输入、文本输入5、VHDL、Verilog HDL6、硬件特性二、选择题1、A2、C3、A4、D5、C6、D7、A第二章可编程逻辑器件基础一、填空题1、PLD2、Altera公司、Xilinx公司、Lattice公司3、基于反熔丝编程的FPGA4、配置芯片二、选择题1、D2、C3、C4、D第三章VHDL程序初步——程序结构一、填空题1、结构、行为、功能、接口2、库和程序包、实体、结构体、配置3、实体名、类型表、端口表、实体说明部分4、结构体说明语句、功能语句5、端口的大小、实体中子元件的数目、实体的定时特性6、设计库7、元件、函数8、进程PROCESS、过程PROCEDURE9、顺序语句、并行语句二、选择题1、D2、C3、C4、B5、D6、B7、A8、C三、简答题2、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY nand_3in ISPORT(a,b,c:IN STD_LOGIC;y:OUT STD_LOGIC);END;ARCHITECTURE bhv OF nand_3in ISBEGINy<=NOT(a AND b AND c);END bhv;5、00006、11110111(247)第四章VHDL基础一、填空题1、顺序语句、并行语句2、跳出本次循环3、等待、信号发生变化时4、函数、过程5、值类属性、函数类属性、信号类属性、数据类型类属性、数据范围类属性6、程序调试、时序仿真7、子程序、子程序二、选择题1、B2、A3、A4、C5、B6、C7、D三、判断题1、√2、√3、√4、√5、×6、×四、简答题9、修改正确如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count ISPORT(clk:IN BIT;q:OUT BIT_VECTOR(7 DOWNTO 0)); END count;ARCHITECTURE a OF count ISBEGINPROCESS(clk)IF clk'EVENT AND clk='1' THENq<=q+1;END PROCESS;END a;10、修改正确如下所示:…SIGNAL invalue:IN INTEGER RANGE 0 TO 15; SIGNAL outvalue:OUT STD_LOGIC;…CASE invalue ISWHEN 0=>outvalue<='1';WHEN 1=>outvalue<='0';WHEN OTHERS=>NULL;END CASE;…11、修改正确如下所示:ARCHITECTURE bhv OF com1 ISBEGINSIGNAL a,b,c:STD_LOGIC;pro1:PROCESS(clk)BEGINIF NOT (clk'EVENT AND clk='1') THENx<=a XOR b OR c;END IF;END PROCESS;END;12、(1) PROCESS(…) --本题中两条IF语句均为信号c进行可能赋值,VHDL语言不允许IF a=b THENc<=d;END IF;IF a=4 THENc<=d+1;END IF;END PROCESS;(2)ARCHITECTURE behave OF mux IS --同时为q进行多次可能赋值,VHDL语言不允许BEGINq<=i0 WHEN a='0' AND b='0' ELSE '0'; --WHEN ELSE语句语法错误q<=i1 WHEN a='0' AND b='1' ELSE '0';q<=i2 WHEN a='1' AND b='0' ELSE '0';q<=i3 WHEN a='1' AND b='1' ELSE '0';END behave;13、next1<=1101 WHEN (a='0' AND b='0') ELSEd WHEN a='0' ELSEc WHEN b='1' ELSE1011;15、(1)、STD_LOGIC_UNSIGNED(2)、GENERIC(3)、IN(4)、width-1(7)(5)、counter_n(6)、“00000000”(7)、clk’EVENT AND clk=’1’(8)、ELSIF(9)、END IF(10)、q<= count16、修改正确如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT10 ISPORT ( clk: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CNT10;ARCHITECTURE bhv OF CNT10 ISSIGNAL q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (clk)BEGINIF RISING_EDGE(clk) begin –begin修改为THENIF q1 < 9 THEN --q1为STD_LOGIC数据类型,而9为整型不可直接比较q1 <= q1 + 1; -- q1为STD_LOGIC数据类型,而1为整型不可直接相加ELSEq1 <= (OTHERS => '0');END IF;END IF;END PROCESS;q <= q1;END bhv;17、使用IF语句实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT(ain,bin,sel:IN STD_LOGIC_VECTOR(1 DOWNTO 0);cout:OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END;ARCHITECTURE bhv OF mux21 ISSIGNAL cout_tmp:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(ain,bin,sel)BEGINIF (sel="00") THEN cout_tmp<=ain OR bin;ELSIF (sel="01") THEN cout_tmp<=ain XOR bin;ELSIF (sel="10") THEN cout_tmp<=ain AND bin;ELSE cout_tmp<=ain NOR bin;END IF;END PROCESS;cout<=cout_tmp;END bhv;第五章QuartusⅡ集成开发软件初步一、填空题1、实体名2、FPGA、CPLD3、.vhd4、输入、综合、适配、仿真、下载5、RTL Viewer、Technology Map Viewer6、功能、参数含义、使用方法、硬件描述语言、模块参数设置7、mif、hex8、根目录二、选择题1、C2、D第七章有限状态机设计一、设计题1、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ztj ISPORT(clk,reset:IN STD_LOGIC;in_a:IN STD_LOGIC_VECTOR(1 DOWNTO 0);out_a:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用枚举类型定义状态,简单直观SIGNAL current_state,next_state:state; --定义存储现态和次态的信号BEGINp1:PROCESS(clk) --状态更新进程BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN current_state<=s0;ELSE current_state<=next_state;END IF;END IF;END PROCESS;p2:PROCESS(current_state,in_a) --次态产生进程BEGINCASE current_state ISWHEN s0=>IF in_a/=”00” THEN next_state<=s1;ELSE next_state<=s0;END IF;WHEN s1=>IF in_a=/'”01” THEN next_state<=s2;ELSE next_state<=s1;END IF;WHEN s2=>IF in_a=”11” THEN next_state<=s0ELSE next_state<=s3;END IF;WHEN s3=>IF in_a/='11' THEN next_state<=s0;ELSE next_state<=s3;END IF;WHEN OTHERS=>NULL;END CASE;END PROCESS;p3:PROCESS(current_state)BEGINCASE current_state ISWHEN s0=>out_a<='”0101”;WHEN s1=>out_a<=”1000”;WHEN s2=>out_a<=”1100”;WHEN s3=>out_a<=”1101”;WHEN OTHERS=>NULL;END CASE;END PROCESS;END;2、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ztj ISPORT(clk,reset:IN STD_LOGIC;ina:IN STD_LOGIC_VECTOR(2 DOWNTO 0);outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用枚举类型定义状态,简单直观SIGNAL current_state,next_state:state;BEGINp1:PROCESS(clk) --状态更新进程BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN current_state<=s0;ELSE current_state<=next_state;END IF;END IF;END PROCESS;p2:PROCESS(current_state,ina)BEGINCASE current_state ISWHEN s0=> IF ina =”101” THEN outa<=”0010”;ELSIF ina=”111” THEN outa <=”1100”;END IF;IF ina =”000” THEN next_state<=s1;ELSE next_state<=s0;END IF;WHEN s1=> outa<=”1001”;IF ina =”110” THEN next_state<=s2;ELSE next_state<=s1;END IF;WHEN s2=> outa<=”1111”;IF ina =”011” THEN next_stat e<=s1;ELSIF ina =”100” THEN next_state<=s2;ELSE next_state<=s3;END IF;WHEN s3=> IF ina =”101” THEN outa<=”1101”;ELSIF ina=”011” THEN outa <=”1100”;END IF;IF ina =”010” THEN next_state<=s0;ELSE next_state<=s1;END IF;WHEN OTHERS=>NULL;END CASE;END PROCESS;END;3、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ztj ISPORT(clk,reset:IN STD_LOGIC;ina:IN STD_LOGIC_VECTOR(1 DOWNTO 0);outa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END;ARCHITECTURE bhv OF ztj ISTYPE state IS(s0,s1,s2,s3); --用枚举类型定义状态,简单直观SIGNAL state:istate;BEGINp1:PROCESS(clk)BEGINIF clk'EVENT AND clk='1' THENIF reset='1' THEN state<=s0;result<='0';ELSECASE state ISWHEN s0=>outa<=”0000”;IF ina=”00” THEN state<=s1;ELSE state<=s0;END IF;WHEN s1=> outa <=”0001”;IF ina=”01” THEN state<=s2;ELSE state<=s1;END IF;WHEN s2=> outa <=”1100”;IF ina=”11” THEN state<=s3;ELSE state<=s0;END IF;WHEN s3=> outa <=”1111”;IF ina=”00” THEN state<=s0;ELSE state<=s3;END IF;WHEN OTHERS=>NULL;END CASE;END IF;END IF;END PROCESS;END;第九章VHDL基本逻辑电路设计一、填空题1、输入信号、所处状态2、组合逻辑、时序逻辑3、触发器、14、D触发器、RS触发器、JK触发器、T触发器二、选择题1、A2、C。

EDA技术实用教程习题答案——潘松_黄继业

EDA技术实用教程潘松黄继业第一章1-1 EDA技术与ASIC设计和FPGA开发有什么关系?答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。

FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。

FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。

1-2与软件描述语言相比,VHDL有什么特点?答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。

综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。

综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。

l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么?什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。

(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。

(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。

(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。

综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020/12/2
4
习题
4-3 阻塞赋值和非阻塞赋值有何区别? 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。
Verilog中,用普通等号“<=”作为非阻塞式赋值语句的赋值符号,如y<=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻
获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞 了一样。
释为,对于不满足条件,跳过赋值语句Q<=D不予执行,即意味着保持Q的原值
不变(保持前一次满足if条件时Q被更新的值)。对于数字电路来说,当输入改变后
试图保持一个值不变,就意味着使用具有存储功能的元件,就是必须引进时序元
件来保存Q中的原值,直到满足if语句的判断条件后才能更新Q中的值,于是便产
生了时序元件。
wire [2:0] A ;
output [7:0] Y ;
reg [7:0] Y ;
reg s;
always @ ( A ,G1, G2, G3)
begin
s <= G2 | G3 ;
if (G1 == 0)
Y <= 8'b1111_1111;
else if (s)
Y <= 8'b1111_1111;
时也能启动过程,但由于CLK=0,无法执行if语句,从而也就无法执行赋值语句
Q<=D,导致Q只能保持原值(这也意味着需要在设计模块中引入存储元件)。
在以上两种情况中,由于if语句不满足条件,于是将跳过赋值表达式Q<=D,
不执行此赋值表达式而结束if语句和过程.对于这种语言现象,Velilog综合器解
else
case ( A )
3'b000: Y = 8'b11111110;
3'b001: Y = 8'b11111101;
3'b010: Y = 8'b11111011;
3'b011: Y = 8'b11110111;
3'b100: Y = 8'b11101111;
3'b101: Y = 8'b11011111;
3'b110: Y = 8'b10111111;
3'b111: Y = 8'b01111111;
default:Y = 8'bxxxxxxxx;
endcase
2020/12/2 end
8
endmodule
4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种
非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非 阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一 律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都 可以并行运行。
2020/12/2
5
4-4 举例说明,为什么使用条件叙述不完整的条件句能导致产生时序模块的综合结果?
方式。
module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 );
input G1, G2, G3;
wire G1, G2, G3;
input [2:0] A ;
wire [2:0] A ;
output [7:0] Y ;
reg [7:0] Y ;
reg s;
always @ ( A ,G1, G2, G3)
module LATCH1 (CLK, D, Q);
output Q;
input CLK, D;
reg Q;
always @(D or CLK)
if(CLK)Q<=D;
//当CLK=1时D被锁入Q
2020/12/2
endmodule
6
4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比 较这两种方式。
第4章 Verilog HDL设计初步
2020/12/2
1
习题
4-1 举例说明,Verilog HDL的操作符中,哪些操作符的运算结果总是一位的。 答: P74/74/80/92
Hale Waihona Puke 4-2 wire型变量与reg型变量有什么本质区别,它们可用于什么类型语句中? 答:书上P261~262《9.2 Verilog HDL数据类型》 reg主要是用于定义特定类型的变量,即寄存器型(Register)变量(或称寄存器型数据类的 变量)。如果没有在模块中显式地定义信号为网线型变量,Verilog综合器都会将其默认定 义为wire型。过程语句always@引导的顺序语句中规定必须是reg型变量。 wire型变量不允许有多个驱动源
2020/12/2
7
4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比较这两种
方式。
module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 );
input G1, G2, G3;
wire G1, G2, G3;
input [2:0] A ;
答:● 当CLK发生了电平变化,但是从1变到0。这时无论D是否变化,都将启动
过程去执行if语句;但此时CLK=0,无法执行if语句,从而无法执行赋值语句
Q<=D,于是Q只能保持原值不变(这就意味着需要在设计模块中引入存储元件)。
● 当CLK没有发生任何变化,且CLK一直为0,而敏感信号D发生了变化。这
begin
s <= G2 | G3 ;
if (G1 == 0)
Y <= 8'b1111_1111;
else if (s)
Y <= 8'b1111_1111;
else begin if (A==3'b000)Y=8'b11111110;
else if (A==3'b001)Y=8'b11111101;
else if (A==3'b010)Y=8'b11111011;
else if (A==3'b011)Y=8'b11110111;
else if (A==3'b100)Y=8'b11101111;
2020/12/2
2
精品资料
• 你怎么称呼老师?
• 如果老师最后没有总结一节课的重点的难点,你 是否会认为老师的教学方法需要改进?
• 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭
• “不怕太阳晒,也不怕那风雨狂,只怕先生骂我 笨,没有学问无颜见爹娘 ……”
• “太阳当空照,花儿对我笑,小鸟说早早早……”
相关文档
最新文档