实验一 组合逻辑电路的VHDL实现
- 格式:doc
- 大小:117.78 KB
- 文档页数:5
数字电路与逻辑设计实验报告学院:班级:姓名:学号:日期:一.实验名称:实验一:QuartusII 原理图输入法设计与实现实验二:用VHDL 设计与实现组合逻辑电路实验三:用VHDL 设计与实现时序逻辑电路实验四:用VHDL 设计与实现数码管动态扫描控制器二.实验所用器件及仪器:1.计算机2.直流稳压电源3.数字系统与逻辑设计实验开发板三.实验要求:实验一:(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用(1)实现的半加器和逻辑门设计实现一个全加器,仿真并验证其功能,并下载到实验板上测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用3—8线译码器和逻辑门设计实现函数F=/C/B/A+/CB/A+C/B/A+CBA,仿真验证其功能并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
注:实验时将三个元器件放在一个new block diagram中实现。
实验二:(1)用VHDL语言设计实现一个共阴极7段数码译码器,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,7段数码管显示输出信号。
(2)用VHDL语言设计实现一个8421码转余三码的代码器,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出1,否则出0;仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
实验三:(1)用VHDL语言设计实现一个带异步复位的8421 十进制计数器,仿真验证其功能,并下载到实验板测试。
要求用按键设定输入信号,发光二极管显示输出信号。
(2)用VHDL语言设计实现一个分频系数为12,输出信号占空比为50%的分频器,仿真验证其功能。
注:实验时将(1)、(2)和数码管译码器 3 个电路进行链接,并下载到实验板显示计数结果。
实验一简单组合逻辑电路的设计与仿真一、实验目的(1)初步掌握Verilog/VHDL程序的基本结构(2)学会编写简单的Verilog/VHDL程序(3)掌握用Modelsim软件进行RTL级代码的设计和仿真的基本方法(4)掌握基本组合逻辑电路的实现方法。
二、实验内容这是一个可综合的数据比较器,很容易看出它的功能是比较数据a与数据b,如果两个数据相同,则给出结果1,否则给出结果0。
在Verilog HDL中,描述组合逻辑时常使用assign 结构。
注意equal=(a==b)?1:0,这是一种在组合逻辑实现分支判断时常使用的格式。
设计模块://--------------- compare.v -----------------------module compare (equal,a,b);input a,b;output equal;assign equal=(a==b)?1:0; // a等于b时,equal输出为1;a不等于b时,equal输出为0。
endmodule测试模块用于检测模块设计得正确与否,它给出模块的输入信号,观察模块的内部信号和输出信号,如果发现结果与预期的有所偏差,则要对设计模块进行修改。
测试模块://--------------- test_compare.v-----------------module test_compare;reg a,b;wire equal;initial // initial常用于仿真时信号的给出。
begin a=0; b=0;#100 a=0; b=1;#100 a=1; b=1;#100 a=1; b=0;#100 $stop; // 系统任务,暂停仿真以便观察仿真波形。
endcompare compare1(.equal(equal),.a(a),.b(b)); // 调用模块。
endmodule仿真波形(部分):三、实验步骤1、产生一个工作库在对设计进行仿真之前,你首先需产生一个库,用于放置编译的源代码。
vhdl实验报告VHDL实验报告引言:VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和仿真。
本篇实验报告将介绍我在VHDL实验中的学习和实践经验,包括实验目的、实验过程、实验结果以及对VHDL的理解和展望。
一、实验目的VHDL实验的主要目的是让我们掌握VHDL语言的基本语法和使用方法,能够利用VHDL描述数字电路,并通过仿真和综合工具进行验证和实现。
通过这些实验,我们可以深入了解数字电路的原理和设计方法,提高我们的逻辑设计能力和工程实践能力。
二、实验过程在实验过程中,我们首先学习了VHDL的基本语法,包括实体声明、端口声明、信号声明等。
然后,我们通过实例学习了VHDL的建模方法,包括组合逻辑电路的建模和时序逻辑电路的建模。
在组合逻辑电路的建模中,我们学习了使用逻辑运算符和条件语句描述电路的功能;在时序逻辑电路的建模中,我们学习了使用过程语句和时钟信号描述电路的状态转换。
在学习了VHDL的基础知识后,我们开始进行实验设计。
我们选择了一个简单的数字电路,如4位加法器,来进行实验验证。
首先,我们通过VHDL语言描述了加法器的功能和结构,包括输入端口、输出端口和中间信号。
然后,我们使用仿真工具进行了功能仿真,验证了加法器的正确性。
接着,我们使用综合工具将VHDL代码综合成门级电路,并进行了时序仿真和时序优化,验证了加法器的时序正确性和性能。
三、实验结果通过实验,我们成功地实现了4位加法器的功能,并验证了其正确性和性能。
在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。
在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。
组合逻辑电路分析与设计实验报告一、实验目的:1. 掌握逻辑设计基本方法2. 能够自己设计简单逻辑电路,并能用VHDL描述3. 理解输出波形和逻辑电路功能之间的关系二、实验设备与器材:1. 实验箱一套(含数字信号发生器、逻辑分析仪等测量设备)2. 电缆若干三、实验原理:组合逻辑电路是指由与或非门等基本逻辑门或它们的数字组合所构成的电路。
对于组合逻辑电路而言,不需要任何时钟信号控制,它的输出不仅能直接受到输入信号的影响,同时还与其输入信号的时序有关,输入信号的任何改变都可能导致输出信号的变化,因此组合逻辑电路的输出总是与它的输入存在着一个确定的逻辑关系。
本实验通过学习与实践,让学生从具体的组合逻辑电路出发,逐步掌握数字逻辑电路设计技术,了解逻辑电路的设计过程,掌握用组合逻辑门件构成数字系统的方法,提高学生设计和分析组合逻辑电路的能力。
四、实验内容及步骤:本实验的基本内容是设计一个可以进行任意二进制数求和的组合逻辑电路,并用VHDL 语言描述该电路。
其主要步骤如下:1. 设计电路的逻辑功能,确定电路所需基本逻辑门电路元件的类型和数量。
2. 画出电路的逻辑图并进行逻辑延迟估算。
3. 利用VHDL语言描述电路功能,并利用仿真软件验证电路设计是否正确。
4. 利用实验箱中的数字信号发生器和逻辑分析仪验证电路设计是否正确。
五、实验结果与分析:我们首先设计了一个可以进行单位位的二进制数求和的电路,即输入两个1位二进制数和一个进位信号,输出一个1位二进制数和一个进位信号。
注意到,当输入的两个二进制数为同等真值时,输出的结果即为原始输入中的异或结果。
当输入的两个二进制数不同时,输出需要加上当前进行计算的进位,同时更新输出进位信号的取值。
我们继续将此电路扩展到多位数的情况。
假设输入两个n位的二进制数a和b,我们需要得到一个(n+1)位的二进制数c,使得c=a+b。
我们需要迭代地对每一位进行计算,并在计算每一位时将其前一位的进位值也列入计算中。
VHDL与数字电路设计实验报告引言本实验旨在通过使用VHDL编程语言和数字电路设计技术,实现特定功能的电路设计。
本文档将对实验的步骤、设计原理和结果进行详细描述。
实验步骤1. 步骤一:熟悉VHDL编程语言在实验开始之前,团队成员对VHDL编程语言进行了研究和熟悉。
我们了解了VHDL的基本语法、数据类型和结构,并获得了对VHDL设计原理的初步理解。
2. 步骤二:设计功能电路在本实验中,我们选择了一个特定的功能电路进行设计。
我们首先进行了功能需求分析,并根据需求确定了电路的输入输出信号以及主要的逻辑运算。
然后,我们使用VHDL编程语言将电路的逻辑运算实现为代码,并进行了仿真和测试。
3. 步骤三:电路仿真和验证为了验证我们设计的电路功能的正确性,我们使用了VHDL仿真工具进行了电路的仿真和验证。
我们根据输入信号的不同组合,观察输出信号的变化,并与我们预期的结果进行比较。
通过这一步骤,我们确认了我们设计的电路能够按照预期工作。
4. 步骤四:电路实现和测试在确认电路的设计和仿真结果无误之后,我们进一步将电路实现到实际的数字电路平台上,并进行了硬件测试。
我们使用实际的输入信号来测试电路的性能和稳定性,并对输出信号进行观察和分析。
通过这一步骤,我们验证了电路在实际环境中的可行性。
设计原理我们设计的电路基于特定的功能需求,采用了经典的数字电路设计原理。
通过使用VHDL编程语言,我们将电路的逻辑运算实现为逻辑门和触发器的组合。
通过将输入信号连接到适当的逻辑门和触发器,我们实现了所需的功能。
结果与分析经过实验步骤的完成,我们成功地设计和实现了一个具有特定功能的数字电路。
在仿真测试和实际测试中,电路都表现出了良好的性能和稳定性。
根据结果的分析,我们验证了电路的设计原理和逻辑的正确性。
结论本实验通过使用VHDL编程语言和数字电路设计技术,成功地实现了一个具有特定功能的电路设计。
我们的实验结果表明,VHDL和数字电路设计技术在电路设计领域具有重要的应用价值。
数字逻辑电路实验报告指导老师:班级:学号:姓名:时间:第一次试验一、实验名称:组合逻辑电路设计1二、试验目的:掌握组合逻辑电路的功能测试。
1、验证半加器和全加器的逻辑功能。
2、、学会二进制数的运算规律。
3、试验所用的器件和组件:三、74LS00 3片,型号二输入四“与非”门组件74LS20 1片,型号四输入二“与非”门组件74LS86 1片,型号二输入四“异或”门组件实验设计方案及逻辑图:四、/全减法器,如图所示:1、设计一位全加时做减法运时做加法运算,当M=1M决定的,当M=0 电路做加法还是做减法是由SCin分别为加数、被加数和低位来的进位,、B和算。
当作为全加法器时输入信号A分别为被减数,减数Cin、B和为和数,Co为向上的进位;当作为全减法时输入信号A 为向上位的借位。
S为差,Co和低位来的借位,1)输入/(输出观察表如下:(2)求逻辑函数的最简表达式函数S的卡诺图如下:函数Co的卡诺如下:化简后函数S的最简表达式为:Co的最简表达式为:2(3)逻辑电路图如下所示:、舍入与检测电路的设计:2F1码,用所给定的集成电路组件设计一个多输出逻辑电路,该电路的输入为8421为奇偶检测输出信号。
当电路检测到输入的代码大于或F2为“四舍五入”输出信号,的个数为奇数时,电路。
当输入代码中含1F1=1;等于5是,电路的输出其他情况F1=0 F2=0。
该电路的框图如图所示:的输出F2=1,其他情况输出观察表如下:(输入/0 1 0 0 1 01 0 1 0 0 11 1 1 0 0 01 0 1 1 1 11 0 0 1 0 11 0 1 0 0 11 0 0 1 1 01 1 1 0 1 11 0 1 1 0 011111求逻辑函数的最简表达式(2)的卡诺如下:函数F1 F2函数的卡诺图如下:的最简表达式为:化简后函数F2 的最简表达式为:F1)逻辑电路图如下所示;(3课后思考题五、化简包含无关条件的逻辑函数时应注意什么?1、答:当采用最小项之和表达式描述一个包含无关条件的逻辑问题时,函数表达式中,并不影响函数的实际逻辑功能。
VHDL 实验报告******班级:电子0701学号:************实验一组合逻辑电路设计一实验目的:1. 熟悉mux+pluxII软件,可以进行新文件的编辑和文件的修改。
2. 掌握门电路VHDL语言程序设计方法。
3. 掌握选择器VHDL语言程序设计方法。
4. 掌握加法器VHDL语言程序设计方法。
5. 熟悉VHDL编程的基本方法。
二实验设备:1.计算机2.Max+PlusII软件三实验原理及内容:1 二输入与门(1)实验原理二输入与门是我们数字电路中的一个基础逻辑门电路,是最基本的逻辑门电路之一,也是最简单的逻辑门之一。
它能实现两个输入端的相与,一般有三个端口。
二输入与门的表达式是:Y=ab二输入与门的逻辑符号如图(1)所示,真值表如表(1)所示。
图(1)与门逻辑符号表(1)与门真值表(2)实验内容a.在mux+pluxII文本编辑环境下,打开新文本,编写两输入与门VHDL语言源程序,程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY and2 ISPORT(a,b: IN STD_LOGIC;Y: OUT STD_LOGIC);END and2;ARCHITECTURE behave OF and2 ISBEGINY <= a and b;END behave;b.对源程序进行编译,按照提示进行修改,直至编译通过。
c.对编译程序进行仿真,分析并记录仿真波形,其仿真波形图如图(2)所示。
图(2)二输入与门仿真图d.在自己的目录下保存相应的源文件、波形文件。
2 四选一选择器(1)实验原理四选一选择器如图(3)所示,真值表如表(2)所示。
图(3)mux4管脚图表(2)mux4真值表(2)实验内容a.在mux+plusII文本编辑环境下,打开新文件,编辑四选一VHDL源程序文件,其程序设计如下:LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(A: IN STD_LOGIC_VECTOR (1 DOWNTO 0);D0,D1,D2,D3:IN STD_LOGIC;G:IN STD_LOGIC;Y: OUT STD_LOGIC);END mux4;ARCHITECTURE dataflow OF mux4 ISBEGINPROCESS (A,D0,D1,D2,D3,G)BEGINIF (G ='0') THENIF (A="00")THEN Y <= D0;ELSIF(A="01")THEN Y <= D1;ELSIF(A="10")THEN Y <= D2;ELSE Y <= D3;END IF;ELSE Y <='0';END IF;END PROCESS;END dataflow;b.对源程序进行编译,按照提示进行修改,直到编译通过。
专用集成电路实验报告13050Z011305024237X德文实验一开发平台软件安装与认知实验实验内容1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。
下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。
2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。
源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-- Unment the following lines to use the declarations that are-- provided for instantiating Xilinx primitive ponents.--library UNISIM;--use UNISIM.Vponents.all;entity ls74138 isPort ( g1 : in std_logic;g2 : in std_logic;inp : in std_logic_vector(2 downto 0);y : out std_logic_vector(7 downto 0));end ls74138;architecture Behavioral of ls74138 isbeginprocess(g1,g2,inp)beginif((g1 and g2)='1') thencase inp iswhen "000"=>y<="00000001";when "001"=>y<="00000010";when "010"=>y<="00000100";when "011"=>y<="00001000";when "100"=>y<="00010000";when "101"=>y<="00100000";when "110"=>y<="01000000";when "111"=>y<="10000000";when others=>y<="00000000";end case;elsey<="00000000";end if;end process;end Behavioral;波形文件:生成元器件及连接电路思考:有程序可以看出,定义了三个输入端,一个输出端。
实验一组合逻辑电路的VHDL实现
一、实验目的
掌握使用VHDL语言进行组合逻辑电路设计的方法。
二、实验设备及器件
IBM PC机一台
三、实验内容
按照Quartus II 软件的使用说明进行Quartus II 集成开发环境的仿真调试练习,然后按照以下内容建立文件并编译仿真调试。
(1)用VHDL 语言设计一个2选1多路选择器,对程序进行编译和仿真,并记录仿真波形。
提示:如右图所示,a和b分别为两个数据输入端,s 为通道选择控制信号输入端。
当s为低电平时,a输入端的信号传送至y;当s为高电平时,b输入端的信号传送至y。
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux21a IS
PORT( a, b : IN BIT ;
s : IN BIT;
y : OUT BIT) ;
END ENTITY mux21a ;
ARCHITECTURE one OF mux21a IS
BEGIN
y <= a WHEN s = '0' ELSE
b ;
END ARCHITECTURE
one ;
(2)用VHDL 语言设计一个1位半
加器,对程序进行编译和仿真,并
记录仿真波形。
提示:半加器真值表如右所示。
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
ENTITY h_adder IS
PORT(a,b:IN STD_LOGIC;
so,co:OUT STD_LOGIC); END h_adder;
ARCHITECTURE example2 OF h_adder IS
BEGIN
so<=a XOR b;
co<=a AND b;
END example2;
(3)用VHDL 语言设计一个三态缓冲器,对程序进行编译和仿真,并记录仿真波形。
提示:三态缓冲器电路如右图所示,如果
缓冲器的使能端en 为1,缓冲器的输入端
in1的信号值被复制到输出端;如果使能端
en 为其它数值,缓冲器的输出为高阻态。
实验代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY Threestategate IS
PORT(IN1,EN:IN STD_LOGIC;
半加器真值表
OUT1:OUT STD_LOGIC);
END Threestategate;
ARCHITECTURE ARC_BUFFER OF Threestategate IS
BEGIN
PROCESS(IN1,EN)
BEGIN
IF EN='1' THEN
OUT1<=IN1;
ELSE
OUT1<='Z'; END IF;
END PROCESS;
END ARC_BUFFER;
四、 实验要求
熟练掌握运用VHDL 语言进行组合逻辑电路设计的基本方法。
五、 实验结果
(1)2选1多路选择器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
如图所示,a 和b 分别为两个数据输入端,s 为通道选择控制信号输入端。
可
2选1多路选择器波形图
以看到,当s 为低电平时,a 输入端的信号传送至y ;当s 为高电平时,b 输入端的信号传送至y ,则设计的程序基本符合要求。
(2)1位半加器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
实验分析:
如图所示,a ,b 为半加器的两个输入端,co 是进位输出端,so 是和输出端。
在0~10ns ,只有b 端输入信号为“1”,因此,进位输出端co 为“0”,和位输出端so 为“1”;在10ns~15ns ,此时输入端只有a 为“1”,b 端为“0”,因此,so 、co 的输出情况和0~10ns 内一致;在15ns~20ns 内,此时a 、b 输入端均为“1”,故进位输出端co 为“1”,和位输出端为“0”.
(3)三态缓冲器
在Quartus II 建立工程并输入代码,经编译后波形图如下所示:
如图所示,EN 为三态门的使能端,IN1为输入端,OUT1为输出端。
观察可知,在0~10ns 内,IN1的输入为“1”,但此时使能端EN
没有使能信号,因此
1位半加器波形图
三态缓冲器波形图
三态门的输出OUT1为初始状态;在10ns~20ns内,在这个周期内,使能信号始终加载在EN上,因此,三态门的输出OUT1随着输入端IN1的变化而变化。
六、实验总结
本次实验的主要内容是组合逻辑电路的VHDL实现,要求我们掌握VHD语言进行逻辑电路设计的方法,同时熟悉Quartus II软件的使用。
但由于个人原因申请了免听《EDA技术》课程的理论课,加上平时没有及时地查阅课本资料,导致进行实验操作时无从入手,拖慢了实验进度。
在课后继续完成实验内容时,发现虽然没有系统地在课堂上学习理论知识,但通过进行实验操作,还是可以较为容易地读懂VHDL语言。
这提醒我,要认真对待眼前的困难,只要认真实践、掌握诀窍,困难就会一步步蚕食,将会变成简单!。