




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA 技术实用教程 (第五版 )习题1- 1 EDA技术与ASIC设计和FPGA开发有什么关系 FPGA在ASIC设计中有什么用途 P34 EDA技术与ASIC设计和FPGA开发有什么关系答:利用EDA技术进行电子系统设计的最 后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC (片上系统)和 ASIC设计,以及对自动设计与自动实现最典型的诠释。FPGA在ASIC设计中有什么用途 答:FPGA和 CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA实现ASIC设计的现场可编
2、程器件。P461- 2与软件描述语言相比,VHDL有什么特点答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言 )表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造 性,它不是机械的一一对应式的“翻译” ,而是根据设计库、工艺库以及预先设置的各类约 束条件,选择最优的方
3、式完成电路结构的设计。l-3 什么是综合有哪些类型综合在电子设计自动化中的地位是什么P6什么是综合 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达 的电子系统转换为低层次的便于具体实现的模块组合装配的过程。有哪些类型 答:(1)从自然语言转换到 VHDL语言算法表示,即自然语言综合。(2)从算 法表示转换到寄存器传输级 (RegisterTransport Level , RTL) ,即从行为域到结构域的综合, 即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑 门表示转换到版图表示(ASIC设计),或转换到FPGA勺配置网表文件,可称
4、为版图综合或结 构综合。综合在电子设计自动化中的地位是什么 答:是核心地位(见图 1-3)。综合器具有更复 杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息, 以及获得优化综合的诸多约束条件信息; 根据工艺库和约束条 件信息,将VHDL程序转化成电路实现的相关信息。1-4 在EDA技术中,自顶向下的设计方法的重要意义是什么P810答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。1- 5 IP 在EDA技术的应用和发展中的意义是什么P2325答: IP 核具有规范的接口协议,良好的可移植与可测试性
5、,为系统开发提供了可靠的 保证。1-6 叙述EDA的FPGA/CPLD设计流程,以及涉及的 EDA工具及其在整个流程中的作用。 (P1214)答:1.设计输入(原理图/HDL文本编辑)(EDA设计输入器将电路系统以一定的表达方式 输入计算机);2.综合(EDA综合器就是将电路的高级语言 (如行为描述)转换成低级的,可与 FPGA/CPLD勺基本结构相映射的网表文件或程序。);3.适配(EDA适配器的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC JAM格式的文件。);4.时序仿真(EDA时序仿真器就是接近真实器件运行特性的仿真,仿真文件中 已包含了器
6、件硬件特性参数, 因而,仿真精度高。)与功能仿真(EDA功能仿真器直接对 VHDL 原理图描述或其他描述形式的逻辑功能进行测试模拟, 的要求,仿真过程不涉及任何具体器件的硬件特性。生成的下载或配置文件, 通过编程器或编程电缆向以了解其实现的功能是否满足原设计);5.编程下载(EDA编程下载把适配后 FPGA或CPLDT载,以便进行硬件调试和 验证(Hardware Debugging)。); 6.硬件测试(最后是将含有载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误, 改进设计。其中EDA的嵌入式逻辑分析仪是将含有载入了设计的FP
7、GA的硬件系统进行统一测试,并将测试波形在 PC机上显示、观察和分析。)。2-1的。OLMC (输出逻辑宏单元)有何功能说明GAL是怎样实现可编程组合电路与时序电路P3436OLM(有何功能 答:OLMC单元设有多种组态,可配置成专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等。说明GAL是怎样实现可编程组合电路与时序电路的答:GAL(通用阵列逻辑器件) 是通过对其中的 OLMC(逻辑宏单元)的编程和三种模式配置(寄存器模式、复合模式、简单模 式),实现组合电路与时序电路设计的。P3334, 40 什么是基于查找表的可编程逻答:GALCPLD之类都是基于乘积项的可编程结构
8、; PAL (可编程阵列逻辑)器件构成。答:FPGA(现场可编程门阵列) 是基于查找表的可2- 2 什么是基于乘积项的可编程逻辑结构 辑结构 P4042什么是基于乘积项的可编程逻辑结构 即包含有可编程与阵列和固定的或阵列的什么是基于查找表的可编程逻辑结构 编程逻辑结构。P42442- 3 FPGA系列器件中的LAB有何作用答:FPGACyclone/Cyclone II )系列器件主要由逻辑阵列块 LAB嵌入式存储器块(EAB、 I/O单元、嵌入式硬件乘法器和PLL等模块构成;其中 LAB(逻辑阵列块)由一系列相邻的LE (逻辑单元)构成的;FPGA可编程资源主要来自逻辑阵列块LAB2-4 与
9、传统的测试技术相比,边界扫描技术有何优点P4750答:使用BST(边界扫描测试、规范测试,不必使用物理探针,可在器件正常工作时在 系统捕获测量的功能数据。克服传统的外探针测试法和“针床”夹具测试法来无法对IC 内部节点无法测试的难题。2-5 解释编程与配置这两个概念。 P5156答:编程:基于电可擦除存储单元的 EEPRO或 Flash技术。CPLC一股使用此技术进行 编程。CPLD被编程后改变了电可擦除存储单元中的信息,掉电后可保存。电可擦除编程工 艺的优点是编程后信息不会因掉电而丢失,但编程次数有限,编程的速度不快。配置:基于SRAM查找表的编程单元。编程信息是保存在 SRAM中的,SRA
10、M在掉电 后编程信息立即丢失,在下次上电后,还需要重新载入编程信息。大部分FPGA采用该种编程工艺。该类器件的编程一般称为配置。对于SRAM型 FPGA来说,配置次数无限,且速度快; 在加电时可随时更改逻辑;下载信息的保密性也不如电可擦除的编程。2- 6 请参阅相关资料,并回答问题:按本章给出的归类方式,将基于乘积项的可编程逻 辑结构的PLD器件归类为CPLD将基于查找表的可编程逻辑结构的PLD器什归类为FPGA那么,APEX系列属于什么类型 PLD器件MAX II系列又属于什么类型的PLD器件为什么P4751答:APEX(Advaneed Logic Element Matrix)系列属于
11、FPGA类型PLD器件;编程信息存 于SRAM中。MAX II系列属于CPLD类型的PLD器件;编程信息存于EEP RO中。3-1 说明端口模式INOUT和BUFFER有何异同点。P6OINOUT :具有三态控制的双向传送端口 BUFFER:具有输出反馈的单向东湖出口。3-2 画出与以下实体描述对应的原理图符号元件 :ENTITY buf3s IS -实体1:三态缓冲器P ORT(i npu t:IN STD_LOGIC;- 输入端 en able:IN STD_LOGIC;-使能端out put:OUT STD_LOGIC);-输出端END buf3s ;buf3sinputout putE
12、NTITY mux21 IS - 实体2: 2 选1多路选择器P ORT(i n0, i n1,sel: IN STD_LOGIC;out put:OUT STD_LOGIC);mux21inOout putin1sel3-3试分别用IF_THEN语句和CASE语句的表达方式写出此电路的号 s1 和 sO 的数据类型为 STD_LOGIC_VECTO当 s1 = O ,s0= O s1= 1 ,sO= O和 s1= 1 ,sO= 1时,分别执行 y=a、y=b、y=e、y=d。 -解1:用IF_THEN语句实现4选1多路选择器LIBRARY IEEE;USE ENTITY mux41 ISPO
13、RT (a,b,e,d: IN STD_LOGIC;sO:VHDL程序,选择控制信;s1= O ,s0= 1;s1:IN STD_LOGIC;IN STD_LOGIC;OUT STD_LOGIC);y:END ENTITY mux41;ARCHITECTURE if mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量数据BEGINs0s1=s1 &s0;-s1P ROCESS(s0s1,a,b,c,d)BEGINIF s0s1 = 00 THEN相并sO,即s1与s0并置操作=a; y = b; y =
14、c;IN STD_LOGIC;IN STD_LOGIC;OUT STD_LOGIC);相并sO,即s1与sO并置操作全减器结构图;s_oub=1,xy)布尔方程描述方法yELSIF s0s1 = 01 THENELSIF s0s1 = 10 THENELSE y = d;END IF;END P ROCESS;END ARCHITECTURE if_mux41;-解2:用CASE语句实现4选1多路选择器LIBRARY IEEE;USE ENTITY mux41 ISPORT (a,b,c,d: IN STD_LOGIC;s0:s1: y:END ENTITY mux41;ARCHITECTUR
15、E case_mux41 OF mux41 ISSIGNAL s0s1 : STD_LOGIC_VECTOR(1 DOWNTO 0);- 定义标准逻辑位矢量数据类型 BEGINsOs1yyyyNULL ;END CASE;END P ROCESS;END ARCHITECTURE case_mux41;3- 4 给出1位全减器的VHDL描述;最终实现 8位全减器。要求:1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是借位输入u是输出差(diff=x-y),s_out是借位输出(s_out=1,xy),sub_inyin图 3-18-解:实堆1
16、位半减器h_suber(diff=x-y LIBRARY IEEE;-半减器描述(1):USE ENTITY h_suber ISP ORT(x,y: IN STD_LOGIC;diff,s_out: OUT STD_LOGIC);END ENTITY h_suber;ARCHITECTURE hs1 OF h_suber ISBEGINDiff = x XOR (NOT y); s_out x in,y=yi n, diff=a, s_out=b); u2: h_suber P ORT MAP (x=a, y=sub_i n, diff=diff_out,s_out=c); sub_out
17、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_
18、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译码器,要求分别用(条件)赋值语
19、句、case语句、if else 语 句或移位操作符来完成。比较这 4 种方式中,哪一种最节省逻辑资源。解( 1):条件赋值语句-3-5 3 到 8 译码器设计 (条件赋值语句实现 )LIBRARY IEEE;USE USE - 为使用类型转换函数,打开此程序包。ENTITY decoder3to8 ISport( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DOUT: OUT BIT_VECTOR(7 DOWNTO 0);END decoder3to8;ARCHITECTURE behave OF decoder3to8 ISBEGINWITH CONV_INT
20、EGER(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 USE - 为使用类型转换函数,打开此程序包。 ENTITY decoder3to8 ISport( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_VECTOR(7 DOWNTO 0);END decoder3
21、to8;ARCHITECTURE behave OF decoder3to8 ISBEGINPROCESS (DIN)BEGINIF CONV_INTEGER(DIN)=0 THEN DOUT=00000001;ELSIF CONV_INTEGER(DIN)=1 THEN DOUT=00000010;ELSIF CONV_INTEGER(DIN)=2 THEN DOUT=00000100;ELSIF CONV_INTEGER(DIN)=3 THEN DOUT=00001000;ELSIF CONV_INTEGER(DIN)=4 THEN DOUT=00010000;ELSIF CONV_INT
22、EGER(DIN)=5 THEN DOUT=00100000;ELSIF CONV_INTEGER(DIN)=6 THEN DOUT=01000000;ELSIF CONV_INTEGER(DIN)=7 THEN DOUT=;END IF;END PROCESS;END behave;解( 4):移位操作符 -3-5 3 到 8译码器设计 (移位操作实现 )LIBRARY IEEE;USE USE - 为使用类型转换函数,打开此程序包。ENTITY decoder3to8 ISport( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_V
23、ECTOR(7 DOWNTO 0);END decoder3to8;ARCHITECTURE behave OF decoder3to8 ISBEGINDOUT5)PORT( d_in : IN STD_LOGIC_VECTOR(3 DOWNTO 0); - cmp_out : OUT STD_LOGIC);-END g_5_cmp;ARCHITECTURE BHV OF g_5_cmp ISBEGINPROCESS(d_in)BEGINIF(d_in0101) THEN cmp_out=1; -else cmp_out=0; -END IF; END PROCESS; END BHV;3-7
24、 利用 if 语句设计一个全加器。 -3-7 利用 if 语句设计一个全加器LIBRARY IEEE; -1位二进制全加器顶层设计描述USE USE ENTITY f_adder ISPORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC );END ENTITY f_adder; ARCHITECTURE fd1 OF f_adder IS输入数据大于 5,比较输出 1。输入数据小于等于 5,比较输出0。BEGINPROCESS (ain,bin,cin)BEGINIF ain=1 XOR bin=1 XOR cin=1 THEN
25、 sum=1; ELSE sum=0; END IF; IF (ain=1 AND bin=1)OR(ain=1 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 设计一个求补码的程序,输入数据是一个有符号的 - 解: 3-8 设计一个求补码的程序,输入数据是一个有符号的LIBRARY IEEE;USE USE ENTITY org_patch ISPORT( org_data : IN STD_LOGIC_VECTOR(7 DOWNTO
26、0);- patch_data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);- END org_patch;ARCHITECTURE BHV OF org_patch IS BEGINPROCESS(org_data)BEGINIF(org_data(7)=0) THEN patch_data=0elseAND cin=1)OR(bin=18 位二进制数。8 位二进制数。,补码 =原码。AND原码输入补码输出,补patch_data=org_data(7)&(not org_data(6 DOWNTO 0)+1;-org_data DOUT DOUT=0001;WHE
27、N 0011WHEN 0010WHEN 0110WHEN 0111WHEN 0101WHEN 0100WHEN 1100WHEN 1101WHEN 1111WHEN 1110WHEN 1010WHEN 1011WHEN 1001WHEN 1000DOUT=0010;DOUT=0011;DOUT=0100;DOUT=0101;DOUT=0110;DOUT=0111;DOUT=1000;DOUT=1001;DOUT=1010;DOUT=1011;DOUT=1100;DOUT=1101;DOUT=1110;DOUT NULL;END CASE;END PROCESS;END behave;3-10
28、利用 if 语句设计一个 3 位二进制数 A2.0 、B2.0 的比较器电路。对于比较 (AB)、(A=B)的结果分别给出输出信号LT=1、GT=1 EQ=1-3-10 利用 if 语句设计一个 3位二进制数 A2.0 、B2.0 的比较器电路。- 对于比较(AB)、(A=B)的结果分别给出输出信号LT=1、GT=1 EQMLIBRARY IEEE;USE USE ENTITY COMP ISPORT( A,B: IN STD_LOGIC_VECTOR(2 DOWNTO 0); - 两个 3位输入LT: OUT STD_LOGIC; -小于输出GT: OUT STD_LOGIC; -大于输出E
29、Q: OUT STD_LOGIC); -等于输出END ENTITY COMP;ARCHITECTURE ONE OF COMP ISBEGINPROCESS(A,B)BEGINIF (AB) 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 = (AB); -小于GT B); -大于EQ = (A=B); -等于END ARCHITECTURE ONE;3-11 利用 8 个全加器,可以构成一个 8 位加法器。利用循环语句来实现这项设计。并以 此项
30、设计为例,使用 GENERIC参数传递的功能,设计一个32位加法器。-3-11 利用GENERIC参数和循环语句将 8个全加器构成成8位加法器LIBRARY IEEE;USE USE USE ENTITY ADDER8B ISGENERIC(S: INTEGER:=8); - 定义参数 S 为整数类型,且等于 4PORT(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;A
31、RCHITECTURE ONE OF ADDER8B ISBEGINPROCESS(A,B,CIN)VARIABLE S1: STD_LOGIC_VECTOR(S-1 DOWNTO 0);VARIABLE C1: STD_LOGIC;-_VECTOR(S DOWNTO 0);BEGINC1:=CIN;-C1(0):=CIN;FOR i IN 1 TO S LOOPXOR C1=1THEN S1(i-1):=1;ELSEIF A(i-1)=1 XOR B(i-1)=1S1(i-1):=0; END IF;ANDC1=1)OR(B(i-1)=1ANDIF (A(i-1)=1 ANDB(i-1)=1
32、)OR(A(i-1)=1C1=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
33、 。相类似,以 4位二进制表达的 BCD码的取补则是用 9(1001)减去这个数再加上1。-3-12 设计2位BCD码减法器(利用减去数等于加上该数补码方法)(a-b=a+-b补码)LIBRARY IEEE; - 待例化元件USE USE USE ENTITY SUB2BCD ISPORT(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 ISBEGINPROCESS
34、(a,b)VARIABLE cc: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF ab THEN sout=1; ELSE sout 1001 THEN cc:=cc+00000110;END IF;IF cc(7 DOWNTO 4) 1001 THEN cc:=cc+01100000;END IF;cc:=a+cc;IF cc(3 DOWNTO 0) 1001 THEN cc:=cc+00000110;END IF;IF cc(7 DOWNTO 4) 1001 THEN cc:=cc+01100000;END IF;IF a 1001 THEN cc:=cc+00
35、000110;END IF;IF cc(7 DOWNTO 4) 1001 THEN cc:=cc+01100000;END IF; END IF;diff=cc;END PROCESS;END behave;3-13 设计一个 4 位乘法器,为此首先设计一个加法器,用例化语句调用这个加法器,用移位相加的方式完成乘法。并以此项设计为基础,使用GENERIC参数传递的功能,设计一个 16 位乘法器。-3-13 4 位移位相加型乘法器设计 (例化调用加法器 )LIBRARY IEEE;USE USE USE ENTITY MULT4B ISGENERIC( S: INTEGER:=4);-定义参数S
36、为整数类型,且等于 4PORT( 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 ISCOMPONENT addern ISPORT(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,R
37、R0,ZZ1,ZZ0: STD_LOGIC_VECTOR(2*S-1 DOWNTO 0); BEGINA0=CONV_STD_LOGIC_VECTOR(0,S) & A;PROCESS(A,B)BEGINIF(B(0)=1)THEN RR0=TO_STDLOGICVECTOR(TO_BITVECTOR(A0) SLL 0);ELSE RR00);END IF;IF(B(1)=1)THEN RR1=TO_STDLOGICVECTOR(TO_BITVECTOR(A0) SLL 1);ELSE RR10);END IF;IF(B(2)=1)THEN RR2=TO_STDLOGICVECTOR(TO_
38、BITVECTOR(A0) SLL 2);ELSE RR20);END IF;IF(B(3)=1)THEN RR3=TO_STDLOGICVECTOR(TO_BITVECTOR(A0) SLL 3);ELSE RR30);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-13a16位乘法器(通过底层3-
39、13_MULTSE和顶层GENERIC参数和传递例化语句实现)LIBRARY IEEE;USE ENTITY MULT16B ISPORT(D1,D2: IN STD_LOGIC_VECTOR(15 DOWNTO 0); Q: OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END;ARCHITECTURE BHV OF MULT16B ISGENERIC(S: integer); -PORT(R: OUT std_logic_vector(2*S-1 DOWNTO 0);A,B: IN std_logic_vector(S-1 DOWNTO 0); END COMPONE
40、NT ;BEGINCOMPONENT MULTSB-MULTS8模块勺调用声明照抄MULTS除体中关于参数“端口”定义的语句u1: MULTSB GENERIC MAP(S=16) PORT MAP(R=Q,A=D1,B=D2); END;3-14 用循环语句设计一个 7 人投票表决器。4位 4输出最大数值检测电路。- 解: 3-14 用循环语句设计一个 7 人投票表决器,及一个LIBRARY IEEE;USE USE ENTITY vote_7 IS0: 不同意 )PORT( DIN: IN STD_LOGIC_VECTOR(6 DOWNTO 0);-7 位表决输入 (1: 同意,超过半数指
41、示表决结果统计数G_4: OUT STD_LOGIC;-CNTH: OUT STD_LOGIC_VECTOR(2 DOWNTO 0);- END vote_7;ARCHITECTURE BHV OF vote_7 ISBEGINPROCESS(DIN)Q:=000;FOR n IN 0 TO 6 LOOP - nVARIABLE Q: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN是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 P
42、ROCESS;END BHV;3-15 设计一个 4位4输入最大数值检测电路。-3-15 设计一个 4位 4输入最大数值检测电路。 LIBRARY IEEE;USE USE USE ENTITY MAXDATA ISPORT(A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);MAXOUT: OUT STD_LOGIC);END ENTITY MAXDATA;ARCHITECTURE ONE OF MAXDATA ISBEGINPROCESS(A)BEGINIF A=1111 THEN MAXOUT=1;ELSE MAXOUT=0;END IF;END PROCESS;END
43、 ARCHITECTURE ONE;并分别将并分别将3-16 设计VHDL程序,实现两个8位二进制数相加, 然后将和左移或右移 4位, 移位后的值存入变量 AA和BB中。-3-16 设计VHDL程序,实现两个8位二进制数相加, 然后将和左移或右移 4位, 移位后的值存入变量 A和B中。LIBRARY IEEE;USE USE USE ENTITY ADDER8B ISGENERIC(S: INTEGER:=8); -定义参数 S 为整数类型,且等于 4PORT(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 ISBEGINPROCESS(A,B,CIN)VARIABLE S1: ST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 窝工补偿协议书
- 用水纠纷协议书
- 道路修护协议书
- 母亲出车祸调解协议书
- 委托加工面膜厂协议书
- 股权咨询协议书
- 红酒赞助协议书
- 苗木嫁接协议书
- 用电负荷协议书
- 船员委培协议书
- 2025年企业合规管理工作计划范文
- 施工安全常识试题及答案
- 2025届湖北省T8联盟压轴卷1英语试题
- 泳池负责人试题及答案
- 《企业数据中心网络架构》课件
- 2025新版工程咨询合同
- 2025年江西九江市赣鄱砂业集团有限公司招聘笔试参考题库含答案解析
- 企业破产重组法律顾问协议
- 2025年高考政治三轮复习:统编版必修二《经济与社会》主观题专题练习题(含答案)
- DB11∕T1478-2024生产经营单位安全生产风险评估与管控
- 土方外运的施工方案
评论
0/150
提交评论