(此文档为word格式,下载后您可任意编辑修改!)实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII的层次化设计方法。
通过一个4位全加器的设计,熟悉用EDA软件进行电路设计的详细流程。
二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的低位进位输入信号cin相接。
1位全加器f-adder由2个半加器h-adder和一个或门按照下列电路来实现。
半加器h-adder由与门、同或门和非门构成。
四位加法器由4个全加器构成三、实验内容:1. 熟悉QuartusII软件界面,掌握利用原理图进行电路模块设计的方法。
QuartusII设计流程见教材第五章:QuartusII应用向导。
2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor)(2)按照给定的原理图输入逻辑门(symbol->enter 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位全加器:原理图:仿真波形:原理图:仿真波形:4位全加器仿真结果正确:例:0011(A)+0111(B)+0(CI)结果为1010(S),进位CO为0。
5.思考如何在原理图中输入一个总线,并与其他总线连接?先选中细线,然后右击,选”bus line”,总线是以粗线条表示。
与其他总线连接:例如一根8位的总线 bus1[7..0]欲与另三根分别为1、3、4个位宽的连线相接,则它们的标号可分别表示为bus1[0],bus1[3..1],bus1[7..4]。
实验二简单组合电路的设计一、实验目的:熟悉QuartusII VHDL文本设计流程全过程。
学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。
二、实验原理VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE),本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合QuartusII 环境和实验电路进行硬件测试。
三、实验内容:1)根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。
设计完成后,利用QuartusII集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。
2)用VHDL语言设计一个四选一数据选择器电路。
要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。
3)硬件测试(选用器件 EPF10K10 Pin84)管脚锁定:1)一位全加器 a PIO23(IO19) 30 SW1b PIO24(IO20) 35 SW2ci PIO25(IO21) 36 SW3s PIO21(IO16) 27 LED10co PIO19(IO8) 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 ,bin,cin :IN STD_LOGIC;cout,sum:out STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder ISCOMPUTER ,b=>bin,co=>d,so=>e);u2:,co=>f,so=>sum);u3: or2a PORT MAP(a=>d,b=>f,c=>cout);END ARCHITECTURE fd1;仿真波形:硬件测试结果及分析:ain PIN_233 SW1bin PIN_234 SW2cin PIN_235 SW3cout PIN_1 LED1sum PIN_2 LED2得结果正确。
四选一数据选择器的VHDL描述:二选一数据选择器的VHDL描述:ENTITY mux21a ISPORT (a,b:IN BIT;s:IN BIT;y:OUT BIT); END ENTITY mux21a;ARCHITECTURE one OF mux21a ISBEGINy<=a WHEN s='0' ELSE b;END ARCHITECTURE one;四选一数据选择器的VHDL描述:library ieee;use ieee.std_logic_1164.all;entity mux41a isport (d0,d1,d2,d3,a0,a1:in std_logic;yout:out std_logic);end entity mux41a;architecture fd1 of mux41a iscomponent mux21aport (a,b,s:in std_logic;y:out std_logic);end component;signal e,f:std_logic;beginu1:mux21a port map(a=>d0,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 LED1此结果正确。
回答问题:原理图输入法的优点: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 isport(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 CLK'event and CLK='1'then 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 is signal Q1: std_logic;beginprocess(clk,rst,Q1)beginif clk'event 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时,输出才复位。