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

合集下载

EDA技术实用教程课(潘松)后答案解答

EDA技术实用教程课(潘松)后答案解答

《EDA技术实用教程》部分习题解答习题四习题4-5 列表详细说明MAX+plusII 中prim.mf 和mega_lpm 库中的内容和用法。

答:prim:基本的元件mf:主要是74 系列芯片的逻辑元件mega_lpm:参数可定制的复杂逻辑元件⊕习题4-7 用74139 组成一个5-24 线译码器。

解:共使用 3 片74139 作6 个2-4 译码图习题4-8 用74283 加法器和逻辑门设计实现一位8421BCD 码加法器电路,输入输出均是BCD 码,CI 为低位的进位信号,CO 为高位的进位信号,输入为两个 1 位十进制数A,输出用S 表示。

解:如果二进制的和大于9,需要再加上 6 来补成BCD 码2第 1 章概述图习题4-9 设计一个7 人表决电路,参加表决者7 人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。

解:方法有多种,仅举一例。

有多个 1 位全加器构成。

图其中 1 位全加器的原理图如下:图 1 位全加器第 1 章 概述3习题 4-10 使用 prim 和 mf 库中的元件设计一个周期性产生二进制序列 010******** 的序列发生器,用移 位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。

解:给出一种解法习题 4-11 用 D 触发器设计 3 位二进制加法计数器。

解:注意 D 触发器级联时应取非端,否则只能作分频器下图是异步计数器方式,同步计数器方式请读者自行考虑习题 4-12 用 D 触发器构成按循环码(000->001->011->111->101->100->000)规律工作的六进制同步计数器。

解:用同步计数器来实现。

(事实上要求设计的是一个袼雷码计数器) 考虑不同状态时,对应的 DFF 输入端的值:4 D 0 =Q 第 1 章 概述Q 2 + Q 2 1 Q D 1 = Q 2 0 = D 2 Q Q2Q 0 + Q 2 14-13 应用 4 位全加器和 74374 构成 4 位二进制加法计数器。

EDA潘松课后答案

EDA潘松课后答案

第一章1-1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系?答:利用 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 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

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

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

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

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

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

EDA技术与Verilog设计第六章课后习题部分答案
endmodule
6-15
6-16
设计一个74161的电路。
6-16
注意:异步清零、同步置位
CO= Q3 Q2 Q1 Q0 CTT
6-16



module wytest(reset,load,ctt,ctp,clk,data_in,out,co);//习题6-16 input reset,load,ctt,ctp,clk; input[3:0] data_in; output[3:0] out; output co; reg[3:0] out; reg co; always@(posedge clk or negedge reset) if(!reset) begin out<=4'b0; co<=1'b0; end else if(!load) out<=data_in; else if(!ctt) out<=out; else if(!ctp) out<=out;
always@(posedge clk) begin firsta[3:0]<=a[7:4]; seconda[3:0]<=a[3:0]; firstb[3:0]<=b[7:4]; secondb[3:0]<=b[3:0]; end
mul4x4 m1(outa, firsta,firstb,clk), m2(outb, seconda,firstb,clk), m3(outc, firsta,secondb,clk), m4(outd,seconda,secondb,clk);
6-13
6-14
试编写一个实现3输入与非门的verilog程序;
module
wytest(a,o); a;

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技术实用教程习题答案——潘松_黄继业

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)。

EDA课后题答案

EDA课后题答案

第一章1.什么叫EDA技术?及狭义定义(书P1)Electronic Design Automation--电子设计自动化。

EDA的广义定义范围包括:半导体工艺设计自动化、可编程器件设计自动化、电子系统设计自动化、印刷电路板设计自动化、仿真与测试、故障诊断自动化、形式验证自动化统称EDA工程。

2.EDA发展历程:CAD- CAE -EDA3 .EDA技术的主要内容实现载体(硬件基础):大规模可编程逻辑器件(PLD_Programmable Logic Device)描述方式:硬件描述语言(HDL_Hard descripation Lauguage,VHDL,Verilog HDL等)设计工具:开发软件、开发系统硬件验证:实验开发系统FPGA 在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/输出单元和可编程连线三个部分。

CPLD在结构上主要包括三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线。

4.硬件描述语言(HDL_Hardware Description Language)VHDL:IEEE标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。

系统级抽象描述能力较强。

Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL 稍简单,门级开关电路描述能级较强,但其在高级描述方面不如VHDL。

ABEL:一种支持各种不同输入方式的HDL,系统级抽象描述能力差,适应于门级电路描述。

5. 仿真工具功能仿真(也叫前仿真、系统级仿真、行为仿真)验证系统的功能。

时序仿真(也叫后仿真、电路级仿真):验证系统的时序特性、系统性能。

6. EDA的工程设计流程(P8)第二章1.在系统可编程技术(ISP)定义ISP(In_System Programmability/Programming)是指对器件、电路板、整个电子系统进行逻辑重构和修改功能的能力。

EDA技术实用教程习题答案--潘

EDA技术实用教程习题答案--潘

《EDA技术实用教程(第五版)》习题1 习题1-1EDA技术与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级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。

EDA 第六章习题答案

EDA 第六章习题答案

P6.1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity chp6_1 isport(clk:in std_logic;d_out:out std_logic_vector(5 downto 0)); end;architecture bhv of chp6_1 issignal count: std_logic_vector(5 downto 0); signal temp: std_logic_vector(5 downto 0); beginprocess(clk)beginif clk'event and clk='1' thencount<= count+1;if count="100000" then count<="000000";end if;end if;end process;process(clk)beginif clk'event and clk='0' thentemp<=temp+1;if temp="0111111" then temp<="000000"; end if;end if;end process;d_out<=count+temp;end;P6.2library ieee;use ieee.std_logic_1164.all;entity chap6_2 isport(clk,rst, d: in std_logic;q:out std_logic);end;architecture bhv of chap6_2 issignal a,b,c: std_logic;beginprocess(clk,rst)beginif rst='1' then q<='0';elsif clk='1' and clk'event thena<=d; b<=a; c<=b; q<=c;end if;end process;end;P6.3solution1library ieee;use ieee.std_logic_1164.all;entity chp6_3 isport(x:in std_Logic_vector(7 downto 1);y:out std_logic_vector(2 downto 0)); end;architecture bhv of chp6_3 isbeginprocess(x)beginif x(7)='1' then y<="111";elsif x(6)='1' then y<="110";elsif x(5)='1' then y<="101";elsif x(4)='1' then y<="100";elsif x(3)='1' then y<="011";elsif x(2)='1' then y<="010";elsif x(1)='1' then y<="001";else y<="000";end if;end process;end;solution2library ieee;use ieee.std_logic_1164.all;entity chp6_3_2 isgeneric(n:integer:=3);port(x:in std_logic_vector(2**n-1 downto 0);y:out integer range 0 to 2**n-1); end;architecture bhv of chp6_3_2 isbeginprocess(x)variable temp:integer range 0 to 2**n-1; beginfor i in x'range loopif x(i)='1' thentemp:=i;exit;end if;end loop;y<=temp;end process;end;P6.4library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity chap6_4 isgeneric (n:integer :=5);port(clk : in std_logic;rst : in std_logic;clkout :out std_logic);end ;architecture rtl of chap6_4 issignal clk_p : std_logic;signal clk_n : std_logic;signal cnt_p : integer range 0 to n;signal cnt_n : integer range 0 to n;beginprocess(clk_p, clk_n)beginif((n mod 2) = 0)thenclkout <= clk_p;elseclkout <= clk_p or clk_n;end if;end process;process(clk, rst)beginif(rst = '0') thencnt_p <= 0;elsif(clk'event and clk = '1') thenif(cnt_p = n-1) thencnt_p <= 0;elsecnt_p <= cnt_p + 1;end if;end if;end process;process(clk, rst)beginif(rst = '0') thenclk_p <= '0';elsif(clk'event and clk = '1')thenif (cnt_p < (n/2)) thenclk_p <= '1';elseclk_p <= '0';end if ;end if;end process;process(clk, rst)beginif(rst = '0') thencnt_n <= 0;elsif(clk'event and clk = '0')thenif(cnt_n = n-1) thencnt_n <= 0;elsecnt_n <= cnt_n + 1;end if;end if;end process;process(clk, rst)beginif(rst = '0') thenclk_n <= '0';elsif(clk'event and clk = '0')thenif (cnt_n < (n/2)) thenclk_n <= '1';elseclk_n <= '0';end if ;end if;end process;end rtl;P6.6library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity chp6_6 isport(clk,start,stop,reset:in std_logic;dig1,dig2,dig3:out std_logic_vector(3 downto 0)); end;architecture bhv of chp6_6 issignal sec1:integer range 0 to 10;signal sec2:integer range 0 to 6;signal min:integer range 0 to 10;beginprocess(clk,start, stop,reset)variable count1:integer range 0 to 10;variable count2:integer range 0 to 6;variable count3:integer range 0 to 10;beginif reset='1' thencount1:=0;count2:=0;count3:=0;elsif clk'event and clk='1' thenif start='1' and stop='0' thencount1:=count1+1;if count1=10 thencount1:=0;count2:=count2+1;if count2=6 thencount2:=0;count3:=count3+1;if count3=10 thencount3:=0;end if;end if;end if;end if;end if;sec1<=count1;sec2<=count2;min<=count3;end process;dig1<=conv_std_logic_vector(sec1,4);dig2<=conv_std_logic_vector(sec2,4);dig3<=conv_std_logic_vector(min,4);end;P6.8use ieee.std_logic_1164.all;entity chp6_8 isgeneric(n:integer:=8);port(input:in std_logic_vector(n-1 downto 0);output:out std_logic);end;architecture bhv of chp6_8 isbeginprocess(input)variable temp:std_logic_vector(n-1 downto 0); begintemp(0):=input(0);for i in 1 to n-1 looptemp(i):=input(i) xor temp(i-1);end loop;output<=temp(n-1);end process;end;P6.9library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity chp6_9 isgeneric(n:integer:=4);port(input:std_logic_vector(n-1 downto 0);output:out integer range 0 to n);end;architecture bhv of chp6_9 isbeginprocess(input)variable temp:integer range 0 to n;begintemp:=0;for i in 0 to n-1 loopif input(i)='1' thentemp:=temp+1;end if;end loop;output<=temp;end process;end;P6.10use ieee.std_logic_1164.all;entity chp6_10 isgeneric(n:integer :=8);port(din:in integer range 0 to n-1;dout:out std_logic_vector(n-1 downto 0)); end;architecture bhv of chp6_10 isbeginprocess(din)beginfor i in 0 to n-1 loopif din=i then dout<=(i=>'1', others=>'0');end if;end loop;end process;end;P6.11library ieee;use ieee.std_logic_1164.all;package my_data_type isconstant m: integer :=8;type vector_array is array (natural range<>) ofstd_logic_vector(m-1 downto 0);end my_data_type;library ieee;use ieee.std_logic_1164.all;use work.my_data_type.all;entity chap6_11 isgeneric (n: integer :=8);port( datain: in vector_array(0 to n-1) ;sel: in integer range 0 to n-1;dataout: out std_logic_vector( m-1 downto 0)); end;architecture bhv of chap6_11 isbeginprocess(datain,sel)begindataout<=datain(sel);end process;end;P6.16use ieee.std_logic_1164.all;entity chp6_16 isgeneric (n:integer:=8);port(a,b:in std_logic_vector(n-1 downto 0);cin:in std_logic;s:out std_logic_vector(n-1 downto 0);cout:out std_logic);end;architecture bhv of chp6_16 issignal carry:std_logic_vector(n downto 0);beginprocess(a,b,cin,carry)begincarry(0)<=cin;for i in 0 to n-1 loops(i)<=a(i) xor b(i) xor carry(i);carry(i+1)<=(a(i) and b(i)) or (a(i) and carry(i)) or (b(i) and carry(i));end loop;cout<=carry(n);end process;end;说明:本次答案均为课上讨论过的,P6.11-P6.15均可参考第五章答案,可以利用对应语句将其放入进程中。

Verilog HDL数字设计与综合(第二版) 第六章课后习题答案

Verilog HDL数字设计与综合(第二版) 第六章课后习题答案

1.一个全减器具有三个一位输入:x,y和z(前面的借位),两个一位输出D(差)和B(借位)。

计算D和B的逻辑等式如下所示:D = x’⋅ y’⋅ z’ + x’⋅ y ⋅ z’ + x ⋅ y’⋅ z’ + x ⋅ y ⋅ zB = x’⋅ y + x’⋅ z + y ⋅ z根据上面的定义写出Verilog描述,包括I/O端口(注意:逻辑等式中的+对应于数据流建模中的逻辑或(| |)操作符)。

编写激励块,在模块中实例引用全减器。

对x,y和z这三个输入的8种组合及其对应的输出进行测试。

x y z B D0 0 0 0 00 0 1 1 10 1 0 1 10 1 1 1 01 0 0 0 11 0 1 0 01 1 0 0 01 1 1 1 1答:代码及测试激励如下:(D 应该= x’⋅y’⋅z + x’⋅ y ⋅z’ + x ⋅y’⋅z’ + x ⋅ y ⋅ z)`timescale 1ns/1nsmodule full_sub(x,y,z,D,B);input x,y,z;output D,B;assign D=((!x)&(!y)&(z))||((!x)&y&(!z))||(x&(!y)&(!z))||(x&y&z);assign B=((!x)&y)||((!x)&z)||(y&z);endmodulemodule test61;reg x,y,z;wire D,B;Verilog HDL数字设计与综合(第二版)58initialbeginx<=0;y<=0;z<=0;#10 x<=0;y<=0;z<=1;#10 x<=0;y<=1;z<=0;#10 x<=0;y<=1;z<=1;#10 x<=1;y<=0;z<=0;#10 x<=1;y<=0;z<=1;#10 x<=1;y<=1;z<=0;#10 x<=1;y<=1;z<=1;#10 $stop;endfull_sub fsubtracter(x,y,z,D,B);initial$monitor($time,"x= %b,y= %b,z= %b,B= %b,D= %b",x,y,z,B,D);endmodule最终输出观测结果:# 0x= 0,y= 0,z= 0,B= 0,D= 0# 10x= 0,y= 0,z= 1,B= 1,D= 1# 20x= 0,y= 1,z= 0,B= 1,D= 1# 30x= 0,y= 1,z= 1,B= 1,D= 0# 40x= 1,y= 0,z= 0,B= 0,D= 1# 50x= 1,y= 0,z= 1,B= 0,D= 0# 60x= 1,y= 1,z= 0,B= 0,D= 0# 70x= 1,y= 1,z= 1,B= 1,D= 1第6章数据流建模592.大小比较器的功能是比较两个数之间的关系:大于、小于或等于。

EDA潘松课后答案

EDA潘松课后答案

第一章1- 1 EDA 技术与ASIC 设计和FPGA 开发有什么关系?答:利用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 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

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

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

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

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

2020年智慧树知道网课《EDA技术》课后章节测试满分答案

2020年智慧树知道网课《EDA技术》课后章节测试满分答案

绪论单元测试1【多选题】(10分)学习EDA技术这门课程的具体要求是()A.初步掌握基于FPGA的VLSI系统设计与实现的方法和技术,具备分析、解决实际问题的能力,具有较强的专业实践能力和创新能力。

B.较好地掌握应用EDA技术进行系统设计开发的方法,具备应用EDA技术进行综合性数字系统设计的初步能力,经过后续的综合应用实践,能够从事FPGA的设计与开发、SOPC的设计与开发以及ASIC的前端设计等工作。

C.掌握EDA技术的基本概念、基础知识;了解FPGA/CPLD的结构、工作原理、性能指标及应用选择;熟练掌握硬件描述语言VHDL的编程;熟练掌握EDA技术的开发软件及EDA实验开发系统的使用。

2【多选题】(10分)学习EDA技术这门课程,我们希望达到的学习目标是()A.基本掌握ASIC的后端设计与开发B.基本掌握ASIC的前端设计与开发C.掌握一种硬件描述语言VHDLD.基本掌握SOC的设计与开发方法E.基本掌握SOPC的设计与开发方法F.熟悉FPGA的设计与开发3【多选题】(10分)EDA技术课程的学习要点是()A.以课题为中心,以研究式教学为主要形式B.抓住一个重点(硬件描述语言编程)C.掌握两个工具(FPGA/CPLD开发软件、EDA实验开发系统的使用)D.运用四种手段(案例分析、应用设计、线上学习、上机实践)E.采用五个结合(边学边用相结合、边用边学相结合、理论与实践相结合、线上与线下相结合、课内与课外相结合)第一章测试1【单选题】(10分)EDA的中文含义是()A.计算机辅助工程设计B.计算机辅助设计C.电子设计自动化2【判断题】(10分)狭义的EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。

eda技术实用教程-veriloghdl答案

eda技术实用教程-veriloghdl答案

eda技术实用教程-veriloghdl答案【篇一:eda技术与vhdl程序开发基础教程课后答案】eda的英文全称是electronic design automation2.eda系统设计自动化eda阶段三个发展阶段3. eda技术的应用可概括为4.目前比较流行的主流厂家的eda软件有、5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有7.逻辑综合后生成的网表文件为 edif8.布局布线主要完成9.10.常用的第三方eda工具软件有synplify/synplify pro、leonardo spectrum1.8.2选择1.eda技术发展历程的正确描述为(a)a cad-cae-edab eda-cad-caec eda-cae-cadd cae-cad-eda2.altera的第四代eda集成开发环境为(c)a modelsimb mux+plus iic quartus iid ise3.下列eda工具中,支持状态图输入方式的是(b)a quartus iib isec ispdesignexpertd syplify pro4.下列几种仿真中考虑了物理模型参数的仿真是(a)a 时序仿真b 功能仿真c 行为仿真d 逻辑仿真5.下列描述eda工程设计流程正确的是(c)a输入-综合-布线-下载-仿真b布线-仿真-下载-输入-综合c输入-综合-布线-仿真-下载d输入-仿真-综合-布线-下载6.下列编程语言中不属于硬件描述语言的是(d)a vhdlb verilogc abeld php1.8.3问答1.结合本章学习的知识,简述什么是eda技术?谈谈自己对eda技术的认识?答:eda(electronic design automation)工程是现代电子信息工程领域中一门发展迅速的新技术。

2.简要介绍eda技术的发展历程?答:现代eda技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。

EDA技术与VHDL课后答案(第3版)潘松 黄继业

EDA技术与VHDL课后答案(第3版)潘松 黄继业
PORT ( CL, CLK0 : IN STD_LOGIC ;
OUT1 : OUT STD_LOGIC ) ;
END ENTITY circuit ;
ARCHITECTURE one OF circuit IS
COMPONENT DFF1 IS
PORT ( CLK : IN STD_LOGIC ;
END ENTITY nor ;
ARCHITECTURE one OF nor IS
BEGIN
f <= NOT ( d OR e ) ;
END ARCHITECTURE one ;
时序电路描述:
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY circuit IS
ENTITY mux21 IS
PORT ( s1,s0 : IN STD_LOGIC_VECTOR ;
a,b,c,d : IN STD_LOGIC ;
y : OUT STD_LOGIC ) ;
END ENTITY mux21 ;
ARCHITECTURE two OF mux21 IS
SIGNAL s : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ;
y : OUT STD_LOGIC ) ;
END ENTITY mux21 ;
ARCHITECTURE one OF mux21 IS
BEGIN
PROCESS ( s0,s1,a,b,c,d )
BEGIN
IF s1=’0’ AND s0=’0’ THEN y<=a ;
ELSIF s1=’0’ AND s0=’1’ THEN y<=b ;

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

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潘松课后答案

EDA潘松课后答案

第一章1-1 EDA 技术与 ASIC 设计和 FPGA 开发有什么关系?答:利用 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 什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。

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

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

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

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

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

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)。

EDA技术实用教程课(潘松)后答案解答

EDA技术实用教程课(潘松)后答案解答

《EDA技术实用教程》部分习题解答习题四习题4-5 列表详细说明MAX+plusII 中prim.mf 和mega_lpm 库中的内容和用法。

答:prim:基本的元件mf:主要是74 系列芯片的逻辑元件mega_lpm:参数可定制的复杂逻辑元件⊕习题4-7 用74139 组成一个5-24 线译码器。

解:共使用 3 片74139 作6 个2-4 译码图习题4-8 用74283 加法器和逻辑门设计实现一位8421BCD 码加法器电路,输入输出均是BCD 码,CI 为低位的进位信号,CO 为高位的进位信号,输入为两个 1 位十进制数A,输出用S 表示。

解:如果二进制的和大于9,需要再加上 6 来补成BCD 码2第 1 章概述图习题4-9 设计一个7 人表决电路,参加表决者7 人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。

解:方法有多种,仅举一例。

有多个 1 位全加器构成。

图其中 1 位全加器的原理图如下:图 1 位全加器第 1 章 概述3习题 4-10 使用 prim 和 mf 库中的元件设计一个周期性产生二进制序列 010******** 的序列发生器,用移 位寄存器或用同步时序电路实现,并用时序仿真器验证其功能。

解:给出一种解法习题 4-11 用 D 触发器设计 3 位二进制加法计数器。

解:注意 D 触发器级联时应取非端,否则只能作分频器下图是异步计数器方式,同步计数器方式请读者自行考虑习题 4-12 用 D 触发器构成按循环码(000->001->011->111->101->100->000)规律工作的六进制同步计数器。

解:用同步计数器来实现。

(事实上要求设计的是一个袼雷码计数器) 考虑不同状态时,对应的 DFF 输入端的值:4 D 0 =Q 第 1 章 概述Q 2 + Q 2 1 Q D 1 = Q 2 0 = D 2 Q Q2Q 0 + Q 2 14-13 应用 4 位全加器和 74374 构成 4 位二进制加法计数器。

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

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; else if (A==3'b101)Y=8'b11011111;
reg [2:0]A ;
wire[7:0]Y ; reg G1 ,G2 ,G3;
decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 );
initial begin $monitor($time,"A=%d,G1=%b,G2=%b, G3=%b,Y= %d\n",A, G1, G2, G3, Y); end
第4章
V举例说明,Verilog HDL的操作符中,哪些操作符的运算结果总是一位的。 答: P74/74/80/92
4-2 wire型变量与reg型变量有什么本质区别,它们可用于什么类型语句中? 答:书上P261~262《9.2 Verilog HDL数据类型》 reg主要是用于定义特定类型的变量,即寄存器型(Register)变量(或称寄存器型数据类的 变量)。如果没有在模块中显式地定义信号为网线型变量,Verilog综合器都会将其默认定 义为wire型。过程语句always@引导的顺序语句中规定必须是reg型变量。 wire型变量不允许有多个驱动源
【例4-21】含有异步清0同步时钟使能和同步数据加载功能的十进制计数器 module CNT10(CLK, RST, EN,LOAD,COUT,DOUT,DATA); input CLK, RST, EN,LOAD; //时钟,时钟使能,复位,数据加载控制信号输入口 input [3:0]DATA; //4位并行加载数据输入口 output [3:0] DOUT; //计数数据输出信号口 output COUT; //计数进位输出 reg COUT; reg[3:0] Q1; assign DOUT=Q1; //将内部寄存器的计数结果输出至DOUT always @(posedge CLK or negedge RST or negedge LOAD) //时序过程 begin if(!RST)Q1<=0; //RST=0时,对内部寄存器单元异步清0 else if(!LOAD)Q1<=DATA; //当LOAD=0,异步向内部寄存器加载数据 else if(EN)begin //同步使能EN=1,则允许加载或计数 if(Q1<9)Q1<=Q1+1; //当Q1小于9时,允许累加 else Q1<=4'b0000; //否则一个时钟后清0返回初值 end end always @(Q1) //组合电路之过程 if(Q1==4'h9)COUT=1'b1; //当Q1=1001时,COUT输出进位标志1 else COUT=1'b0; //否则,输出进位标志0 endmodule
4-5 用Verilog设计一个3-8译码器,要求分别用case语句和if_else语句。比 较这两种方式。
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 ; 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; 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 end endmodule
4-4 举例说明,为什么使用条件叙述不完整的条件句能导致产生时序模块的综合结果? 答:● 当CLK发生了电平变化,但是从1变到0。这时无论D是否变化,都将启动
过程去执行if语句;但此时CLK=0,无法执行if语句,从而无法执行赋值语句 Q<=D,于是Q只能保持原值不变(这就意味着需要在设计模块中引入存储元件)。 ● 当CLK没有发生任何变化,且CLK一直为0,而敏感信号D发生了变化。这 时也能启动过程,但由于CLK=0,无法执行if语句,从而也就无法执行赋值语句 Q<=D,导致Q只能保持原值(这也意味着需要在设计模块中引入存储元件)。 在以上两种情况中,由于if语句不满足条件,于是将跳过赋值表达式Q<=D, 不执行此赋值表达式而结束if语句和过程.对于这种语言现象,Velilog综合器解 释为,对于不满足条件,跳过赋值语句Q<=D不予执行,即意味着保持Q的原值 不变(保持前一次满足if条件时Q被更新的值)。对于数字电路来说,当输入改变后 试图保持一个值不变,就意味着使用具有存储功能的元件,就是必须引进时序元 件来保存Q中的原值,直到满足if语句的判断条件后才能更新Q中的值,于是便产 生了时序元件。 module LATCH1 (CLK, D, Q); output Q; input CLK, D; reg Q; always @(D or CLK) if(CLK)Q<=D; //当CLK=1时D被锁入Q endmodule


4-3 阻塞赋值和非阻塞赋值有何区别? 答:Verilog中,用普通等号“=”作为阻塞式赋值语句的赋值符号,如y=b。 Verilog中,用普通等号“<=”作为非阻塞式赋值语句的赋值符号,如y<=b。 阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻 获得来自等号右侧表达式的计算值。如果在一个块语句中含有多条阻塞式赋值 语句,则当执行到其中某条赋值语句时,其他语句将禁止执行,即如同被阻塞 了一样。 非阻塞式赋值的特点是必须在块语句执行结束时才整体完成赋值操作。非 阻塞的含义可以理解为在执行当前语句时,对于块中的其他语句的执行情况一 律不加限制,不加阻塞。这也可以理解为,在begin_end块中的所有赋值语句都 可以并行运行。
x 0 0 y 0 1 diff 0 1 s_out 0 1
0
1 1
1
0 0
1
0 1
0
1 0
1
0 0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
module f_suber(x,y,sub_in,diffr,sub_out); //一个二进制全减器顶层设计进行了阐述 output diffr,sub_out; input x,y,sub_in; wire e,d,f; h_suber u1(x,y,e,d); // h_suber u2(.x(e),.diff(diffr),.y(sub_in),.s_out(f));// or2a u3(.a(d),.b(f),.c(sub_out)); endmodule
图4-27
1位全减器


x为被减数, y为减数, sub_in为 低位的借 位, diff r为差,su b_out为向 高位的借 位。
x 0 0 0 y 0 0 1 sub_in diffr sub_out 0 1 0 0 1 1 0 1 1
//一个二进制半减器设计进行了阐述
module h_suber(x,y,diff,s_out); input x,y; output diff, s_out; assign diff=x^y; assign s_out=(~x)&y; endmodule

module MUXK (a1, a2, a3, s0, s1, outy); input a1, a2, a3, s0, s1; output outy; wire outy; wire tmp;

4-6 图4-26所示的是双2选1多路选择器构成的电路MUXK。对于其中MUX21A,当s=0 和s=1时,分别有y=a和y=b。试在一个模块结构中用两个过程来表达此电路。 答:参考实验1


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); output Y; //定义Y为输出信号 input A, B, C, D; input S0,S1,S2,S3; reg Y; //定义输出端口信号Y为寄存器型变量 always @(A,B,C,S0,S1,S2,S3 )begin //块语句起始 if (S0==0)Y=A; //当S0 ==0成立,即(S0 ==0)=1时,Y=A; else if (S1==0)Y=B; //当(S1 ==1)为真,则Y=B; else if (S2==0)Y=C; //当(S2 ==2)为真,则Y=C; else if (S3==0) Y=D; //当(S3 ==3)为真,即Y=D; end //块语句结束 endmodule
相关文档
最新文档