EDA课后作业
EDA 技术实用教程 课后作业答案
作业3-6module Mux3_1(a1,a2,a3,s0,s1,outy); input a1,a2,a3,s0,s1;output outy;reg outy;reg temp;always @(a2,a3,s0)beginif(s0 == 1'b0)temp = a2;elsetemp = a3;endalways @(a1, temp,s1)beginif(s1 == 1'b0)outy = a1;elseouty = temp;endendmodule作业3-7 半减器module H_suber(x,y,diff,s_out);input x,y;output diff,s_out;reg s_out;wire diff;assign diff = x ^ y;always @(x,y)beginif(x < y)s_out = 1'b1;elses_out = 1'b0;endendmodule全减器module F_suber(x,y,sub_in,diffr,sub_out); input x,y,sub_in;output diffr,sub_out;wire diffr,sub_out;wire H_diff,H_sout,s_out;assign sub_out = s_out || H_sout;H_suber U1 (.x(x),.y(y),.diff(H_diff),.s_out(H_sout));H_suber U2 (.x(H_diff),.y(sub_in),.diff(diffr),.s_out(s_out));Endmodule8位全减器module Bit8_suber(X,Y,Sub_in,Diff,Sub_out);input[7:0] X,Y;input Sub_in;output[7:0] Diff;output Sub_out;wire[7:0] Diff;wire Sub_out;wire[6:0] sub_out;F_suber U1(.x(X[0]),.y(Y[0]),.sub_in(Sub_in),.diffr(Diff[0]),.sub_out(sub_out[0]));F_suber U2(.x(X[1]),.y(Y[1]),.sub_in(sub_out[0]),.diffr(Diff[1]),.sub_out(sub_out[1])); F_suber U3(.x(X[2]),.y(Y[2]),.sub_in(sub_out[1]),.diffr(Diff[2]),.sub_out(sub_out[2])); F_suber U4(.x(X[3]),.y(Y[3]),.sub_in(sub_out[2]),.diffr(Diff[3]),.sub_out(sub_out[3])); F_suber U5(.x(X[4]),.y(Y[4]),.sub_in(sub_out[3]),.diffr(Diff[4]),.sub_out(sub_out[4])); F_suber U6(.x(X[5]),.y(Y[5]),.sub_in(sub_out[4]),.diffr(Diff[5]),.sub_out(sub_out[5])); F_suber U7(.x(X[6]),.y(Y[6]),.sub_in(sub_out[5]),.diffr(Diff[6]),.sub_out(sub_out[6])); F_suber U8(.x(X[7]),.y(Y[7]),.sub_in(sub_out[6]),.diffr(Diff[7]),.sub_out(Sub_out)); Endmodule作业3-13Amodule DFF_A(D,EN,CLK,RST,Q,Q1);input D,EN,CLK,RST;output Q,Q1;reg Q;wire Q1;wire D_temp;assign D_temp = D && EN;assign Q1 = (~D_temp)||RST;always @(negedge RST or posedge CLK)beginif(!RST)Q <= 1'b0;elseif(EN)Q <= D;elseQ <= Q;endmoduleBmodule DFF_B (A,B,C,D,Y);input A,B,C,D;output Y;reg Y;wire temp1,temp2,temp3;assign temp1 = A || B;assign temp2 = C && D;assign temp3 = temp1 ^ temp2; always @(A,temp1,temp3)beginif(temp1)Y = temp3;elseY = A;endendmoduleCmodule DFF_C(RST,D,CLK,Q,DOUT); input RST,D,CLK;output Q,DOUT;reg Q,DOUT;reg D_temp1;wire D_temp2;assign D_temp2 = D ^ D_temp1; always @(RST,D)beginif(RST)D_temp1 = 1'b0;elseD_temp1 = D;endalways @(posedge CLK)beginQ <= D_temp1;DOUT <= D_temp2;endmoduleDmodule DFF_D(SET,D,CLK,EN,RESET,Q);input SET,D,CLK,EN,RESET;output Q;reg Q;wire SET_temp;assign SET_temp = (~RESET) && SET;always @(posedge CLK or posedge RESET or posedge SET_temp) beginif(RESET)Q <= 1'b0;elseif(SET_temp)Q <= 1'b1;elseif(EN)Q <= D;elseQ <= Q;endendmodule8-2.用Mealy机类型,写出控制ADC0809采样的状态机。
EDA习题
第一章绪论作业1、EDA的英文全称是什么?EDA的中文含义是什么?答:EDA的英文全称是Electronic Design Automation;中文含义是电子设计自动化。
5、FPGA和CPLD各包含几个基本组成部分?答:FPGA和CPLD均包含三个部分:可编程逻辑单元阵列、可编程互连、可编程I/O单元。
CPLD内部的可编程逻辑单元以乘积项阵列为主,而FPGA内部采用LUT加寄存器结构。
6、FPGA和CPLD各有什么特点?二者在存储逻辑信息方面有什么区别?在实际使用中,在什么情况下选用CPLD?在什么情况下选用FPGA?答:特点:CPLD内部的可编程逻辑单元以乘积项阵列为主,触发器数量相对FPGA要少,规模和复杂度较低。
FPGA内部采用LUT加寄存器结构,触发器数量多,规模和复杂度较高。
在存储逻辑信息方面,CPLD主要采用PROM存储信息;FPGA主要采用SRAM存储信息。
在实际使用中,一般规模逻辑设计,以控制功能为主的情况下优先选用CPLD。
对于复杂逻辑设计,需要存储大量数据的情况下优先选用FPGA。
10、对于目标器件为FPGA/CPLD的VHDL设计,其工程设计包括几个主要步骤?每步的结果是什么?答:主要设计步骤:(1)设计输入:采用HDL语言、原理图、状态图等方式,结果为设计的源代码。
(2)逻辑综合:将RTL级描述转换为优化过的具有特定工艺的门级实现,产生网表文件。
(3)目标器件的布线/适配:将综合器产生的网表文件映射到目标器件中,产生最终的下载文件。
(4)目标器件的编程/下载,得到具有特定功能的电路。
(5)硬件仿真、测试,11、名称解释逻辑综合、逻辑适配、行为仿真、功能仿真、时序仿真答:逻辑综合:将RTL级描述转换为优化过的具有特定工艺的门级实现,即网表文件。
逻辑适配:将综合器产生的网表文件映射到目标器件中,产生最终的下载文件。
行为仿真:将源程序直接送到VHDL仿真器中所进行的仿真。
功能仿真:将综合后的网表文件送到VHDL仿真器中所进行的仿真。
eda实验课后习题答案
1.功能仿真和时序仿真有何不同?为什么?答:EDA 中功能仿真是纯理论的仿真,功能仿真不考虑信号传送过程中的延迟。
仿真结果可以和我们的真值表对应起来。
而时序仿真则要考虑信号传送过程中的延迟,有可能出现竞争冒险等。
时序仿真比较接近实际。
由图(2)(3)中可知时序仿真中的波形有一小段时间比功能仿真中的波形多了一个BCD码--13。
因为功能仿真只是考虑元件的理想功能,而时序仿真考虑到实际元器件的信号延时、输入/输出时间的延时、触发器的建立/保持时间、寄存器的性能等等1,什么是同步清零和异步清零?同步清零就是把清零信号和时钟信号与或者与非处理后输入到清零端,异步清零的清零信号直接输入到清零端。
同步清零可以保证状态在时钟的有效期内不会改变。
就是说,同步清零要与时钟同步触发,而异步清零就不关心时钟上升沿是否到来。
2,BCD计数器和一般二进制计数器有何差别?用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码。
称BCD码或二-十进制代码,亦称二进码十进数。
是一种二进制的数字编码形式,用二进制编码的十进制代码。
由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。
4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9乘以10的10次方种方案。
二进制计数器是数字系统中用得较多的基本逻辑器件。
它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲和脉冲序列等。
例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。
计数器的种类很多。
按时钟脉冲输入方式的不同,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器和非二进制计数器;按计数过程中数字增减趋势的不同,可分为加计数器、减计数器和可逆计数器3.键盘为什么要防抖动?如何防抖动?主要目的是为了提高按键输入可靠性,由于机械触点的弹性振动,按键在按下时不会马上稳定地接通而在弹起时也不能一下子完全地断开,因而在按键闭合和断开的瞬间均会出现一连串的抖动,这称为按键的抖动干扰。
EDA课后答案(适用于《EDA技术及应用》)
1.1、设计集成计数器74161,设计要求如下:4-BIT BINARY UP COUNTER WITH SYNCHRONOUS LOAD AND ASYNCHRONOUS CLEAR NOTEINPUTS: CLK LDN CLRN D C B AOUTPUTS:QD QC QB QA RCO*RCO = QD & QC & QB & QALIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 ISPORT(CLK,LDN,CLRN : IN STD_LOGIC;D,C,B,A : IN STD_LOGIC;CARRY : OUT STD_LOGIC;QD,QC,QB,QA : OUT STD_LOGIC);END;ARCHITECTURE A OF CNT4 ISSIGNAL DATA_IN: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINDATA_IN<=D&C&B&A;PROCESS(DATA_IN,CLK,LDN,CLRN)VARIABLE CNT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLRN='0' THENCNT:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF LDN='0' THENCNT:=DATA_IN;ELSECNT:=CNT+1;END IF;END IF;CASE CNT ISWHEN "1111"=> CARRY<='1';WHEN OTHERS=> CARRY<='0';END CASE;QA<=CNT(0);QB<=CNT(1);QC<=CNT(2);QD<=CNT(3);END PROCESS;END A;1.2、设计一个通用双向数据缓冲器,要求缓冲器的输入和输出端口的位数可以由参数决定。
EDA课后答案
ENTITY buf3s IS
习
题
3-1. 画出与下例实体描述对应的原理图符号元件: 画出与下例实体描述对应的原理图符号元件: -- 实体 : 三态缓冲器 实体1: -- 输入端 -- 使能端 -- 输出端
PORT (input : IN STD_LOGIC ; enable : IN STD_LOGIC ; output : OUT STD_LOGIC ) ; END buf3x ; ENTITY mux21 IS PORT (in0, --实体 : 实体2: 实体 in1, sel :
九江学院电子工程学院 张友木主讲
习
题
数字逻辑系统设计
3-4. 给出 位全减器的 给出1位全减器的 位全减器的VHDL描述。要求: 描述。 描述 要求:
习
题
(1) 首 先 设 计 1 位 半 减 器 , 然 后 用 例 化 语 句 将 它 们 连 接 起 来 , 图 3-32 中 h_suber是半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。 是半减器, 是输出差, 是借位输出, 是借位输入。 是半减器 是输出差 是借位输出 是借位输入 (2) 以1位全减器为基本硬件,构成串行借位的 位减法器,要求用例化语 位全减器为基本硬件, 位减法器, 位全减器为基本硬件 构成串行借位的8位减法器 句来完成此项设计(减法运算是 句来完成此项设计 减法运算是 x – y - sun_in = diffr)。 。
选 九江学院电子工程学院图3-30 4选1多路选择器 张友木主讲 多路选择器
数字逻辑系统设计
library ieee; use ieee.std_logic_1164.all; entity sel4_if is port(s1,s0:in std_logic; a,b,c,d:in std_logic; y:out std_logic); end; architecture behave of sel4_if is begin process(a,b,c,d,s1,s0) begin if(s1='0' and s0='0') then y<=a; elsif (s1='0' and s0='1') then y<=b; elsif (s1='1' and s0='0') then y<=c; else y<=d; end if; end process; end; 九江学院电子工程学院 张友木主讲
eda课后习题
中国地质大学5.8判断下面三个程序是否有错误,若有则指出错误所在,并给出完整程序。
程序1:signal A,EN:std_logic;process(A,EN)variable B:std_logic;beginif EN=1 then B<=A;end if;end process;改过后:1)程序library ieee;use ieee.std_logic_1164.all;entity first isport(d,e:in std_logic;c:out std_logic);end ;architecture one of first issignal A,EN:std_logic;beginA<=d;EN<=e;process(A,EN)variable B:std_logic;beginif EN='1' then B:=A;end if;c<=B;end process;end ;2)仿真结果:3)电路图:程序2:Architecture one of sample isvariable a,b,c:integer;beginc<=a+b;end;改过后:1)程序:library ieee;use ieee.std_logic_1164.all; entity second isport(d,e:in integer range 0 to 5; q:out integer range 0 to 10); end entity ;architecture one of second issignal a,b,c:integer;begina<=d;b<=e;c<=a+b;q<=c;end architecture one;2)仿真结果:3)电路图:程序3:library ieee;use ieee.std_logic_1164.all;entity mux21 isport(a,b:in std_logic;sel:in std_logic;c:out std_logic;); end sam2;architecture one of mux21 isbeginif sel=’0’ then c:=a;else c:=b;end if;end two;改过后:1)程序:library ieee;use ieee.std_logic_1164.all;entity mux21 isport(a,b:in std_logic;sel:in std_logic;c:out std_logic);end mux21;architecture one of mux21 isbeginprocess(sel,a,b)beginif sel='0'then c<=a;else c<=b;end if;end process;end one;2)仿真结果:3)电路图:5.10根据例5.4设计8位左移移位寄存器,给出时序仿真波形。
EDA课后习题答案
定义为Net型的变量常被综合为硬件电路中的物理连接,其特点是输出的值 紧跟输入值的变化而变化,因此常被用来表示以assign关键词引导的组合电路描 述。
形成结构,即用SRAM来构成逻辑函数发生器。一个N输入LUT可以实现N个
输1-入8 变就量逻的辑任宏何单逻元辑而功言能,,G如ALN中输的入O“LM与C”、、CNP输LD入中“的异LC或、”F等PG。A中的LUT和
LE的含义和结构特点是什么?它们都有何异同点?
答:输出逻辑宏单元(Output Logic Macro Cell,OLMC),此结构使得
综合器就是能够将一种设计表述形式自动向另一种设计表述形式转换的 计算机程序,或协助进行手工转换的程序。它可以将高层次的表述转化为低 层次的表述,可以将行为域转化为结构域,可以将高一级抽象的电路描述 (如算法级)转化为低一级的电路描述(如门级),并可以用某种特定的 “技术”(如CMOS)实现。
精选ppt课件
1-10 标志FPGA/CPLD逻辑资源的逻辑宏单元包含哪些结构? 答: CPLD( MAX7000S)系列中的 逻辑宏单元由3个功能块组成:逻辑阵列、 乘积项选择矩阵和可编程寄存器,它们可以被单独地配置为时序逻辑和组合逻 辑工作方式。其中逻辑阵列实现组合逻辑,可以给每个逻辑宏单元提供5个乘 积项。“乘积项选择矩阵”分配这些乘积项作为到“或门”和“异或门”的主 要逻辑输入,以实现组合逻辑函数;或者把这些乘积项作为宏单元中寄存器的 辅助输入:清零(Clear)、置位(Preset)、时钟(Clock)和时钟使能控制 (Clock Enable)。 FPGA(Cyclone III)器件的可编程资源主要来自逻辑阵列块LAB,而每个LAB都 由多个逻辑宏单元(Logic Element,LE)构成。LE是Cyclone III FPGA器件 的最基本的可编程单元,LE主要由一个4输入的查找表LUT、进位链逻辑、寄 存器链逻辑和一个可编程的寄存器构成。
EDA技术课后答案
EDA习题第一章1.1 EDA的英文全称是什么?EDA的中文含义是什么?答:EDA即Electronic Design Automation的缩写,直译为:电子设计自动化。
1.2 什么叫EDA技术?答:EDA技术有狭义和广义之分,狭义EDA技术就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。
1.3 利用EDA技术进行电子系统的设计有什么特点?答:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
1.4 从使用的角度来讲,EDA技术主要包括几个方面的内容?这几个方面在整个电子系统的设计中分别起什么作用?答:EDA技术的学习主要应掌握四个方面的内容:①大规模可编程逻辑器件;②硬件描述语言;③软件开发工具;④实验开发系统。
其中,硬件描述语言是重点。
对于大规模可编程逻辑器件,主要是了解其分类、基本结构、工作原理、各厂家产品的系列、性能指标以及如何选用,而对于各个产品的具体结构不必研究过细。
对于硬件描述语言,除了掌握基本语法规定外,更重要的是要理解VHDL的三个“精髓”:软件的强数据类型与硬件电路的惟一性、硬件行为的并行性决定了VHDL语言的并行性、软件仿真的顺序性与实际硬件行为的并行性;要掌握系统的分析与建模方法,能够将各种基本语法规定熟练地运用于自己的设计中。
对于软件开发工具,应熟练掌握从源程序的编辑、逻辑综合、逻辑适配以及各种仿真、硬件验证各步骤的使用。
EDA技术与应用课后习题答案(2)
EDA技术与应用课后习题答案(2)END IF;END PROCESS;PR02:PROCESS(s1)BEGINIF s1=”0” THEN outy<=a1;ELSE outy<=tmp;END IF;END PROCESS;END ARCHITECTURE ONE;END CASE;4-4.下图是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计文件。
4-4.答案LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MULTI ISPORT(CL:IN STD_LOGIC; --输入选择信号CLK0:IN STD_LOGIC; --输入信号OUT1:OUT STD_LOGIC);--输出端END ENTITY;ARCHITECTURE ONE OF MULTI ISSIGNAL Q : STD_LOGIC;BEGINPR01: PROCESS(CLK0)BEGINIF CLK ‘EVENT AND CLK=’1’THEN Q<=NOT(CL OR Q);ELSEEND IF;END PROCESS;PR02: PROCESS(CLK0)BEGINOUT1<=Q;END PROCESS;END ARCHITECTURE ONE;END PROCESS;4-5.给出1位全减器的VHDL描述。
要求:(1) 首先设计1位半减器,然后用例化语句将它们连接起来,图3-32中h_suber是半减器,diff是输出差,s_out是借位输出,sub_in 是借位输入。
(2) 以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr) 4-5.答案底层文件1:or2a.VHD实现或门操作LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY or2a ISPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a ISBEGINc <= a OR b;END ARCHITECTURE one;底层文件2:h_subber.VHD实现一位半减器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY h_subber ISPORT(x,y:IN STD_LOGIC;diff,s_out::OUT STD_LOGIC);END ENTITY h_subber;ARCHITECTURE ONE OF h_subber ISSIGNAL xyz: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINxyz <= x & y;PROCESS(xyz)BEGINCASE xyz ISWHEN "00" => diff<='0';s_out<='0';WHEN "01" => diff<='1';s_out<='1';WHEN "10" => diff<='1';s_out<='0';WHEN "11" => diff<='0';s_out<='0';WHEN OTHERS => NULL;END CASE;END PROCESS;END ARCHITECTURE ONE;顶层文件:f_subber.VHD实现一位全减器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_subber ISPORT(x,y,sub_in:IN STD_LOGIC;diffr,sub_out:OUT STD_LOGIC);END ENTITY f_subber;ARCHITECTURE ONE OF f_subber IS COMPONENT h_subberPORT(x,y:IN STD_LOGIC;diff,S_out:OUT STD_LOGIC);END COMPONENT;COMPONENT or2aPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT;SIGNAL d,e,f: STD_LOGIC;BEGINu1: h_subber PORT MAP(x=>x,y=>y,diff=>d,s_out=>e);u2: h_subber PORT MAP(x=>d,y=>sub_in,diff=>diffr,s_out=>f);u3: or2a PORT MAP(a=>f,b=>e,c=>sub_out);END ARCHITECTURE ONE;END ARCHITECTURE ART;4-6.根据下图,写出顶层文件MX3256.VHD的VHDL设计文件。
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技术实用教程课后习题答案(20210110132612)
第一章1- 1 EDA技术与ASIC设计与FPGA开发有什么关系?答:利用EDA技术进行电子系统设计得最后目标就是完成专用集成电路ASIC得设计与实现;FPGA与CPLD就是实现这一途径得主流器件。
FPGA与CPLD通常也被称为可编程专用IC,或可编程ASIC o FPGA与CPLD得应用就是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)与ASIC设计,以及对自动设计与自动实现最典型得诠释。
1- 2与软件描述语言相比,VHDL有什么特点? P6答:编译器将软件程序翻译成基于某种特定CPU得机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU得硬件结构,只能被动地为其特定得硬件电路结构所利用。
综合器将VHDL程序转化得目标就是底层得电路结构网表文件,这种满足VHDL设计程序功能描述得电路结构,不依赖于任何特定硬件环境;具有相对独立性。
综合器在将VHDL(硬件描述语言)表达得电路功能转化成具体得电路结构网表过程中,具有明显得能动性与创造性,它不就是机械得一一对应式得“翻译”,而就是根据设计库、工艺库以及预先设置得各类约束条件,选择最优得方式完成电路结构得设计。
1- 3什么就是综合?有哪些类型?综合在电子设计自动化中得地位就是什么?什么就是综合?答:在电子设计领域中综合得概念可以表示为:将用行为与功能层次表达得电子系统转换为低层次得便于具体实现得模块组合装配得过程。
有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。
(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域得综合,即行为综合。
(3)从RTL级表示转换到逻辑门(包括触发器)得表示,即逻辑综合。
(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA得配置网表文件,可称为版图综合或结构综合。
综合在电子设计自动化中得地位就是什么?答:就是核心地位(见图1- 3)。
EDA技术实用教程课后习题答案
E D A技术实用教程课后习题答案(总6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章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 级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。
EDA课后作业
课后作业3-5case语句module decoder138(s0,s1,s2,y);input s0,s1,s2;output y;reg [7:0] y;always @(s0,s1,s2)begin : decoder138case({s0,s1,s2})3'b000: y<=8'b00000001;3'b001: y<=8'b00000010;3'b010: y<=8'b00000100;3'b011: y<=8'b00001000;3'b100: y<=8'b00010000;3'b101: y<=8'b00100000;3'b110: y<=8'b01000000;3'b111: y<=8'b10000000;default : y<=8'b00000001;endcaseendEndmodule3-5 if else语句module decoder138(s0,s1,s2,y);input s0,s1,s2;output y;reg [2:0] SEL;reg [7:0] y;always @(s0,s1,s2)begin : decoder138SEL = ({s0,s1,s2});if (SEL==0) y=8'b00000001;else if (SEL==1) y=8'b00000010;else if (SEL==2) y=8'b00000100;else if (SEL==3) y=8'b00001000;else if (SEL==4) y=8'b00010000;else if (SEL==5) y=8'b00100000;else if (SEL==6) y=8'b01000000;else if (SEL==7) y=8'b10000000;else y=8'b00000001;endEndmodule3-6 (1)module MUX21a (a,b,s0,s1,y);input a,b,s0,s1;output y;reg y;always @(a,b,s0,s1,y)begin : MUX21acase ({s0,s1,y})0 : begin y<=a ; end1 : begin y<=a ; end2 : begin y<=a ; end3 : begin y<=b ; enddefault : begin y=a ; endendcaseendendmodule3-6(2)module MUXK(a1,a2,a3,s0,s1,outy);input a1,a2,a3,s0,s1;output outy;wire tmp;MUX21A u1(a2,.a3,s0,.y(tmp));MUX21A u2(a1,.y(tmp),s1,.y(outy)); endmodulemodule MUX21A(a,b,s,y);input a,b,s;output y;assign y = (s ? a: b);endmodule3-12module CNT16(CLK,RST,EN,LOAD,COT,DOUT,DATA); input CLK,EN,RST,LOAD,COT;input [15:0] DATA ;output [15:0] DOUT ;reg [15:0] Q1 ;always @(posedge CLK or negedge RST)beginif(!RST) Q1 <= 0;else if(EN) beginif (!LOAD) Q1 <= DATA;if(COT) Q1 <= Q1+1;else Q1 <= Q1-1;endendassign DOUT = Q1;endmodule5-5module CNT16(a,b,c,d,MAX);input [3:0]a,b,c,d ;output [3:0]MAX ;reg [3:0]MAX;reg [3:0]sum;always @ (a,b,c,d)beginsum=a;if (sum<=b) sum=b;if (sum<=c) sum=c;if (sum<=d) sum=d;MAX=sum;endEndmodule5-8module COMPARE(X,Y);input [3:0]X;output Y;reg Y;always @(X)begin:COMPAREif(X>5) Y=1;else Y=0;endEndmodule5-9module SHFT11(CLK,RST,DATA,QB,CN,LOAD);input RST,CLK,LOAD;input [10:0] DATA;output CN;output [10:0] QB;reg [10:0] QB;always @(posedge CLK or posedge RST)begin : SHFT11if(RST) QB<=11'B0;elsebeginif(LOAD) QB<=DATA;else begin QB<=QB<<1;QB[0]<=QB[10]; endendendassign CN=QB[10];Endmodule8-3module qsy(CLK,RESET,in,out);input[2:0]in;input CLK,RESET;output[3:0]out;reg[3:0]cs;reg[3:0]out;parameter s0=0,s1=1,s2=2,s3=3;always@(posedge CLK or posedge RESET)beginif(RESET)cs<=s0;else begincase(cs)s0:begincs<=s1;begin if(in==3'b101)out<=4'b0010;else if(in==3'b111)out<=4'b1100;endends1:beginout<=4'b1001;begin if(in==3'b000)cs<=s1;else if(in==3'b110)cs<=s2;endends2:beginout<=4'b1111;begin if(in==3'b100)cs<=s2;else if(in==3'b011)cs<=s2;endends3:beginbegin if(in==3'b101)out<=4'b1101;else if(in==3'b011)out<=4'b1110;endcs<=s0;enddefault:begincs<=s0;begin if(in==3'b101)out<=4'b0010;else if(in==3'b111)out<=4'b1100;endendendcaseendendEndmodule(2)module qsy(CLK,RESET,in,out);input[2:0]in;input CLK,RESET;output[3:0]out;reg[3:0]SIGNAL1,SIGNAL2;reg[3:0]out;parameter s0=0,s1=1,s2=2,s3=3;always@(posedge CLK or posedge RESET)begin if(RESET)SIGNAL2<=s0;else SIGNAL2<=SIGNAL1;endalways@(SIGNAL2 or in)begincase(SIGNAL2)s0:beginSIGNAL1<=s1;begin if(in==3'b101)out<=4'b0010; else if(in==3'b111)out<=4'b1100; endends1:beginout<=4'b1001;begin if(in==3'b000)SIGNAL1<=s1; else if(in==3'b110)SIGNAL1<=s2; endends2:beginout<=4'b1111;begin if(in==3'b100)SIGNAL1<=s2; else if(in==3'b011)SIGNAL1<=s1; else if(in==3'b100)SIGNAL1<=s3; endends3:beginSIGNAL1<=s0;begin if(in==3'b101)out<=4'b1101; else if(in==3'b011)out<=4'b1110; endenddefault:beginSIGNAL1<=s0;begin if(in==3'b101)out<=4'b0010; else if(in==3'b111)out<=4'b1100; endendendcaseendendmodule。
《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课后习题答案
用VHDL设计一个秒表电路姓名:朱芳学号:200803050221 专业:08电气2班1.实验目的:掌握MAXPLU SⅡ的VHDL语言描述输入法(1)掌握VHDL语言描述输入法(2)掌握VHDL语言(3)理解if语句进行描述计数器2.实验内容:利用VHDL语言设计一个秒表电路,最小计时精度为0.01S,最长为99S。
3.实验原理:计算器是数字系统中用的交代的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也是用于与分频,定时,产生节拍脉冲和脉冲序列。
4.实验源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count100 isport (clk :in bit;oc :out bit;y :out integer range 0 to 99 );end ;architecture a of count100 issignal q :integer range 0 to 99;beginp1:process(clk)beginif (clk'event and clk='1')then if q=99 thenq<=0;elseq<=q+1;end if;end if;if q<50 thenoc<='0';elseoc<='1';end if;y<=q;end process;end;5.编译过程:6.时序波形仿真:7.时域分析:。
EDA课后答案(适用于朱正伟《EDA技术及应用》)
1.1、设计集成计数器74161,设计要求如下:4-BIT BINARY UP COUNTER WITH SYNCHRONOUS LOAD AND ASYNCHRONOUS CLEAR NOTEINPUTS: CLK LDN CLRN D C B AOUTPUTS:QD QC QB QA RCO*RCO = QD & QC & QB & QALIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4 ISPORT(CLK,LDN,CLRN : IN STD_LOGIC;D,C,B,A : IN STD_LOGIC;CARRY : OUT STD_LOGIC;QD,QC,QB,QA : OUT STD_LOGIC);END;ARCHITECTURE A OF CNT4 ISSIGNAL DATA_IN: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINDATA_IN<=D&C&B&A;PROCESS(DATA_IN,CLK,LDN,CLRN)V ARIABLE CNT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLRN='0' THENCNT:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF LDN='0' THENCNT:=DATA_IN;ELSECNT:=CNT+1;END IF;END IF;CASE CNT ISWHEN "1111"=> CARRY<='1';WHEN OTHERS=> CARRY<='0';END CASE;QA<=CNT(0);QB<=CNT(1);QC<=CNT(2);QD<=CNT(3);END PROCESS;END A;1.2、设计一个通用双向数据缓冲器,要求缓冲器的输入和输出端口的位数可以由参数决定。
eda技术及应用课后习题答案
eda 技术及应用课后习题答案【篇一:eda 技术实用教程(第四版)》习题答案】ss=txt>1 习题1- 1 eda 技术与asic 设计和fpga 开发有什么关系?fpga 在asic 设计中有什么用途?p3~41- 2 与软件描述语言相比,vhdl 有什么特点? p6l- 3 什么是综合?有哪些类型? 综合在电子设计自动化中的地位是什么? p51- 4 在eda 技术中,自顶向下的设计方法的重要意义是什么? p7~101- 5 ip 在eda 技术的应用和发展中的意义是什么? p22~141- 6 叙述eda 的fpga/cpld 设计流程,以及涉及的eda 工具及其在整个流程中的作用。
(p11~13)2 习题2- 1 olmc (输出逻辑宏单元)有何功能? 说明gal 是怎样实现可编程组合电路与时序电路的。
p34~362- 2 什么是基于乘积项的可编程逻辑结构? p33~34 ,40 什么是基于查找表的可编程逻辑结构? p40~412- 3 fpga 系列器件中的lab 有何作用? p43~452- 5 解释编程与配置这两个概念。
p582- 6 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻辑结构的pld 器件归类为cpld ;将基于查找表的可编程逻辑结构的pld 器什归类为fpga ,那么,apex 系列属于什么类型pld 器件? max ii 系列又属于什么类型的pld 器件?为什么? p54~563 习题3- 1 画出与以下实体描述对应的原理图符号元件: entity buf3s is -- 实体1: 三态缓冲器port(input:in std_logic; -- 输入端enable:in std_logic; -- 使能端output:out std_logic); -- 输出端end buf3s ;entity mux21 is -- 实体2: 2 选1 多路选择器port(in0, in1,sel: in std_logic; output:out std_logic);3- 2 图3-16 所示的是4 选1 多路选择器,试分别用if_then 语句和case 语句的表达方式写出此电路的vhdl 程序,选择控制信号s1 和s0 的数据类型为std_logic_vector; 当s1='0',s0=;'s01'='0',s0= ;'1' s1 =' 1' ,s0=和Sf='1' ,s0=时,分别执行y=a、y=b、y=c、y=d。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ End generate; end;
4-6. 根据图4-21,写出顶层文件MX3256.VHD的VHDL设计文件。
t3 t4
t2 t1
图4-21 题4-6电路图
❖ Library ieee; use ieee.std_logic_1164.alll; ❖ Entity mx3256 is ❖ Port(ina,inb,inck,inc:in std_logic; ❖ e,out1:out std_logic); ❖ End mx3256; ❖ Architecture behav of mx3256 is ❖ Component lk35 ❖ Port(a1,a2,clk:in std_logic; ❖ q1,q2:out std_logic); End component; ❖ Signal t1,t2,t3,t4:std_logic; ❖ Begin u1:lk35 port
❖ End one;
❖ 使用CASE语句:
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Entity mux41 is
❖ Port(s0,s1,a,b,c,d:in std_logic;
❖ y:out std_logic);
❖ End mux41;
❖ Architecture one of mux41 is
❖ End suber;
❖ Architecture behav of suber is
❖ Component h_suber
❖ Port(x,y:in std_logic;
❖
diff,s_out:out std_logic);
❖ End component;
❖ Signal t0,t1,t2:std_logic;
❖ Entity ex16 is
❖ Port(clk,clr,en,sel:in std_logic;
❖ Begin s10<=s1 &s0;
❖ process(s10,a,b,c,d)
❖
begin if s10=“00” then y<=a;
❖
elsif s10=“01 then y<=b;
❖
elsif s10=“10” then y<=c;
❖
else y<=d;
❖
end if ;
❖
end process;
❖ END buf3x ;
❖ ENTITY mux21 IS --实体2: 2选1多路选择器
❖ PORT (in0, in1, sel : IN STD_LOGIC;
❖
output : OUT STD_LOGIC);
4-2. 图4-17所示的是4选1多 路选择器,试分别用 IF_THEN语句和CASE语句 的表达方式写出此电路的 VHDL程序。
❖ End behav;
❖ 一位全减器的VHDL描述suber.vhd
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Entity suber is
❖ Port(x,y,sub_in:in std_logic;
❖
diffr,sub_out:out std_logic);
❖ 4-1画出与下例实体描述对应的原理图符号元件:
❖ ENTITY buf3s IS -- 实体1: 三态缓冲器
❖ PORT (input : IN STD_LOGIC ; -- 输入端
❖
enable : IN STD_LOGIC ; -- 使能端
❖
output : OUT STD_LOGIC ) ; -- 输出端
❖
C:out std_logic_vector(7 doento 0);
❖ End sub8;
❖ Architecture behav of suber8 is
❖ Component suber
❖ Port(x,y,sub_in:in std_logic;
❖ diffr,sub_out:out std_logic); End component;
❖
end case;
❖
end process;
❖ End one;
4-3. 图4-18所示的是双2选1多路选择器构成的电路MUXK,对 于其中MUX21A,当s='0'和'1'时,分别有y<='a'和y<='b'。试 在一个结构体中用两个进程来表达此电路,每个进程中用CASE 语句描述一个2选1多路选择器MUX21A。
❖
y:out std_logic); End component;
❖ Signal tmp:std_logic;
❖ Begin U1:mux21 port map(a=>a2,b=>a3,s=>s0,y=>tmp);
❖
U2:mux21 port map(a=>a1,b=>tmp,s=>s1,y=>outy);
❖ Entity muxk is
❖ Port(s0,s1,a1,a2,a3:in std_logic;
❖
outy:out std_logic);
❖ End muxk;
❖ Architecture beh of muxk is
❖ Component mux21
❖ port(s,a,b:in std_logic;
❖
process(s1,a1,tmp)
❖
begin case s1 is
❖
when ‘0’=>outy<=a1 ;
❖
when ‘1’=>outy<=tmp;
❖
end case;
❖
end process;
❖ End one;
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Signal s10:std_logic_vector(1 downto 0);
❖ Begin s10<=s1 &s0;
❖ process(s10,a,b,c,d)
❖
begin case s10 is
❖
when “00”=>y<=a; when “01”=>y<=b;
❖
when “10”=>y<=c; when others=>y<=a;
❖
end if;
❖ end process;
❖ Out1<=not tmp;
❖ End one;
4-5. 给出1位全减器的VHDL描述。要求: (1) 首先设计1位半减器,然后用例化语句将它们连接起来, 图4-20中h_suber是半减器,diff是输出差,s_out是借位输出, sub_in是借位输入。 (2) 以1位全减器为基本硬件,构成串行借位的8位减法器,要 求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr)。
map(a1=>ina,a2=>inb,clk=>inck,q1=>t3,q2=>t2); ❖ U2: lk35 port
map(a1=>t2,a2=>t1,clk=>inck,q1=>t4,q2=>out1); ❖ Process(inck,inc) ❖ Begin if(inc=‘0’)then t1<=‘0’; ❖ elsif(rising_edge(inck)) then t1<=t2; ❖ End if; end process; ❖ E<=t4 when t2=‘0’ else t3; end;
图4-18 双2选1多路选择器
K 康芯科技 X
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Entity muxk is
❖ Port(s0,s1,a1,a2,a3:in std_logic;
❖ outy:out std_logic);
❖ End muxk;
选择控制的信号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。
图4-17 4选1多路选择器
❖ 使用IF…THEN语句:
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Entity mux21 is
❖ port(s,a,b:in std_logic;
❖
y:out std_logic);
❖ End mux21;
❖ Architecture one of mux21 is
❖ Begin y<=a when s=‘0’ else b;
❖ End one;
❖ Library ieee; use ieee.std_logic_1164.alll;
❖ Architecture one of muxk is
❖ Signal tmp:std_logic;
❖ Begin process(s0,a2,a3)
❖
begin case s0 is
❖
when ‘0’=>tmp<=a2 ;
❖
when ‘1’=>tmp<=a3;