数字系统的设计与实验实验报告
- 格式:docx
- 大小:91.46 KB
- 文档页数:9
哈工大数字逻辑电路与系统实验报告引言本实验旨在通过对数字逻辑电路与系统的学习与实践,加深对数字逻辑电路原理和应用的理解,掌握数字逻辑电路实验的设计与调试方法。
本报告将详细介绍实验步骤、实验结果以及实验心得体会。
实验目的1.掌握基本的数字逻辑电路设计方法;2.熟悉数字逻辑电路的布线和调试方法;3.学会使用EDA软件进行数字逻辑电路的仿真和验证。
实验器材•FPGA开发板•EDA软件实验过程实验一:逻辑门的基本控制本实验采用FPGA开发板进行实验,以下是逻辑门的基本控制步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,依次放置与门、或门、非门和异或门,并连接输入输出引脚;4.面向测试向量实现逻辑门的控制和数据输入;5.运行仿真并进行调试。
实验二:数字逻辑电路实现本实验以4位全加器为例,进行数字逻辑电路的实现,以下是实验步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,放置输入引脚、逻辑门和输出引脚,并进行连接;4.根据全加器的真值表,设置输入信号,实现加法运算;5.运行仿真并进行调试。
实验三:数字逻辑电路的串联与并联本实验旨在通过对数字逻辑电路的串联与并联实现,加深对逻辑门的理解与应用。
以下是实验步骤:1.打开EDA软件,新建工程;2.选择FPGA开发板型号,并进行相应配置;3.在原理图设计界面上,放置多个逻辑门,并设置输入输出引脚;4.进行逻辑门的串联与并联连接;5.根据逻辑门的真值表,设置输入信号,进行运算;6.运行仿真并进行调试。
实验结果经过实验测试,实验结果如下:1.实验一:逻辑门的基本控制–与门的功能得到实现;–或门的功能得到实现;–非门的功能得到实现;–异或门的功能得到实现。
2.实验二:数字逻辑电路实现–4位全加器的功能得到实现;–正确进行了加法运算。
3.实验三:数字逻辑电路的串联与并联–逻辑门的串联与并联功能得到实现;–通过逻辑门的串联与并联,实现了复杂的逻辑运算。
西南科技大学实验报告现代数字系统设计实验题目:直流电机的PWM控制专业班级:生物医学0502 _学生姓名:***学生学号: ********实验时间: 2个小时指导教师:***一、实验目的1.掌握直流电机的PWM 控制方法;2.锻炼VHDL 语言的编程能力。
二、实验原理及说明PWM 控制就是产生一定周期,占空比不同的方波信号,当占空比较大时,电机转速较高,否则电机转速较低。
当采用FPGA 产生PWM 波形时,只需FPGA 内部资源就可以实现,数字比较器的一端接设定值输出,另一端接线性递增计数器输出。
当线性计数器的计数值小于设定值时输出低电平,当计数器大于设定值时输出高电平,这样就可通过改变设定值,产生占空比不同的方波信号,从而达到控制直流电机转速的目的。
直流电机控制电路主要由2部分组成,如图1所示: ● FPGA 中PWM 脉宽调制信号产生电路; ● FPGA 中正/反转方向控制电路;速度等级设置模块锯齿波发生器(模16计数器)数字比较器模块旋转方向控制模块驱动电路Z (正转)F (反转)PWM 波形输出Z_F (正/反转控制信号)Rst (复位)Clk (时钟)Rst (复位)Level (速度等级按键)接数码管(显示速度等级)图1 直流电机PWM 控制电路三、实验步骤1.在QUARTUSII 软件下创建一工程,工程名为pwm_control ,芯片名为EP1C3T144C8,注意工程路径不要放到软件安装路径下;2.根据实验原理,自己编写VHDL 顶层设计文件实现直流电机的PWM 控制(整个设计要求全部采用VHDL 编写,不能采用原理图方式),参考程序如下:速度等级设置模块process(rst,level)beginif rst='1' thencnt4<=(others=>'0');elsif level='1' and level'event thencnt4<=cnt4+1;end if;end process;process(rst,clk)beginif rst='1' thenspeed<=(others=>'0');elsif clk'event and clk='1' thencase cnt4 isWHEN "00" => speed <= "0011" ;WHEN "01" => speed <= "0100" ;WHEN "10" => speed <= "0101" ;WHEN "11" => speed <= "0111" ;WHEN OTHERS => NULL ;END CASE ;end if;END PROCESS;数字比较器模块process(clk,rst)beginif rst='1' thenagb<='0';elsif clk'event and clk='1' thenif cnt16>speed thenagb<='1';elseagb<='0';end if;end if;end process;锯齿波发生器process(rst,clk)beginif rst='1' thencnt16<=(others=>'0');elsif clk='1' and clk'event thencnt16<=cnt16+1 ;end if;end process;旋转方向控制模块process(rst,clk)beginif rst='1' thenz<='0';f<='0';elsif clk'event and clk='1' thenif z_f='1' thenz<=agb;f<='0';elsez<='0';f<=agb;end if;end if;end process;3.对设计进行全编译;4.分别进行功能与时序仿真,验证逻辑功能;5.锁定引脚实验采用模式5,锁定引脚对照表如下信号键1 键2(level)键3clkz f level_display0level_display1引脚号1 2 3 9313213185 966.下载采用JA TG方式进行下载;7.将实验箱左上方直流电机处跳线位置插到直流允许端,(注意实验完毕后将此跳线插回直流禁止端),将右下方clock0频率改为65536Hz。
湖北民族学院信息工程学院实验报告(电气、电子类专业用)班级: 09 姓名:周鹏学号:030940908 实验成绩:实验地点: EDA实验室课程名称:数字系统分析与设计实验类型:设计型实验题目:实验一简单的QUARTUSII实例设计,基于VHDL格雷码编码器的设计实验仪器:HH-SOC-EP3C40EDA/SOPC实验开发平台,PC机。
一、实验目的1、通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。
2、初步了解QUARTUSII原理图输入设计的全过程。
3、掌握组合逻辑电路的静态测试方法。
4、了解格雷码变换的原理。
5、进一步熟悉QUARTUSII软件的使用方法和VHDL输入的全过程。
6、进一步掌握实验系统的使用。
二、实验原理、原理图及电路图3-8译码器三输入,八输出。
当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。
因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。
其真值表如表1-1所示输入输出A B C D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 1 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 1 0 0 01 0 0 0 0 0 1 0 0 0 01 0 1 0 0 1 0 0 0 0 01 1 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0表1-1 三-八译码器真值表译码器不需要像编码器那样用一个输出端指示输出是否有效。
但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。
本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。
实验三基于状态机的交通灯控制地点:31号楼312房;实验台号:12实验日期与时间:2017年12月08日评分:预习检查纪录:批改教师:报告内容:一、实验要求1、开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
2、交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
3、为了方便观察,本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
编程之前要求同学们先画好ASM图。
4、1Hz分频模块请采用第二次实验中的内容,7段码显示模块请参考书本相关内容。
5、第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL编写的模块可以混搭在一个电路图中使用。
EP2C8Q208C8的SCTP,SHCP,SER_DATA数码管信号线通过两块74HC595集成块,再驱动数码管。
6、芯片型号:cyclone:EP2C8Q208C8,开发板所有资料都在“新板”附件中,其中管脚配置在实验要求中是不对的,以“新板”附件中为准。
二、实验内容1设计要求开发板上三个led等分别代表公路上红黄绿三种颜色交通灯。
交通灯状态机初始状态为红灯,交通灯工作过程依次是红→绿→黄→红。
本次实验要求红灯的显示时间为9s,绿灯显示时间为6s,黄灯显示时间为3s,时间需要倒计时,在数码管上显示。
2设计思路(1)数码管驱动第三次实验课用到EP2C8Q208C8通过74HC595驱动数码管,有两种方法写该模块代码:方法1,用VHDL语言写,(自己写VHDL代码有加实验分)。
方法2,可调用verilog数码管驱动模块,该模块在附件“seg.zip”中。
和其它VHDL 编写的模块可以混搭在一个电路图中使用。
实验五计数器设计一、实验目的:1)复习计数器的结构组成及工作原理。
2)掌握图形法设计计数器的方法。
3)掌握Verilog HDL语言设计计数器的方法。
4)进一步熟悉设计流程、熟悉数字系统实验开发箱的使用。
二、实验器材:数字系统设计试验箱、导线、计算机、USB接口线三、实验内容:1)用图形法设计一个十进制计数器, 仿真设计结果。
下载, 进行在线测试。
用Verilog HDL语言设计一个十进制的计数器(要求加法计数;时钟上升沿触发;异步清零, 低电平有效;同步置数, 高电平有效), 仿真设计结果。
下载, 进行在线测试。
四、实验截图1)原理图:2)仿真波形:3)文本程序:5)波形仿真:五、实验结果分析、体会:这次实验, , 由于试验箱有抖动, 故在原理图上加了去抖电路, 但是在波形仿真的时候无需考虑抖动, 所以我在波形仿真的时候将去抖电路消除了, 方便观察实验六累加器设计一、实验目的:1)学习了解累加器工作原理;2)了解多层次结构的设计思路;3)学会综合应用原理图和文本相结合的设计方法。
实验器材:数字系统设计试验箱、导线、计算机、USB接口线三、实验内容:1)在文本输入方式下设计分别设计出8位的全加器和8位的寄存器, 并分别存为add8_8.v和reg8.v;3) 2)在原理图输入方式下通过调用两个模块设计出累加器电路, 并存为add8.bdf, 进行功能仿真;下载, 进行在线测试。
四、实验截图1)8位累加器原理图:2)波形仿真:3)文本输入8位加法器语言及符号:生成元器件:4)文本输入8位寄存器:生成图元:五、实验总结:通过本次实验, 学习了解累加器工作原理, 了解多层次结构的设计思路, 学会综合应用原理图和文本相结合的设计方法。
数字系统设计及实验实验报告一、实验目的数字系统设计及实验课程旨在让我们深入理解数字逻辑的基本概念和原理,掌握数字系统的设计方法和实现技术。
通过实验,我们能够将理论知识应用于实际,提高解决问题的能力和实践动手能力。
本次实验的具体目的包括:1、熟悉数字电路的基本逻辑门、组合逻辑电路和时序逻辑电路的设计方法。
2、掌握使用硬件描述语言(如 Verilog 或 VHDL)进行数字系统建模和设计。
3、学会使用相关的电子设计自动化(EDA)工具进行电路的仿真、综合和实现。
4、培养团队合作精神和工程实践能力,提高解决实际问题的综合素质。
二、实验设备和工具1、计算机:用于编写代码、进行仿真和综合。
2、 EDA 软件:如 Quartus II、ModelSim 等。
3、实验开发板:提供硬件平台进行电路的下载和测试。
4、数字万用表、示波器等测量仪器:用于检测电路的性能和信号。
三、实验内容1、基本逻辑门电路的设计与实现设计并实现与门、或门、非门、与非门、或非门和异或门等基本逻辑门电路。
使用 EDA 工具进行仿真,验证逻辑功能的正确性。
在实验开发板上下载并测试实际电路。
2、组合逻辑电路的设计与实现设计一个 4 位加法器,实现两个 4 位二进制数的相加。
设计一个编码器和译码器,实现数字信号的编码和解码。
设计一个数据选择器,根据控制信号选择不同的输入数据。
3、时序逻辑电路的设计与实现设计一个同步计数器,实现模 10 计数功能。
设计一个移位寄存器,实现数据的移位存储功能。
设计一个有限状态机(FSM),实现简单的状态转换和控制逻辑。
四、实验步骤1、设计方案的确定根据实验要求,分析问题,确定电路的功能和性能指标。
选择合适的逻辑器件和设计方法,制定详细的设计方案。
2、代码编写使用硬件描述语言(如 Verilog 或 VHDL)编写电路的代码。
遵循代码规范,注重代码的可读性和可维护性。
3、仿真验证在 EDA 工具中对编写的代码进行仿真,输入不同的测试向量,观察输出结果是否符合预期。
数字系统设计实验报告1. 引言数字系统设计是计算机科学与工程中的重要领域之一。
本实验旨在通过设计一个基本的数字系统,深入理解数字系统的原理和设计过程。
本文将按照以下步骤详细介绍实验的设计和实施。
2. 实验目标本实验旨在设计一个简单的数字系统,包括输入、处理和输出三个模块。
具体目标如下: - 设计一个输入模块,用于接收用户的输入数据。
- 设计一个处理模块,对输入数据进行特定的处理。
- 设计一个输出模块,将处理结果展示给用户。
3. 实验设计3.1 输入模块设计输入模块主要用于接收用户的输入数据,并将其传递给处理模块进行处理。
在本实验中,我们选择使用键盘作为输入设备。
具体设计步骤如下: 1. 初始化输入设备,确保能够正确接收用户输入。
2. 设计输入缓冲区,用于存储用户输入的数据。
3. 实现输入函数,将用户输入的数据存储到输入缓冲区中。
3.2 处理模块设计处理模块是数字系统的核心部分,负责对输入数据进行特定的处理。
在本实验中,我们选择设计一个简单的加法器作为处理模块。
具体设计步骤如下: 1. 定义输入数据的格式和表示方法。
2. 实现加法器的逻辑电路,可以通过使用逻辑门和触发器等基本组件来完成。
3. 设计加法器的控制电路,用于控制加法器的运算过程。
4. 验证加法器的正确性,可以通过给定一些输入数据进行测试。
3.3 输出模块设计输出模块用于将处理结果展示给用户。
在本实验中,我们选择使用显示器作为输出设备。
具体设计步骤如下: 1. 初始化输出设备,确保能够正确显示处理结果。
2. 设计输出缓冲区,用于存储待显示的数据。
3. 实现输出函数,将输出数据从输出缓冲区中传输到显示器上。
4. 实验实施4.1 输入模块实施根据3.1节中的设计步骤,我们首先初始化输入设备,然后设计输入缓冲区,并实现相应的输入函数。
4.2 处理模块实施根据3.2节中的设计步骤,我们定义输入数据的格式和表示方法,然后实现加法器的逻辑电路和控制电路。
数字系统实验报告实验一
一、实验目的
熟悉quartus环境下的vhdl电路设计,学习简单组合电路设计。
二、实验内容
设计双二选一多路选择器:
1.设计二选一多路选择器
2.将两个二选一多路选择器连接,完成三选一功能
3.仿真验证及下载测试
三、实验过程
1.设计二选一多路选择器。
在quartus中新建工程,并创建vhdl文件,编写代码如下:
2.将两个二选一选择器连接构成双二选一多路选择器,连接方式如下:
根据连接方式,可以得到输入输出真值表:
3.引脚绑定
按下表进行引脚绑定
四、实验结果及结论
1.时序仿真结果
对双四选一多路选择器进行时序仿真,结果如下:
仿真遍历了所有输入端口的取值,在S1,S2分别取00,01,10,11时,输出分别对应A,B,C,B的值,对比真值表,可以发现仿真结果正确。
2.下载验证
按引脚图绑定端口,其中S1,S2分别由两个键控制,输出口A,B,C连接的是电路板的音调控制,将两个键自由组合按下,可以明显听到发出三种不同的音调。
因此可以验证设计无误。
交通灯控制电路摘要在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。
当然我们每个人都不希望这样。
我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。
我设计的这个交通控制系统可以通过交通灯控制东西方向车道和南北方向车道两条主次交叉道路上的车辆交替运行,用以减少交通事故的发生概率。
并且经过这次实验使得我对电子技术课程内容的理解和掌握有了更深一层的认识,也学会使用半导体元件和集成电路,掌握电子电路的基本分析方法和设计方法,进一步提高分析解决实际问题的综合能力,也为将来的就业或继续深造做好准备。
一、任务在城市道路上的交叉路口一般设置有交通灯,用于管理两条道路通行车辆。
现有一条主干道和一条支干道的汇合点形成十字交叉口,为确保车辆安全、迅速的通行,在交叉路口的每条道上设置一组交通灯,交通灯由红、黄、绿3色组成。
红灯亮表示此通道禁止车辆通过路口;黄灯亮表示此通道未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该通道车辆可以通行。
要求设计一交通灯控制电路以控制十字路口两组交通灯的状态转换,指挥车辆安全通行。
指挥车辆安全通行。
设计要求1、基本要求(1)设计一个十字路口交通灯控制电路,要求主干道与支干道交替通行。
主干道通行时,主干道绿灯亮,支干道红灯亮,时间为60秒。
支干道通行时,支干道绿灯亮,主干道红灯亮,时间为30秒。
(2)每次绿灯变红灯时,要求黄灯先亮5秒钟。
此时另一路口红灯也不变。
(3)黄灯亮时,要求黄灯闪烁,频率为1Hz。
2、发挥部分要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示。
二、设计方案选取与论证1、所选方案的理由:本设计的交通灯控制电路是综合运用了74LS192芯片、7474芯片和NE555芯片等的集成电路。
根据任务要求,用单片机或分立组件来实现是比较容易的,但是由于要求不能使用单片机设计,因此使用数字电路课程里学过的知识,运用它们来设计分析电路。
数字系统的设计与实验
实验报告
Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
数字系统的设计与实验学院:
专业:
班级:
学号:
姓名
指导老师
2013 年12月 10 日
实验一原码反码发生器
一实验目的:
1、掌握组合逻辑电路的基本设计方法。
2、学习波形仿真的方法。
3、加深对最简单的二进制原码、反码的理解,灵活运用基本的逻辑门。
二实验内容
1、设计的电路应具备以下功能:
A.包含如下端口:
一个选择信号端口,一个8位二进制输入端口,一个原码/反码输出端口。
B. 选择信号的逻辑状态为0时输出原码;逻辑状态为1时输出反码。
2、完成电路设计。
3、对设计的正确性进行验证。
三实验要求
1、列出所要实现的功能的真值表。
2、画出电路的逻辑图。
3、编写用VHDL语言描述的源程序。
library ieee;
use shiyan1 is
port (cin : in std_logic_vector(7 downto 0);
fin : in std_logic;
cout: out std_logic_vector(7 downto 0));
end shiyan1;
architecture behave of shiyan1 is
begin
process(fin)
begin
case fin is
when '1' => cout <= not cin;
when '0' => cout <= cin;
when others => null;
end case;
end process;
end behave;
4、在MAX 软件平台上完成编译和功能仿真。
一、信号端口为0时
二、信号端口为1
总结:经过上个实验后,对maxplu件有了一定了解,对于 VHDL也更加熟悉,首先构造真值表,画出逻辑电路图,然后编写程序生成仿真波形图。
在编写程序的时候也出现了一些错误,比如是将单个字符用双引号,结果编译通不过。
老是报错。
后来才检查出来。
实验二4舍5入电路
一实验目的:
1、掌握组合逻辑电路的基本设计方法。
2、熟练运用真值表。
二实验内容
1、设计的电路应具备以下功能:
A.包含如下端口:
一个4位二进制输入端口,一个进位输出端口。
B. 即当输入的数X大于或等于5时,进位输出端口输出F为1,反之,输出为0。
2、完成电路设计。
3、对设计的正确性进行验证。
三实验要求
1、编写用VHDL语言描述的源程序。
library ieee;
use shiyan2 is
port (cin : in std_logic_vector(3 downto 0);
f : out std_logic);
end shiyan2;
architecture behave2 of shiyan2 is
begin
process(cin)
begin
case cin is
when "0000" => f <= '0';
when "0001" => f <= '0';
when "0010" => f <= '0';
when "0011" => f <= '0';
when "0100" => f <= '0';
when "0101" => f <= '1';
when "0110" => f <= '1';
when "0111" => f <= '1';
when "1000" => f <= '1';
when "1001" => f <= '1';
when others => null;
end case;
end process;
end behave2;
2、在MAX 软件平台上完成编译和功能仿真。
电路逻辑图如下:
仿真结果如下:
总结:根据提示中的真值表确定输入输出接口,编写程序实现仿真,便得到了以上的波形图,首先很容易知道,当输入的数大于等于5时就要进位,二F输出端便代表的是进位,因此F的取值只有0和1
实验三四—十六译码器
一实验目的:
1、掌握组合逻辑电路的基本设计方法。
2、熟练运用VHDL语言的顺序语句和并发语句。
3、熟练运用MAX软件提供的仿真功能。
二实验内容
1、设计的电路应具备以下功能:
A.包含如下端口:
一个使能信号输入端口,四个选择信号输入端口,十六个驱动信号输出端口。
B.当使能信号为高电平时,对于四个选择信号组成的任意一组状态,十六个驱动信号中有一个且仅有一个有效的高电平输出。
当使能信号为低电平时,十六个驱动信号全部输出低电平。
2、完成电路设计。
3、对设计的正确性进行验证。
三实验要求
1、编写用VHDL语言描述的源程序
library ieee;
use shiyan3 is
port (G : in std_logic;
A : in std_logic_vector(3 downto 0);
Y : out std_logic_vector(15 downto 0));
end shiyan3;
architecture behave3 of shiyan3 is
begin
process(G, A)
begin
for i in 0 to 15 loop
Y(i) <= '0';
end loop;
if(G='1') then
case A is
when "0000" => Y(0) <= '1';
when "0001" => Y(1) <= '1';
when "0010" => Y(2) <= '1';
when "0011" => Y(3) <= '1';
when "0100" => Y(4) <= '1';
when "0101" => Y(5) <= '1';
when "0110" => Y(6) <= '1';
when "0111" => Y(7) <= '1';
when "1000" => Y(8) <= '1';
when "1001" => Y(9) <= '1';
when "1010" => Y(10) <= '1';
when "1011" => Y(11) <= '1';
when "1100" => Y(12) <= '1';
when "1101" => Y(13) <= '1';
when "1110" => Y(14) <= '1';
when "1111" => Y(15) <= '1';
when others => null;
end case;
else
for i in 0 to 15 loop
Y(i) <= '0';
end loop;
end if;
end process;
end behave3;
2、在MAX 软件平台上完成编译和功能仿真。
电路逻辑图如下:
仿真效果如下:
总结:我是参照三八译码器来设计的,先构造真值表,然后编写程序,程序在编译的时候遇到了特别多的错误,不过经过调试也成功的生成了正确的波形图。
加深了对VHDl的了解,和对maxplus的认识。