资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
组员:黄权 江飞 8011102班电子科学与技术专业课实验实 验 报 告班级 08011102 学号 2011301809 姓名 黄 权 2014 年 11 月 6 日实验一 组合逻辑半加器一 实验目的1设计一个组合逻辑半加器。2.掌握组合逻辑电路的静态测试方法。3.初步了解可编程逻辑器件设计的全过程。4.熟识quartusII软件基本功能的使用。二 实验原理半加器实现两位不带进位加法输出和及进位。一位半加器有两个输入a、b;两个输出s,Co。三.实现代码及原理图1.实验代码library ieee;use ieee.std_logic_1164.all;entity half_adder isport(a,b: in std_logic;sum,cout: out std_logic);end half_adder;architecture half1 of half_adder issignal c,d:std_logic;beginc=a or b;d=a nand b;cout=not d;sum=c and d;end half1;2.实验原理图四.实验结果及波形分析1.仿真波形2.波形分析a.如图标记部分,在仿真波形图中任取两处为例进行分析:椭圆1处:输入a为0,b为1,输出进位Co为0,和S为1。椭圆2处:输入a为1,b为0,输出进位Co为0,和S为1。由于分析部分为随意抽取,具有普遍性,且分析结果符合半加器性能,所以实验成功。b.图中,在输入a、b都是下降沿时,输出S的波形出现毛刺,根据数电中学过的知识可以知道:产生毛刺是由于信号在通过半加器内的连线和逻辑单元时,有一定的时延而产生冒险。实验二 组合逻辑3-8译码器的设计一、实验目的设计并实现一个组合逻辑3-8译码器。熟识quartus II软件基本功能的使用。二、实验原理常用的译码器有:2-4译码器、3-8译码器、4-16译码器,下面我们用一个3-8译码器的设计来介绍译码器的设计方法。3-8译码器如图1所示,其真值表如表1。图1 3-8译码器表1 3-8译码器真值表:输入输出G1G2AG2BABCY0NY1NY2NY3NY4NY5NY6NY7N0XXXXX111111111000000111111110000110111111100010110111111000111110111110010011110111100101111110111001101111110110011111111110三、实验步骤 1、建立工程encode,新建VHDL文件输入以下代码保存为encode38.vhdl。打开encode38.vhdl文件,选择File Creat/Update Creat Symbol Files for Current Files 生成顶层符号文件。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder38 ISPORT(A, B,C,G1,G2A,G2B: INSTD_LOGIC;Y: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END decoder38;ARCHITECTURE fun OF decoder38 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINindata YYYYYYYYY=XXXXXXXX;END CASE;ELSEY=11111111;END IF;END PROCESS encoder;END fun; 2、然后新建一个Block Diagramm/Schematic File 原理图文件,在空白处双击添加生成的顶层原理图,并连接input、output(输入输出管脚)重命名后如图2所示。保存文件encoder38.bdf。图2 3-8译码器原理图3、点击主工具栏上的图标进行半编译,完成后新建一个波形仿真文件FileNewVerification/Debugging FilesVector Vaveform File.,然后在左边空白处双击左键添加仿真管脚。完成后添加激励信号的波形,首先使用鼠标选中一个信号(变蓝),利用左边工具添加仿真信号,根据需要依次添加各个信号并保存。4、功能仿真选择ProcessingSimulator Tool 在弹出对话框中在仿真模式中选择”Functional” 然后点击”Generate Functional Simulation Netlist”生成功能仿真的Netlist,完成后点击”Start”按钮开始仿真,完成后点击”Report”来查看仿真结果。如图3所示。图3 仿真结果四、实验分析根据仿真结果图可以看出,当不满足G1=1 ,G2A=0 ,G2B=0时,译码器的输出全为1;当满足以上条件时,完成译码工作,即:当CBA= 000时,输出Y为 11111110;(Y0为0)当CBA= 001时,输出Y为 11111101;(Y1为0)可见,经过仿真,该译码器完成了正常译码功能。实验三 四位寄存器一、 实验目的:1. 掌握寄存器的设计方法和设计思路;2. 熟悉VHDL语言和Quartus II 软件的使用。二、 设计原理: 单向四位寄存器输入有三个端口,分别为时钟clk,异步置位端r和4位数据输入端d(3 downo0);一个4位输出端q(3 downto 0)。当r=1时,输出端q清零;当时钟的上升沿到来时,把数据送到输出端,完成数据的寄存。三、设计VHDL源代码: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jcq is port( clk:in std_logic; r:in std_logic; d:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0) );end jcq;architecture rtl of jcq is signal q_temp:std_logic_vector(3 downto 0); begin process(clk,r) begin if(r=1)then q_temp=0000; elsif(clkevent and clk=1)then q_temp=d; end if; q=q_temp; end process;end rtl;四、生成的元件图 五、仿真波形与分析1.当r=1时:分析:r=1时,输出端被清零,从波形图可看出q在任意时刻始终为0.2.当r=0时:分析:当r=0时,数据输入端d对数据接收端q的赋值并不是与时钟完全同步,而是有一定的错开,这是因为逻辑门总有一定的传输延迟导致的。经实验发现,如果时钟周期越大,则这种延迟越明显,当达到一定的临界值时,输入与输出完全不对称了。以下为时钟clk=100ns数据输入周期大于100ns的情形: 可见,数据输入端d基本上与与数据接收端错开了。实验四 单时钟同步十六进制加/减计数器的设计一、 实验目的:1. 掌握计数器的设计原理和方法;2. 理解双向计数器的工作原理;3. 熟悉VHDL语言的使用和编程思想。二、 设计原理:该计数器共有5个输入端,分别为时钟clk、使能端enable、置数端load、和4个预置数端d1,d2,d3,d4;2个中间信号d和y,其中d接收d1,d2,d3,d4的数据,即d=(d1 & d2 & d3 & d4);y作为临时计数变量。两个输出端口c和4位的q,其中c是进位输出,q是计数输出。当load=0,计数预置位y=d;进位c=0置零;当时钟上升沿到来且使能端enable=0时,允许计数。如果updown=0,进行加法计数,如果updown=1,进行减法计数;当时钟上升沿到来且使能端enable=1时,不计数而保持上一次的计数状态。三、设计的源代码: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ls191 is port(clk,enable,load,updown,d0,d1,d2,d3:in std_logic; c:out std_logic; q:out std_logic_vector(3 downto 0);end ls191;architecture rtl of ls191 issignal y,d:std_logic_vect
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号