EDA技术实验报告-cumt-2010xinke.doc_第1页
EDA技术实验报告-cumt-2010xinke.doc_第2页
EDA技术实验报告-cumt-2010xinke.doc_第3页
EDA技术实验报告-cumt-2010xinke.doc_第4页
EDA技术实验报告-cumt-2010xinke.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII的层次化设计方法。通过一个4位全加器的设计,熟悉用EDA软件进行电路设计的详细流程。二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的低位进位输入信号cin相接。1位全加器f-adder由2个半加器h-adder和一个或门按照下列电路来实现。ABCOSOABCOSO1ainbincincoutsumh_adderh_adder 半加器h-adder由与门、同或门和非门构成。&1ABCOSOf-adderainbincincoutsumainbincincoutsumainbincincoutsumf-adderf-adderf-adderA1B1A2B2A3B3A4B4ainbincincoutsumCICOS1S2S3S4 四位加法器由4个全加器构成三、实验内容:1. 熟悉QuartusII软件界面,掌握利用原理图进行电路模块设计的方法。QuartusII设计流程见教材第五章:QuartusII应用向导。2.设计1位全加器原理图(1)生成一个新的图形文件(file-new-graphic editor)(2)按照给定的原理图输入逻辑门(symbolenter symbol)(3)根据原理图连接所有逻辑门的端口,并添加输入/输出端口(4)为管脚和节点命名:在管脚上的PIN_NAME处双击鼠标左键,然后输入名字;选中需命名的线,然后输入名字。(5)创建缺省(Default)符号:在 File菜单中选择 Create Symbol Files for Current File 项,即可创建一个设计的符号,该符号可被高层设计调用。3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形文件(file-new-Other Files-Vector Waveform File),保存后进行仿真(Processing -Start Simulation),对4位全加器进行时序仿真。给出波形图,并分析仿真结果是否正确。1位半加器:原理图:仿真波形:1位全加器:原理图:仿真波形:4位全加器:原理图:仿真波形:4位全加器仿真结果正确:例:0011(A)+0111(B)+0(CI)结果为1010(S),进位CO为0。5思考 如何在原理图中输入一个总线,并与其他总线连接?先选中细线,然后右击,选”bus line”,总线是以粗线条表示。与其他总线连接:例如一根8位的总线 bus17.0欲与另三根分别为1、3、4个位宽的连线相接,则它们的标号可分别表示为bus10,bus13.1,bus17.4。实验二 简单组合电路的设计一、实验目的:熟悉QuartusII VHDL文本设计流程全过程。学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。二、实验原理VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE),本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合QuartusII环境和实验电路进行硬件测试。三、实验内容:1) 根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。设计完成后,利用QuartusII集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。2) 用VHDL语言设计一个四选一数据选择器电路。要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。3)硬件测试(选用器件 EPF10K10 Pin84)管脚锁定:1)一位全加器 a PIO23(I/O19) 30 SW1 b PIO24(I/O20) 35 SW2 ci PIO25(I/O21) 36 SW3 s PIO21(I/O16) 27 LED10 co PIO19(I/O8) 29 LED122)四选一数据选择器 a1 PIO23 30 SW1a0 PIO24 35 SW2d3 PIO27 38 SW5d2 PIO28 39 SW6d1 PIO29 47 SW7d0 PIO30 42 SW8yout 29 LED12四、思考题比较原理图输入法和文本输入法的优缺点。实验结果:一位全加器的VHDL描述:半加器的VHDL描述:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder ISBEGINso =NOT (a XOR (NOT b);co=a AND b;END ARCHITECTURE fh1;或门的VHDL描述: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 ain,b=bin,co=d,so=e);u2:h_adder PORT MAP(a=e,b=cin,co=f,so=sum);u3: or2a PORT MAP(a=d,b=f,c=cout);END ARCHITECTURE fd1;仿真波形:硬件测试结果及分析:ainPIN_233 SW1binPIN_234 SW2cinPIN_235 SW3coutPIN_1 LED1sumPIN_2 LED2SW1SW2SW3LED1LED2000暗暗001暗亮010暗亮011亮暗100暗亮101亮暗110亮暗111亮亮得结果正确。四选一数据选择器的VHDL描述:二选一数据选择器的VHDL描述:ENTITY mux21a ISPORT (a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINyd0,b=d2,s=a1,y=e);u2:mux21a port map(a=d1,b=d3,s=a1,y=f);u3:mux21a port map(a=e,b=f,s=a0,y=yout);end architecture fd1;仿真波形:硬件测试结果及分析:a1 PIN_233 SW1a0 PIN_234 SW2d0 PIN_235 SW3d1 PIN_236 SW4d2 PIN_237 SW5d3 PIN_238 SW6yout PIN_1 LED1SW1SW2SW3SW4SW5SW6LED1001000亮010100亮100100暗110001亮此结果正确。回答问题:原理图输入法的优点:1. 设计者进行电子线路设计不需要增加新的相关知识;2. 设计过程形象直观;3. 由于设计方式接近于底层电路布局,因此易于控制逻辑资源的耗用。原理图输入法的缺点:1. 图形文件兼容性差;2. 随着电路设计规模的扩大,原理图输入描述方式必然引起一系列难以克服的困难,如电路功能原理的易读性下降,错误排查困难,整体调整和结构升级困难等;3. 由于图形文件的不兼容性,性能优秀的电路模块的移植和再利用十分困难;4. 由于在原理图中已确定了设计系统的基本电路结构和元件,留给综合器和适配器的优化选择的空间已十分有限,因此难以实现用户所希望的面积,速度以及不同风格的综合优化;5. 在设计中,由于必须直接面对硬件模块的选用,因此行为模型的建立将无从谈起,从而无法实现真实意义上的自顶向下的设计方案。但是HDL文本输入的设计方法,基本上克服了用原理图输入法存在的所有弊端,所以HDL输入设计仍然是最基本、最有效和通用的输入方法。实验三简单时序电路的设计一、实验目的:熟悉QuartusII的VHDL文本设计过程,学习简单时序电路的设计、仿真和硬件测试。二、实验原理时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的90以上。触发器是时序电路的基本单元,本实验中将涉及到边沿触发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。三、 实验内容1) 设计一个上升沿触发的D触发器输入:D输出:Q触发时钟:CLK2) 设计同步/异步清零D触发器触发器有两种清零方式:同步当触发沿到来时,若清零信号有效,则实现清零;异步任何时候清零信号一旦有效,触发器马上清零,而不论触发沿是否到来。在以上设计的D触发器基础上,加入清零端rst,分别实现同步和异步清零方式。3) 设计一个高电平有效的锁存器输入:D输出:Q触发:E电平触发的锁存器与沿触发的触发器不同之处在于当触发端处于有效电平时,输出等于输出,随输入变化;触发端无效时输出保持不变。4) 在QuartusII环境下对以上设计的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。管脚锁定:D PIO23 30 SW1CLK CLK1 43 频率源(35 SW2)Q PIO19 29 LED12四、 问题1)在本次实验中你使用的VHDL描述方式是和实验二中一样的结构化描述还是行为级描述?这两种方式描述的编译出来的仿真结果是否相同?2)请在试验报告中分析和比较1)和3)的仿真和实测结果,说明两者之间的异同点。实验结果:上升沿触发的D触发器的VHDL描述:library ieee;use ieee.std_logic_1164.all;entity d is port(CLK:in std_logic;D:in std_logic;Q:out std_logic);end;architecture bhv of d issignal q1:std_logic;beginprocess(CLK,q1)beginif CLKevent and CLK=1then q1=D;end if;end process;Q=q1;end bhv;仿真波形:硬件测试结果及分析:CLK PIN_233 SW1D PIN_234 SW2Q PIN_1 LED1若SW2为1,当按下SW1时,LED1亮,此时若让SW2为0,再按下SW1,则LED1灭。可知:当CLK上升沿到来时,输出Q就是D值。故结果正确。设计同步/异步清零D触发器的VHDL描述:同步清零D触发器的VHDL描述:library ieee;use ieee.std_logic_1164.all;entity DT isport(clk,rst: in std_logic; D: in std_logic; Q: out std_logic);end ;architecture one of DT issignal Q1: std_logic;begin process(clk,rst,Q1)beginif clkevent and clk=1 then if rst=0 then Q1=D;else Q1=0;end if;end if;end process;Q=Q1;end one;仿真波形:硬件测试结果及分析:CLK PIN_233 SW1D PIN_234 SW2rst PIN_235 SW3Q PIN_1 LED1 若SW3为1,只有在按下SW1时,输出才复位。结果正确。异步清零D触发器的VHDL描述:library ieee;use ieee.std_logic_1164.all;entity DY is port(CLK:in std_logic;D,RST:in std_logic;Q:out std_logic);end;architecture bhv of DY issignal q1:std_logic;beginprocess(CLK,q1)beginif RST=1then q1=0;elsif CLKevent and CLK=1then q1=D;end if;end process;Q=q1;end bhv;仿真波形:硬件测试结果及分析:CLK PIN_233 SW1D PIN_234 SW2RST PIN_235 SW3Q PIN_1 LED1 一旦当SW3为1时,输出就复位。结果正确。高电平有效的锁存器的VHDL描述:library ieee;use ieee.std_logic_1164.all;entity SD1 is port(d,clk:in std_logic; q:out std_logic);end entity SD1;architecture one of SD1 isbeginprocess(clk,d)beginif clk=1then q0); ELSIF CLKEVENT AND CLK=1 THEN IF ENA =1 THEN IF CQI 0); END IF; END IF;END IF; IF CQI =15 THEN COUT=1;ELSE COUT =0;END IF; OUTY =CQI;END PROCESS;END behv;仿真波形:硬件测试结果及分析:CLKPIN_233ENAPIN_234RST PIN_235COUTPIN_1OUTY0PIN_2OUTY1PIN_3OUTY2PIN_4OUTY3PIN_6当ENA=1且RST=0时计数器开始计数,当ENA=0时停止计数。若RST=1则计数器清零。当计数器输出OUTY=1111时,进位信号COUT=1。结果正确。回答问题:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4A IS PORT (CLK : IN STD_LOGIC; RST : IN STD_LOGIC; ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4A;ARCHITECTURE behav OF CNT4A IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP_REG: PROCESS(CLK, RST, ENA) BEGIN IF RST = 1 THEN CQI = 0000; ELSIF CLKEVENT AND CLK = 1 THEN IF ENA = 1 THEN CQI = CQI + 1; END IF; END IF; OUTY = CQI ; END PROCESS P_REG ; COUTled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7sled7snull;end case;end process;end;仿真波形:数码管显示电路VHDL描述:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;entity SCAN_LED isport(CLK:in std_logic;S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);A:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);end SCAN_LED;architecture ONE of SCAN_LED isSIGNAL C:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINP1:PROCESS(CLK)BEGINIF CLKEVENT AND CLK=1THEN IF C111THEN C=C+1;ELSE C=000;END IF;END IF;S A A A A A A A A A A A A A A A A NULL;END CASE;END PROCESS P2;END;仿真波形:硬件测试结果及分析:CLK频率不同,轮流点亮8个数码管的速率也不同,当CLK频率足够大时,可实现同时显示8个字符的效果。回答问题:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decoder38 is port (Q0: out std_logic_vector(7 downto 0); Q1: in std_logic_vector(2 downto 0); en: in std_logic);end entity decoder38;architecture code1 of decoder38 isbeginprocess(Q1,en)variable temp : std_logic_vector(7 downto 0);beginif en = 1 then temp := ZZZZZZZZ;elsecase Q1 iswhen 000 = temp := 00000001;when 001 = temp := 00000010;when 010 = temp := 00000100;when 011 = temp := 00001000;when 100 = temp := 00010000;when 101 = temp := 00100000;when 110 = temp := 01000000;when 111 = temp := 10000000;end case;end if;Q0 = temp;end process;end architecture code1;实验六 数控分频器的设计一、 实验目的:学习数控分频器的设计和测试方法。二、实验原理:数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数(初始计数值)设定不同的值,计数器以此预置数为初始状态进行不同模值的计数,当计数器的状态全为1时,计数器输出溢出信号。用计数器的溢出信号作为输出信号或输出信号的控制值,使输出信号的频率受控于输入的预置数。电路输出波形图:三、实验内容 :1)根据实验原理画出电路框图,并计算在不同预置数时输出信号的频率与时钟频率的比值。2)编写实现数控分频器的VHDL程序。要求输出信号的占空比尽量为50。提示:可以将计数器溢出信号输出给一个翻转触发器,溢出信号的边沿作为触发器的触发信号,触发器的输出就是分频器的输出(注意计数器初始计数值与输出频率之间的关系)。3)用QuartusII对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。4)通过QuartusII集成环境,将设计下载到实验电路上进行硬件测试。输入不同的clk信号和不同的输入控制信号,测试输出波形。管脚锁定:clk clk1 43 D(3) PIO23 30 SW1D(2) PIO24 35 SW2D(1) Pio25 36 SW3D(0) PIO26 37 SW4Fout PIO19 29 LED12 四、思考题:如果需要进行奇数分频(如3分频),能否够保持输出波形的占空比为50?如果不能,如何使占空比尽量接近50;如果可以,应如何做?实验结果:数控分频器的原理框图:数控分频器输出频率与输入时钟的关系:当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。任意小数都可以表示成形式,其中ab。设分频器输入脉冲数为M,输出脉冲数为P,则有以下关系: 上式表明分频器进行b次n分频时,设法多输入a个脉冲。或者说在b个脉冲输入周期中,进行b-a次n分频和a次n+1分频。这就是小数分频的基本原理。n和n+1也称为分频模式。利用上述小数分频的方法,同样也可以实现整数分频,即令a=0,就可以完成整数N分频。数控分频器的VHDL描述:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT(CLK:IN STD_LOGIC;D:STD_LOGIC_VECTOR(7 DOWNTO 0);FOUT:OUT STD_LOGIC);END;ARCHITECTURE one OF DVF ISSIGNAL FULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF CNT8=11111111 THENCNT8:=D;FULL=1;ELSE CNT8:=CNT8+1;FULL=0;END IF;END IF;END PROCESS P_REG;P_DIV:PROCESS(FULL)VARIABLE CNT2:STD_LOGIC;BEGINIF FULLEVENT AND FULL=1 THENCNT2:=NOT CNT2;IF CNT2=1 THEN FOUT=1;ELSE FOUT=0;END IF;END IF;END PROCESS P_DIV;END;仿真波形:硬件测试结果及分析:通过改变输入频率,可以听到不同频率的声音。硬件测试结果正确:回答问题:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity DIV3 is port (clk: in std_logic; out1: out std_logic);end DIV3;architecture Behavioral of DIV3 issignal division2,division4 :std_logic:=0;signal temp1,temp2:integer range 0 to 10;beginp1:process(clk) begin if rising_edge(clk) then temp1=temp1+1;if temp1=1 then division2=1; elsif temp1=2 then division2=0; temp1=0; end if; end if;end process p1;p2:process(clk) begin if clkevent and clk=0 then temp2=temp2+1; if temp2=1 then division4=1; elsif temp2=2 then division4=0; temp2=0; end if; end if; end process p2;p3:process(division2,division4)begin out1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论