一位全减器的VHDL设计

合集下载

【设计】一位二进制全减器设计

【设计】一位二进制全减器设计

【关键字】设计南昌大学实验报告学生姓名:学号:89 专业班级:电子081实验类型:□ 验证□ 综合设计□ 创新实验日期:实验成绩:实验一1位二进制全减器设计一、实验目的1)熟悉实验设备和软件,掌握Quartus II 的VHDL文本设计及原理图设计全过程;2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件尝试结果;二、实验内容与要求1)完成一位二进制全减器的设计,用LED显示输出结果;2)用分层设计的方法设计,顶层为全减器(文本输入法),底层为半减器(原理图输入法)和逻辑门组成;3)自行完成设计与仿真、波形分析、下载与硬件尝试等全过程,验证设计是否正确;三、设计思路/原理图首先根据一位二进制半减器运行原理,列出半减器真值表(如图一所示),并由真值表设计出半减器原理图(如图二),根据全减器真值表(图三)可用两个半减器和一个或门组成一位二进制全减器。

a b so co0 0 0 00 1 1 11 0 1 01 1 0 0图一半减器真值表a b c cout sub0 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图三全减器真值表图四由半减器组成的全减器原理图四、实验程序(顶层程序参考EDA教材88页一位二进制全加器顶层文本设计)底层(原理图输入)半加器连接图:定义或门:顶层(文本输入)LIBRARY IEEE; --1位二进制全减器顶层描述USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_m IS --定义f_m实体PORT (ain,bin,cin :IN STD_LOGIC;cout,sub:OUT STD_LOGIC);END ENTITY f_m;ARCHITECTURE one OF f_m IS --描述结构体COMPONENT h_m --定义h_m各引脚PORT ( a,b : IN STD_LOGIC ;co,so : OUT STD_LOGIC) ;END COMPONENT ;COMPONENT or2a --定义or2a各引脚PORT (a,b : IN STD_LOGIC;c : OUT STD_LOGIC) ;END COMPONENT ;SIGNAL d,e,f : STD_LOGIC ; --定义信号d,e,f的类型BEGIN --描述底层各元件的连接u1 : h_m PORT MAP (a=>ain, b=>bin, co=>d, so=>e) ;u2 : h_m PORT MAP (a=>e, b=>cin, co=>f, so=>sub);u3 : or2a PORT MAP (a=>d, b=>f, c=>cout);END ARCHITECTURE one ; --结束结构体描述五、实验步骤1.建立工作库文件夹和编辑设计文件1)在D盘新建立一个文件夹命名为f_m,选择ACEX1K芯片,保存下面的工程文件;2)打开quartus II,选择菜单File→New→Block diagram/schematic file,点击OK,输入半减器原理图,保存为h_m.bdf并选择菜单file→create/update→createVHDL component declaration files for current file2.选择菜单File→New→Block diagram/schematic file,点击OK,定义或门,保存为or2a.bdf并选择菜单file→create/update→create VHDL component declarati on filesfor current file3.选择菜单File→New→VHDL file,点击OK后在打开的界面下输入已设计的程序,保存为f_m.vhd;4.对f_m.vhd进行编译5.创建仿真文件f_m.vwf,将所有引脚拉入仿真文件,设定end time以及ain,bin,cin输入值,进行仿真6.选择assignments→pins 设置各引脚,并编译;7.下载程序,验证实验结果;六、仿真波形分析下图为实验所得的波形图:a b c d e f g h i区间ain bin cin cout sub LED6 LED5 a-b 0 0 0 0 0 灭灭b-c 0 0 1 1 1 亮亮c-d 0 1 0 1 1 亮亮d-e 0 1 1 1 0 亮灭e-f 1 0 0 0 1 灭亮f-g 1 0 1 0 0 灭灭g-h 1 1 0 0 0 灭灭h-i 1 1 1 1 1 亮亮借位情况,cout为本位输出,sub为向上借位的值,由上表可知,仿真结果与理论值(全减器真值表)一致,故仿真成功。

EDA技术实用教程-VHDL版课后答案

EDA技术实用教程-VHDL版课后答案

第一章1-1 EDA技术与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的配置网表文件,可称为版图综合或结构综合。

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

EDA实训资料1·全加器&全减器程序

EDA实训资料1·全加器&全减器程序

给出1位全减器的VHDL描述。

首先设计1位半减器,然后用例化语句将它们连接起来底层文件半减器(h_suber)程序设计:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_suber ISPORT ( x , y : IN STD_LOGIC;diff , s_out : OUT STD_LOGIC ) ;END ENTITY h_suber;ARCHITECTURE fh1 OF h_suber ISSIGNAL abc : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ;BEGINabc <= x & y ;PROCESS ( abc )BEGINCASE abc 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 OTHER => NULL ;END CASE;END PROCESS;END ARCHITECTURE fh1 ;底层文件或门(or2a)程序设计:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.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;根据连接图,顶层文件全减器(f_suber)程序设计:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_suber ISPORT ( xin , yin , sub_in : IN STD_LOGIC;diffout , sub_out : OUT STD_LOGIC ) ;END ENTITY f_suber;ARCHITECTURE fd1 OF f_suber ISCOMPONENT h_suberPORT ( 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_suber PORT MAP ( x => xin , y => yin , diff => d , s_out => e );u2 : h_suber PORT MAP ( x => d , y => sub_in , diff => diffout , s_out => f ); u3 : or2a PORT MAP ( a => f , b => e , c => sub_out );END ARCHITECTURE fd1;全加器程序参照自动化同学课本,原理与全减器类似。

用VHDL结构描述设计一全减器

用VHDL结构描述设计一全减器

下面再将或门的VHDL程序描述如下:
ENTITY orgate IS PORT(A1,B1:IN BIT; O1:OUT BIT); END orgate;
ARCHITECTURE orgate_arc OF orgate IS BEGIN O1<= A1 OR B1; END orgate_arc;
I1 I2
U0 halfsub
temp_T
ห้องสมุดไป่ตู้
U1
FT
C_OUT
BEGIN U0:halfsub PORT MAP(I1,I2,temp_T,temp_c1); U1:halfsub PORT MAP(temp_T,C_IN,FT,temp_c2); U2:orgate PORT MAP(temp_c1,temp_c2,C_OUT); END fullsub_arc; 图中虚线框各元件之间 halfsub 的连线命名。temp_T将第一 temp_c2 个半减器的差位输出连到第 C_IN 二个半减器的输入端。信号 temp_c1 temp_c1将第一个半减器的借 U2 位输出连至“或”门的一个输入 端,信号temp_c2将第二个半 减器的借位输出连至“或”门的 另一个输入端。 用三个元件调用语句定义这三个连接关系。
用VHDL结构描述设计一全减器,全减器可由两个 半减器和一个或门组成。
I1 I2 C_IN
U0 temp_T U1 FT halfsub halfsub temp_c2 temp_c1 U2 C_OUT
首先用VHDL的行为描述设计半减器:
ENTITY halfsub IS PORT(A,B:IN BIT; T,C:OUT BIT); END halfsub; ARCHITECTURE halfsub_arc OF halfsub IS BEGIN PROCESS(A,B) BEGIN T<= A XOR B AFTER 10 ns; C <= (NOT A) AND B AFTER 10 ns; END PROCESS; END halfsub_arc;

vhdl 四输入表决器 二位二进制乘法器 一位二进制全减器等源代码及仿真波形

vhdl 四输入表决器 二位二进制乘法器 一位二进制全减器等源代码及仿真波形

将8421BCD转换为余3码源代码:Library ieee;Use ieee.std_logic_1164.all;Entity bcd isPort(a:in std_logic_vector(3 downto 0);y:out std_logic_vector(3 downto 0));End;Architecture rtl of bcd isBeginProcess(a)BeginCase a isWhen"0000"=>y<="0011";When"0001"=>y<="0100";When"0010"=>y<="0101";When"0011"=>y<="0110";When"0100"=>y<="0111";When"0101"=>y<="1000";When"0110"=>y<="1001";When"0111"=>y<="1010";When"1000"=>y<="1011";When"1001"=>y<="1100";When others=>y<="ZZZZ";End case;End process;End;仿真图形:(仿真结果均有延时,大约20ns)四输入表决器源代码:Library ieee;Use ieee.std_logic_1164.all;Entity bjq isPort(i:in std_logic_vector(3 downto 0);f:out std_logic);End;Architecture nm2 of bjq isBeginProcess(i)Begincase i isWhen"0000"=>f<='0';When"0001"=>f<='0';When"0010"=>f<='0';When"0011"=>f<='0';When"0100"=>f<='0';When"0101"=>f<='0';When"0110"=>f<='0';When"0111"=>f<='1';When"1000"=>f<='0';When"1001"=>f<='0';When"1010"=>f<='0';When"1011"=>f<='1';When"1100"=>f<='0';When"1101"=>f<='1';When"1110"=>f<='1';When"1111"=>f<='1';When others=>f<='Z';End case;End process;End;仿真图形:2位二进制相乘电路源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity multi isport(A,B:in std_logic_vector(1 downto 0);F:out std_logic_vector(3 downto 0));end;architecture bhv of multi isbeginprocess(A,B)beginif(A="01" and B="01" )thenF<="0001";elsif(A="01" and B="10")thenF<="0010";elsif(A="01" and B="11")thenF<="0011";elsif(A="10" and B="01")thenF<="0010";elsif(A="10" and B="10")thenF<="0100";elsif(A="10" and B="11")thenF<="0110";elsif(A="11" and B="01")thenF<="0011";elsif(A="11" and B="10")thenF<="0110";elsif(A="11" and B="11")thenF<="1001";elseF<="0000";end if;end process;end;仿真图形:一位二进制全减器源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subtracter isport(A,B,Ci:in std_logic;F,Co:out std_logic);end;architecture bhv of subtracter isbeginprocess(A,B,Ci)beginif(A='0' and B='0' and Ci='0')thenF<='0';Co<='0';elsif(A='0' and B='0' and Ci='1')thenF<='1';Co<='1';elsif(A='0' and B='1' and Ci='0')thenF<='1';Co<='1';elsif(A='0' and B='1' and Ci='1')thenF<='0';Co<='1';elsif(A='1' and B='0' and Ci='0')thenF<='1';Co<='0';elsif(A='1' and B='0' and Ci='1')thenF<='0';Co<='0';elsif(A='1' and B='1' and Ci='0')thenF<='0';Co<='0';elseF<='1';Co<='1';end if;end process;end;仿真图形:开关控制电路源代码:Library ieee;Use ieee.std_logic_1164.all;Entity switch_control isPort(a,b,c:in std_logic;y:out std_logic);End;Architecture nm5 of switch_control isBeginProcess(a,b,c);V ariable comb:std_logic_vector(2 downto 0);BeginComb:=a&b&c;Case comb isWhen"000"=>y<='0';When"001"=>y<='1';When"011"=>y<='0';When"010"=>y<='1';When"110"=>y<='0';When"111"=>y<='1';When"101"=>y<='0';When"100"=>y<='1';When others=>y<='X';End case;End process;End;仿真图形:。

VHDL之一位全减器

VHDL之一位全减器

一位全减器实验实验目的:1.首先设计一位半减器,然后设计出半减器,diff是输出差,s_out是借位输出,sub_in是借位输入。

半减器的实验程序为:library ieee;use ieee.std_logic_1164.all;entity h_suber isport (x,y : in std_logic;diff,s_out : out std_logic);end h_suber ;architecture hdlarch of h_suber isbeginprocess(x,y)begindiff <= x xor y;s_out <= (not x) and y;end process;end hdlarch;2.以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr)。

以一位半减器为实体,生成器件,连接如下图的电路,使之构成以为全减器实验仿真波形:四位全减器实验1.实验原理:(1)利用前面设计的全减器(一位全减器)生成元件;(2)建立新的原理图,完成4位全减器的设计;(3)进行波形仿真验证;2.实验仿真波形图:7段数码显示译码器设计1、实验目的:学习7段数码显示译码器设计、多层次设计方法、和总线数据输入方式的仿真,并进行电路板下载验证。

2、实验原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA 或CPLD中实现。

本项实验很容易实现这一目的。

例2作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如实验图2数码管的7个段,高位在左,低位在右。

例如当LED7S 输出为 "1101101" 时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示“5”。

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

EDA技术与Verilog_HDL(潘松)第四章课后习题答案
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
0110 Nhomakorabea0
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
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

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

《EDA技术实用教程》习题解答

《EDA技术实用教程》习题解答
y => b(i), sub_in => stmp(i), diffr => c(i), sub_out => stmp(i+1)); end generate ; end;
习题 5-6 根据图 5-23,写出顶层文件 MX3256.VHD 的 VHDL 设计文件。
第 1 章 概述
9
图 5-21 习题 5-4 图
解: VHDL 设计文件内容如下:
library ieee; use ieee.std_logic_1164.all;
entity exen is
port ( cl
: in std_logic;
clk0 : in std_logic;
out1 );
: out std_logic
out1 <= not tmp; end hdlarch; ⊕习题 5-5 给出 1 位全减器的 VHDL 描述。要求: (1) 首先设计 1 位半减器,然后用例化语句将它们连接起来,图 5-22 中 h_suber 是半减器,diffr 是输出差, s_out 是借位输出,sub_in 是借位输入。
解:
图 5-19 4 选 1 多路选择器
图 5-20 双 2 选 1 多路选择器
architecture hdlarch of MUXK is
signal tmp : std_logic;
begin
process(s0,a2,a3) begin
if s0 = '0' then
tmp <= a2;
else
解:用同步计数器来实现。(事实上要求设计的是一个袼雷码计数器)
考虑不同状态时,对应的 DFF 输入端的值:

《EDA技术及应用》朱正伟-三,四,五章部分课后题答案

《EDA技术及应用》朱正伟-三,四,五章部分课后题答案

第三章3-5设计一个4选1多路选择器,当选择输入信号分别取“00”、“01”、“10”和“11”时,输出信号分别与一路输入信号相连。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MAX4_1 ISPORT(A,B,C,D,S1,S2 : IN STD_LOGIC;Y : OUT STD_LOGIC);END ENTITY MAX4_1;ARCHITECTURE HF1 OF MAX4_1 ISSIGNAL SS : STD_LOGIC_VECTOR (0 TO 1);BEGINSS<=S2&S1;PROCESS(SS)BEGINCASE SS ISWHEN "00" => Y<=A;WHEN "01" => Y<=B;WHEN "10" => Y<=C;WHEN "11" => Y<=D;WHEN OTHERS => NULL;END CASE;END PROCESS;END HF1;3-6设计一个7人表决电路,参加表决者7人,同意为1,不同意为0,同意者过半则表决通过,绿指示灯亮;表决不通过则红指示灯亮。

设计思路:根据7人表决电路设计要求,7人中至少有4个通过才可以表决通过,故可以在程序中设置一个变量TEMP,使其在表决电路中遇1则加1,遇0则加0(设计中1表示通过,0表示不通过)。

当TEMP>=4时,表示表决通过,当TEMP<4时表决不通过。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY VOTE7 ISPORT (MEN:IN STD_LOGIC_VECTOR(6 DOWNTO 0);OUTPUT: OUT BIT);END VOTE7;ARCHITECTURE BEHA VE OF VOTE7 ISBEGINPROCESS(MEN)V ARIABLE TEMP: INTEGER RANGE 0 TO 7;BEGINTEMP:=0;FOR I IN 0 TO 6 LOOPIF(MEN(I)='1')THENTEMP:=TEMP+1;ELSETEMP:=TEMP;END IF;END LOOP;CASE TEMP ISWHEN 0 TO 3 =>OUTPUT<='0';WHEN 4 TO 7 =>OUTPUT<='1';END CASE ;END PROCESS;END BEHA VE;第四章4-6试写出4选1多路选择器VHDL描述。

VHDL-实验

VHDL-实验

计算机科学与技术学院实验报告(学年度第学期)课程名称EDA技术实验姓名学号专业计算机班级地点教师实验一:八位二进制补码一.实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握八位二进制补码的VHDL设计;3.元件例化语句的使用。

二.实验原理若原码为正,则补码等于原码;若原码为负,则补码为(2+原码)mod2。

三.八位二进制补码程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JACKAN ISPORT(rst:IN STD_LOGIC;din:IN STD_LOGIC_VECTOR(7 DOWNTO 0);dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY JACKAN;ARCHITECTURE HAIXIA OF JACKAN ISSIGNAL tmp:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(din,rst)BEGINIF rst='0' THENdout<=(OTHERS=>'0');ELSIF din(7) ='1' THENFOR i IN 0 TO 6 LOOPtmp(i)<=NOT din(i);END LOOP;dout(6 DOWNTO 0) <= tmp+1;dout(7) <= din(7);ELSEdout<= din;END IF;END PROCESS;END ARCHITECTURE HAIXIA;四.实验结果五.总结8位二进制补码:寄存器主要用来存储8位二进制数据。

高8位为符号位,不进行求反运算。

余下7位根据高8位的数据状态进行相应操作。

实验二.一位全减器的VHDL设计一. 实验目的1.熟悉Max+PlusII和GW48EDA开发系统的使用;2.掌握一位半减器的VHDL设计;3.掌握一位半减器构建一位全减器的方法;二.实验原理由两个半减器和一个或门构成一个全减器。

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

第3章 组合电路的VHDL设计(四)—习题说课讲解

第3章 组合电路的VHDL设计(四)—习题说课讲解
串行借位的 8 位减法器
习题
3-5 用VHDL设计一个3-8译码器,要求分别用(条件)赋值语句、case语句、 if else语句或移位操作符来完成。比较这4种方式中,哪一种最节省逻辑资源。 (1)case语句实现:
习题
3-5 用VHDL设计一个3-8译码器,要求分别用(条件)赋值语句、case语句、 if else语句或移位操作符来完成。比较这4种方式中,哪一种最节省逻辑资源。 (2)if_else语句实现:
x7 xin sub_out sout
y7 yin u7
sub_in diff_out diff7 a6 ……………….
………………. a1
x1 xin sub_out
y1 yin u1
sub_in diff_out diff1 a0
x0 xin sub_out
y0 yin u0
sin sub_in diff_out diff0
习题
3-4 给出1位全减器的VHDL描述;最终实现8位全减器。要求: (2)采用例化语句实现1位全减器。
习题
3-4 给出1位全减器的VHDL描述;最终实现8位全减器。要求: (3)以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来 完成此项设计(减法运算是x-y-sun_in=difft)
习题
3-2 画出与以下实体描述对应的原理图符号元件。
buf3s
input
output
enable
mux21 in0
output in1
sel
习题
3-4 给出1位全减器的VHDL描述;最终实现8位全减器。要求:
习全减器。要求: (1)首先设计1位半减器,然后用例化语句将它们连接起来,图3-18中h_suber 是半减器,diff是输出差(diff=x-y),s_out是借位输出(s_out=1,x<y),sub_in是借 位输入。

EDA技术实用教程--VHDL版本(第五版)潘松课后习题答案

EDA技术实用教程--VHDL版本(第五版)潘松课后习题答案

《EDA技术实用教程(第五版)》习题1 习题1-1EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?P3~4EDA技术与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),即从行为域到结构域的综合,即行为综合。

VHDL习题1

VHDL习题1

4-5.给出1位全减器的VHDL描述。

要求:(1) 首先设计1位半减器,然后用例化语句将它们连接起来,图3-32中h_suber是半减器,diff是输出差,s_out 是借位输出,sub_in是借位输入。

(2) 以1位全减器为基本硬件,构成串行借位的8位减法器,要求用例化语句来完成此项设计(减法运算是 x – y - sun_in = diffr)底层文件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 ISCOMPONENT 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;一、单项选择题:(20分)1. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL 等硬件描述语言描述的功能块,但不涉及实现该功能块的具体电路的IP核为D 。

实验二1位全加器的设计(VHDL)

实验二1位全加器的设计(VHDL)

实验二1位全加器的设计(VHDL)
实验二1位全加器的设计(VHDL)
一、实验目的
1、掌握MAX+PLUSII 10.2软件的使用流程。

2、掌握设计文本输入方法。

3、熟悉ZY11EDA13BE型实验箱的开关按键模块,LED显示模块。

二、实验内容
在MAX+PLUSII 10.2软件中使用文本输入方法设计并实现一个1位全加器。

三、实验仪器
1、ZY11EDA13BE型实验箱通用编程模块,配置模块,开关按键模块,LED显示模块。

2、并口延长线,JTAG延长线。

3、安装MAX+PLUSII 10.2软件的PC机。

四、实验原理
根据实验一的全加器原理,用VHDL分别描述半加器和或门,使用元件例化语句实现全加器的描述。

五、实验注意事项:
实验指导书中所有实验内容都是针对主板系统的核心芯片EP1K30QC208-2来设计的,实验原理中提供了管脚分配情况,管脚分配好后必须通过成功编译才可以下载配置。

六、实验步骤:
步骤1:为本项工程设计建立文件夹。

步骤2:输入设计项目原理图,并存盘。

步骤3:将设计项目设置成工程文件:
步骤4:选择目标器件并编译
步骤5:时序仿真
步骤6:创建默认的逻辑符号:选莱单File\Create Default Symbol(只在底层设计中使用)。

步骤7:引脚锁定
步骤8:连接设备:
步骤9:下载配置文件到目标芯片。

步骤10:逻辑验证
七、实验报告
1、列出半加器和全加器的真值表。

2、列举出不同方式的VHDL1位全加器的描述。

一位全减器实验报告材料资料

一位全减器实验报告材料资料

Xx大学实验报告学生姓名:学号: 6100208099 专业班级:实验类型:□验证□综合□设计□创新实验日期: 实验成绩:实验一一位二进制全减器的设计一、实验目的(1)掌握Quartus II 的VHDL 文本设计的全过程;熟练和掌握EDA设计流程;熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求用文本方法实现半减器,再利用半减器完成全减器的设计,熟悉层次设计概念;给出此项设计的仿真波形;用发光管指示显示结果。

三、设计原理(表中Diff表示本位向高位的借位,S_out表示本位)(表中Sub_in表示低位向本位的借位,diffr表示本位输出,Sub_out表示本位向高位借位)四、实验程序(1)对半减器进行描述:(独立编写)library ieee;use ieee.std_logic_1164.all;entity h_suber isport(x,y:in std_logic;diff,s_out:out std_logic);end entity h_suber;architecture one of h_suber isbegindiff<=x xor y;s_out<=(not x)and y;end architecture one;(2)对全减器进行原理图编辑:五、实验步骤1.建立工作库文件夹和编辑设计文件(1)打开QuartusII,按提示在D盘下建立一个工程文件夹;(2)建立新的VHDL文件,再打开的页面下输入半减器描述语言。

2.编译过程(1)输入完程序之后选择“保存”,然后processing—analyze current files进行语法检查和分析。

(2)逐个编译无错之后进行全程编译processing—start—compilation。

3.系统仿真(1)建立新的波形文件(2)在波形编辑器窗口添加节点(3)通过Edit->End Time 来设定仿真结束时间(4)点击save保存(5)通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。

实验一:一位二进制全减器设计

实验一:一位二进制全减器设计

南昌大学实验报告学生姓名:刘志强学号: 6100409222 专业班级:电子091班实验类型:验证□综合□设计■创新□实验日期:实验成绩:实验一一位二进制全减器设计一、实验目的(1)掌握QuartusII的VHDL原理图设计和文本设计全过程;(2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。

二、实验内容与要求(1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成;(2)进行波形仿真,并分析仿真波形图;(3)下载测试全减法器是否正确。

三、设计思路/原理图一位全减器可以由两个半减器和一个或门连接而成,根据半减器真值表对半减器进行描述,再对或门的VHDL描述,而后根据原理图对全减器的VHDL描述。

图1 全减器f_suber电路图四、实验程序(程序来源:教科书本)library ieee; --半减器描述use ieee.std_logic_1164.all;entity h_suber is --定义半减器h_suber实体port(a,b:in std_logic;do,vo:out std_logic);end entity h_suber;architecture fs1 of h_suber issignal abc:std_logic_vector (1 downto 0);beginabc <= a&b ;process (abc)begincase abc iswhen "00" => do<='0';vo<='0';when "01" => do<='1';vo<='1';when "10" => do<='1';vo<='0';when "11" => do<='0';vo<='0';when others => null;end case;end process;end architecture fs1;library ieee; --一位二进制全减器顶层设计描述use ieee.std_logic_1164.all;entity f_suber is --定义全减器f_suber实体port (ain,bin,cin:in std_logic;v,sub:out std_logic);end entity f_suber;architecture fs of f_suber iscomponent h_suber ---调用半减器声明语句port (a,b:in std_logic;do,vo:out std_logic);end component;component or2a --调用或逻辑门声明语句port (m,n:in std_logic;h:out std_logic);end component;signal e,f,g:std_logic; ---定义3个信号作为内部的连接线beginu1:h_suber port map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句u2:h_suber port map(a=>e,b=>cin,do=>sub,vo=>g);u3:or2a port map(m=>g,n=>f,h=>v);end architecture fs;五、实验步骤1. 利用Quartus II 7.2建立工程在file中打开【】→【】→在【】中选择存放的目录→【】f_suber要与顶层文件中entity f_suber相同→点击next→点击next→选择芯片→next完成;再在file下面点【】→【】→点击ok→编写程序→编译并保存在f_suber文件中(改动程序后,再保存,再编译)→管脚【】→【】→而后对芯片设置,即打开device→点【】→点【】与【】→选如【】与【】→选芯片→确定ok ;重新编译→点下载,后选【】硬件有“JTAG【】”和“ASP【】手动添加以扩展名为.pof的文件【】”两个接口其一(要看硬件接口),选中【】”→添加【】中的驱动程序→【】→点【】开始下载。

VHDL上机实验讲义

VHDL上机实验讲义

3
VHDL 硬件描述语言
实验讲义
图 1-5 7. 下面我们开始仿真,点击菜单 Simulate->Simulate,会出现如图 1-6 所示的 界面,我们展开 Design 选项卡下的 work 库,并选中其中的 behavioral,这 是在 Simulate 中出现了 work.divclk1(behavioral)表示我们所要仿真的对 象,Resolution 为仿真的时间精度,这里我们使用默认值(默认是 ps,可以根 据实际需要修改为其它值),点击 OK。
书写1位全减器的行为风格vhdl模型确定输出diff和bout的布尔函数写出1位全减器的数据流风格vhdl模型位半减器和或门作为元件写出1位全减器的结构模型位全减器作为元件设计n位全减器表52位全减器的真值表输入输出binboutdiffdiff图53位全减器的逻辑图boutbin练习四如图54所示的简单计数器只包含t触发器和与门但最低位单元及最高位单元与其他基本单元之间有所差别
6
VHDL 硬件描述语言
实验讲义
SIGNAL divclk : std_logic; BEGIN uut: divclk1 PORT MAP( clk => clk, divclk => divclk ); clk<= not clk after 10 ns; END; 注意到待测模块是 Testbench 中的一个元件(component),clk 信号的激励是通过 “clk<= not clk after 10 ns;”这条语句产生的周期为 20ns 的方波,如果想产生不 规则的任意信号,可以仿照“a<=1, 2 after 5 ns, 4 after 10 ns;”来生成。 具体仿真步骤与步骤一的很类似,这里简单列出关键步骤如下: 1. 在 Modelsim 中新建一个工程, 或者直接利用步骤一中的工程, 将上述 Testbench 代码添加到原工程中,即 File->New->Source->VHDL,输入源代码后保存。 2. 编译整个工程,即 Compile ->Compile All。如果出错,请改正代码中的错误。 3. 开 始 仿 真 , 即 Simulate->Start Simulation , 注 意 选 择 仿 真 对 象 为 divclk1_tb,即 Testbench 的实体名。 4. 打开波形文件窗口,并添加待观测信号后,在命令窗口输入 run 3us,在波形窗口 可以得到仿真的波形,添加光标线并调整大小后可以得到图 1-10 所示的波形。经 过验证,仿真结果与设计要求一致。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一位全减器的VHDL设计
理工学院03电信(2)班黄金凤 030303074
一.实验目的
1. 熟悉Max+Plusll和GW48ED开发系统的使用;
2. 掌握一位半减器的VHDL设计;
3. 掌握一位半减器构建一位全减器的方法;
4. 元件例化语句的使用。

二•实验原理
由两个半减器和一个或门构成一个全减器。

首先,一位半减器的逻辑表达式:diff =xyxy=x=y
s_out = xy
表一半减器的真值表
其次,一位全减器的逻辑表达式:
diffr = sub_in ㊉diff
sub_out =s_out +sub_in *diff
表二一位全减器的真值表
根据上述的真值表了解半减器和全减器,并设计出VHDL的程序。

描述半减器的VHDL的程序如下:
ENTITY halfsub IS
PORT(A,B:IN BIT;
T,C:OUT BIT);
END halfsub;
ARCHITECTURE halfsub_arc OF halfsub IS
BEGIN
PROCESS(A,B)
BEGIN
T<= A XOR B AFTER 10 ns;
C <= (NOT A) AN
D B AFTER 10 ns;
描述或门的VHDL 程序如下:
ENTITY orgate IS
PORT(A1,B1:IN BIT;
O1:OUT BIT);
END orgate;
ARCHITECTURE orgate_arc OF orgate IS
BEGIN
O1<= A1 OR B1;
END orgate_arc;
然后设计全减器,以一些中间信号temp_T,temp_c1和temp_c2,将两个半减器,一个或门的端口连接起来形成对 全减器的结构描述。


10-5(b)所示虚线框有各元件之间的连线命名。

下面是全减器的 VHDL 程序描述:
ENTITY fullsub IS
PORT(I1,I2,C_IN:IN BIT;
FT,C_OUT:OUT BIT);
END fullsub;
ARCHITECTURE fullsub_arc OF fullsub IS
SIGNAL temp_T,temp_c1,temp_c2:BIT; COMPONENT halfsub
PORT(A,B:IN BIT; T,C:OUT BIT); END COMPONENT;
COMPONENT orgate
PORT(A1,B1:IN BIT; O1:OUT BIT);
END COMPONENT;
BEGIN
PORT MAP(l1,l2,temp_T,temp_c1); PORT MAP(temp_T,C_IN,FT,temp_c2);
PORT MAP(temp_c1,temp_c2,C_OUT); 其波形图如下:
END PROCESS; END halfsub_arc;
haIfsub
T C
其波形图如下:
Al
El
orgate
01
U0:halfsub U1:halfsub U2:orgate END fullsub_arc;
图10-舀全减器的实体和全减器的结构图
㈤全s 趨符^ (s 全if 揺的绅樹述
三. 实验步骤
1. 打开 Max+Plusll 软件,启动 File/New 菜单命令,选择 Text Editor File ,点击 OK
2.
在空白文件中输入如上的实验原理描述半减器的 VHDL 的程序,并保
存。

3.
在菜单 File/Save As 中键入文件名"halfsub.vhd ” ,点击 OK
4. 启动 Max+Plusll/Compiler, 点击Start,编译结束,按“确定”。

5. 再启动File/New 菜单命令,选择 Text Editor File ,点击OK 在空白文件中输入如上的实验原理描述或门 的VHDL 的程序,并
保存。

6. 在菜单 File/Save As 中键入文件名"orgate.vhd ” ,点击OK
7. 启动 Max+Plusll/Compiler, 点击Start,编译结束,按“确定”。

&启动File/New 菜单命令,选择 Text Editor File ,点击OK 在空白文件中输入如上的实验原理描述全减器 的VHDL 的程序,并保存。

9. 在菜单 File/Save As 中键入文件名"fullsub.vhd ” ,点击 OK
10. 启动 Max+Plusll/Compiler, 点击Start,编译结束,按“确定”。

11. 打开实验箱的电源,并把它和计算机相连。

11.
启动Assign/Device ,选择和实验箱相同的设备名,点击
OK
12.
选用模式5,从PIOO~PIO7选择3个作为输入,从
PIO8~PIO15中选择2个作为输出,根据实验箱配备的实 验书,选择相应的引脚号输入"Assig n/Pin/Locatio n/Chip.. ”中。

13. 启动 File/Project 中的 Set Project to Current File ,再启动 Max+Plusll/Programmer ,点击 Configure 。

14. 根据实验箱相应的数码管的亮暗来判断正确与否。

11
12
C IN
FT
full sub
C_OUT
C IN
FT
II
12
C_OUT
15. 实验结束关闭计算机和实验箱的电源。

四.实验仪器
计算机GW-48 型EDA 实验箱
五.实验总结
本实验是用VHDL的程序来仿真,根据实验箱上数码管的亮暗以达到全减器的功能。

在实验过程中,要特别注意先编译再下载,要把程序的文件名改为和实体名一样的VHD文件才能使程序编译通过;在设置引脚时,要根据
所选的模式,并在软件的引脚输入相应的实验仪的引脚号,引脚号输入一定要正确,才可以验证实验的准确与否;在编译程序时要下载所要运行的实验程序,所选的实验仪器名要正确,即要和所作的实验箱相同;选用模式的不同就要用不同的引脚号。

欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。

相关文档
最新文档