实验一 组合逻辑电路的VHDL设计

实验一  组合逻辑电路的VHDL设计
实验一  组合逻辑电路的VHDL设计

组合逻辑电路的VHDL设计

学院及班级:信工院电子信息工程一班

学号: 2010550428

姓名:王尧

完成时间: 2012年10月11日

(1)实验目的:

熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

(2)实验内容1:用VHDL语言设计2选1多路选择器。

提示:参考例3-1。

要求:首先利用QuartusⅡ完成2选1多路选择器的文本编辑输入和编译、仿真测试等步骤,给出时序仿真波形。选择目标器件EP1C3,建议选实验电路模式5,如附图1所示。用键1(PIO0,引脚号为1)控制s;a和b分别接clock0(引脚号为93)和clock2(引脚号为17);输出信号y接扬声器speaker(引脚号为129)。通过短路帽选择clock0接256Hz信号,clock2接8Hz信号。引脚锁定后进行编译、下载和硬件测试实验,通过键1控制s,可使扬声器输出不同音调。

(3)实验内容2:将此二选一多路选择器看成是一个元件mux21a,利用元件例

化语句描述图2所示电路,并将此文件放在同一目录中。

图2 双2选1多路选择器

要求:首先利用QuartusⅡ完成2选1多路选择器的文本编辑输入和编译、仿真测试等步骤,给出时序仿真波形。然后进行引脚锁定以及硬件下载测试。选择目标器件EP1C3,建议选实验电路模式5(附图1),用键1(PIO0,引脚号为1)控制s0;用键2(PIO1,引脚号为2)控制s1;a3、a2和a1分别接clock5(引脚号为16)、clock0(引脚号为93)和clock2(引脚号为17);输出信号outy仍接扬声器spker(引脚号为129)。通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。通过选择键1、键2,控制s0、s1,可使扬声器输出不同音调。

(4)程序设计

程序示例1:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

entity mux21a is

port(a,b,s:in std_logic;

y:out std_logic);

end entity mux21a;

architecture one of mux21a is

begin

PROCESS(s,a,b)

BEGIN

CASE S IS

WHEN '0' => y <= a;

WHEN '1' => y <= b;

WHEN OTHERS =>NULL ;

END CASE;

END PROCESS;

end architecture one;

程序示例2:

library ieee;

use ieee.std_logic_1164.all;

entity muxk is

port(a1,a2,a3,s0,s1:in std_logic;

outy: out std_logic);

end entity muxk;

architecture one of muxk is

signal tmp: std_logic;

component mux21a

port(a,b,s: in std_logic;

y:out std_logic);

end component;

begin

u1: mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp);

u2: mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy);

end architecture one;

(5)实验过程

打开软件,点击新建建立一个VHDL FILE,将编写好的程序拷进去点击保存根据提示新建一个以实体名为名的工程并选择芯片,程序名也与实体名一致。编译前设置完成后点击START COMPILATION对程序进行编译检错,然后点击新建建立一个VECTOR WAVEFORM FILE,在EDIT下拉菜单里点END TIME设定仿真结束时间,在VIEW\UTILITY WINDOWS下拉菜单里点击NODE FINDER弹出窗口里点击LIST 列出所有端口。分别将端口移到WAVEFORM1.vwf窗口左边name下,然后分别编辑各输入端口的输入信号。然后以实体名保存,点击start simulation进行仿真检错。然后进行引脚锁定和下载:选择ASSIGNMENTS\ASSIGNMENT EDITOR命令,在CATEGORY列表中选择locations;双击To栏的《new》选择电路设计图中的端口,双击location栏的《new》选择外设引脚;储存引脚锁定信息并再编译一次。

选择Toos\Programmer命令,在Mode下拉列表中选择编程模式,并选中下载文件右侧的第一个小方框,单击左上角的Hardware Setup设置编程器。向FPGA 下载SOF文件前要选择打钩“PROGRAM/CONFIGURE”选项。然后单击下载标符START 按钮进行下载。下载完成后按要求进行硬件测试。

(6)仿真波形图

(7)实验分析与总结

1、实验一要注意好内部逻辑与时序,注意端口属性是输入还是输出等,仿真时间

可以适当延长(40-50ns),使观察效果明显,另外,在检验最后的结果是否与要求匹配时,可以按照时序仿真图来观察.

2、实验二的过程中,一度遇到编译报错的问题,后面经检验发现程序的内部架构不完整,顶层文件与子文件的调用关系不明朗,子函数中逻辑缺失,程序不完整,因此在之后的大型程序编写中,要注意先建好程序的内部联系,使逻辑清晰.各种程序调用关系要清楚,不能混淆。

VHDL与数字系统课程设计

课程设计报告 实践课题:VHDL与数字系统课程设计 学生:XXX 指导老师:XXX、XXX 系别:电子信息与电气工程系 专业:电子科学与技术 班级:XXX 学号:XXX

一、设计任务 用VHDL设计一个简单的处理器,并完成相关的仿真测试。 .设计要求: 图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。 图1 简单处理器的电路图 数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0~R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。 加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行运算,运算结果存入寄存器G中,G中的数据又可根据要求通过复用器转存到其他寄存器中。 1)Rx ←[Ry] :将寄存器Ry中的内容复制到Rx; 2)Mvi Rx,#D :将立即数存入寄存器Rx中去。 所有指令都按9位编码(取自DIN的高9位)存储在指令存储器IR中,编编码规则为IIIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入

的。 有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输 时间 指令 T0T1T2T3 (mv):I0 (mvi):I1 (add):I2 (sub):I3 IR in IR in IR in IR in RY out,RX in,Done DIN out,RX in,Done RX out,A in RX out,A in ---- ---- RY out,G in,Addsub RY out,G in,Addsub ---- ---- G out,RX in,Done G out,RX in,Done 二、实现功能说明 2.1 mv Rx,Ry 实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例) (1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。 置位的控制信号如图3加粗黑线所示。 图3 (2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R5的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个寄存器对寄存器的赋值过程。置位的控制信号和数据流如图4加粗黑线所示。 图4

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

数电实验报告 实验二 组合逻辑电路的设计

实验二组合逻辑电路的设计 一、实验目的 1.掌握组合逻辑电路的设计方法及功能测试方法。 2.熟悉组合电路的特点。 二、实验仪器及材料 a) TDS-4数电实验箱、双踪示波器、数字万用表。 b) 参考元件:74LS86、74LS00。 三、预习要求及思考题 1.预习要求: 1)所用中规模集成组件的功能、外部引线排列及使用方法。 2) 组合逻辑电路的功能特点和结构特点. 3) 中规模集成组件一般分析及设计方法. 4)用multisim软件对实验进行仿真并分析实验是否成功。 2.思考题 在进行组合逻辑电路设计时,什么是最佳设计方案 四、实验原理 1.本实验所用到的集成电路的引脚功能图见附录 2.用集成电路进行组合逻辑电路设计的一般步骤是: 1)根据设计要求,定义输入逻辑变量和输出逻辑变量,然后列出真值表; 2)利用卡络图或公式法得出最简逻辑表达式,并根据设计要求所指定的门电路或选定的门电路,将最简逻辑表达式变换为与所指定门电路相应的形式; 3)画出逻辑图; 4)用逻辑门或组件构成实际电路,最后测试验证其逻辑功能。 五、实验内容 1.用四2输入异或门(74LS86)和四2输入与非门(74LS00)设计一个一位全加器。 1)列出真值表,如下表2-1。其中A i、B i、C i分别为一个加数、另一个加数、低位向本位的进位;S i、C i+1分别为本位和、本位向高位的进位。 A i B i C i S i C i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 10 1 1 1 00 1 1 1 1 1 1 2)由表2-1全加器真值表写出函数表达式。

VHDL语言与EDA课程设计

湖南人文科技学院 课程设计报告课程名称: VHDL语言与EDA课程设计 ~ 设计题目:出租车自动计价器设计 系别: 专业: 班级: 学生姓名: 学号: 起止日期: 2011年6月13日~2011年6月26日 $ 指导教师: 教研室主任:

摘要 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。根据预定的设计要求和设计思路,我们使用VHDL硬件描述语言设计了一个实际的基于Altera FPGA芯片的出租车自动计价器系统,介绍了该系统的电路结构和程序设计。通过在软件中编译和下载测试,得到了仿真波形和关键的设计结果。经过在实验箱上进行硬件测试,证明该出租车计价系统具有实用出租车计价器的基本功能,如能进一步完善,将可以实用化和市场化。 关键词:出租车自动计价器;VHDL; FPGA ;

目录 设计要求 (1) 1、方案论证与对比 (1) 方案一 (1) 方案二 (2) 两种方案的对比 (2) 2、实验步骤和设计过程 (2) 计程模块 (2) 等待计时模块 (2) 计费模块 (3) 3、调试与操作说明 (3) 中的VHDL程序 (3) 程序的编译与及仿真波形 (6) 程序的下载与功能的测试 (7) 4、课程设计心得体会 (9) 5、元器件及仪器设备明细 (10) 6、参考文献 (11) 7、致谢 (12)

实验六 组合逻辑电路的设计与测试

实验六组合逻辑电路的设计与测试 1.实验目的 (1)掌握组合逻辑电路的设计方法; (2)熟悉基本门电路的使用方法。 (3)通过实验,论证所设计的组合逻辑电路的正确性。 2.实验设备与器材 1)数字逻辑电路实验箱,2)万用表,3)集成芯片74LS00二片。 3.预习要求 (1)熟悉组合逻辑电路的设计方法; (2)根据具体实验任务,进行实验电路的设计,写出设计过程,并根据给定的标准器件画出逻辑电路图,准备实验; (3)使用器件的各管脚排列及使用方法。 4.实验原理 数字电路中,就其结构和工作原理而言可分为两大类,即组合逻辑电路和时序逻辑电路。组合逻辑电路输出状态只决定于同一时刻的各输入状态的组合,与先前状态无关,它的基本单元一般是逻辑门;时序逻辑电路输出状态不仅与输入变量的状态有关,而且还与系统原先的状态有关,它的基本单元一般是触发器。 (1)组合电路是最常用的逻辑电路,可以用一些常用的门电路来组合完成具有其他功能的门电路。设计组合逻辑电路的一般步骤是: 1)根据逻辑要求,列出真值表; 2)从真值表中写出逻辑表达式; 3)化简逻辑表达式至最简,并选用适当的器件; 4)根据选用的器件,画出逻辑电路图。 逻辑化简是组合逻辑设计的关键步骤之一。为了使电路结构简单和使用器件较少,往往要求逻辑表达式尽可能化简。由于实际使用时要考虑电路的工作速度和稳定可靠等因素,在较复杂的电路中,还要求逻辑清晰易懂,所以最简设计不一定是最佳的。但一般来说,在保证速度、稳定可靠与逻辑清楚的前提下,尽量使用最少的器件,以降低成本。 (2)与非门74LS00芯片介绍 与非门74LS00一块芯片内含有4个互相独立的与非门,每个与非门有二个输入端。其逻辑表达式为Y=AB,逻辑符号及引脚排列如图6-1(a)、(b)所示。 (a)逻辑符号(b)引脚排列 图6-1 74LS20逻辑符号及引脚排列 (3)异或运算的逻辑功能 当某种逻辑关系满足:输入相同输出为“0”,输入相异输出为“1”,这种逻辑关系称为“异或”逻辑关系。 (4)半加器的逻辑功能 在加法运算中,只考虑两个加数本身相加,不考虑由低位来的进位,这种加法器称为半加器。 5.实验内容 (1)用1片74LS00与非门芯片设计实现两输入变量异或运算的异或门电路 要求:设计逻辑电路,按设计电路连接后,接通电源,验证运算逻辑。输入端接逻辑开关输出插口,以提供“0”与“1”电平信号,开关向上,输出逻辑“1”,向下为逻辑“0”;电路的输出端接由LED发光二极管组成的0-1指示器的显示插口,LED亮红色为逻辑“1”,亮绿色为逻辑“0”。接线后检查无误,通电,用万用表直流电压20V档测量输入、输出的对地电压,并观察输出的LED颜色,填入表6-1。

VHDL课程设计PS键盘

目录 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用;

(2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器; 8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。 三、课程设计的内容与要求 1、设计内容 (1)系统功能的分析; (2)实现系统功能的实际方案; (3)编写各功能模块的VHDL语言程序; (4)对各功能模块进行编译、综合、仿真、分析; (5)顶层文件设计 (6)对整个系统进行编译、综合、仿真、分析; (7)在CPLD\FPGA实验开发系统试验箱上进行硬件验证; (8)写实验报告;

数电实验报告 实验二 利用MSI设计组合逻辑电路

数电实验报告 实验二 利用MSI设计组合逻辑电路 姓名: 学号: 班级: 院系: 指导老师: 2016年 目录 实验目的:错误!未定义书签。

实验器件与仪器:错误!未定义书签。 实验原理:错误!未定义书签。 实验内容:错误!未定义书签。 实验过程:错误!未定义书签。 实验总结:错误!未定义书签。 实验: 实验目的: 熟悉编码器、译码器、数据选择器等组合逻辑功能模块的功能与使用方法。 掌握用MSI设计的组合逻辑电路的方法。 实验器件与仪器: 数字电路实验箱、数字万用表、示波器。 虚拟器件:74LS00,74LS197,74LS138,74LS151 实验原理: 中规模的器件,如译码器、数据选择器等,它们本身是为实现某种逻辑功能而设计的,但由于它们的一些特点,我们也可以用它们来实现任意逻辑函数。 用译码器实现组合逻辑电路 译码器是将每个输入的二进制代码译成对应的输出高、低电平信号。如3线-8线译码器。当附加控制门Gs的输入为高电平(S = 1)的时

候,可由逻辑图写出。 从上式可看出。-同时又是S2、S1、S0这三个变量的全部最小项的译码输出。所以这种译码器也叫最小项译码器。如果将S2、S1、S0当作逻辑函数的输入变量,则可利用附加的门电路将这些最小项适当的组合起来,便可产生任何形式的三变量组合逻辑函数。 用逻辑选择器实现组合逻辑电路 数据选择器的功能是从一组输入数据中选出某一个信号输出。或称为多路开关。如双四选一数据选择器74LS153

Y1和Y2为两个独立的输出端,和为附加控制端用于控制电路工作状态和扩展功能。A1、A0为地址输入端。D10、D11、D12、D13或D20、D21、D22、D23为数据输入端。通过选定不同的地址代码即可从4个数据输入端选出要的一个,并送到输出端Y。输出逻辑式可写成 其简化真值表如下表所示。 S1A1A0Y1 1X X0 000D10 001D11 010D12 011D13 从上述可知,如果将A1A0作为两个输入变量,同时令D10、D11、D12、D13为第三个输入变量的适当状态(包括原变量、反变量、0和1),就可以在数据选择器的输出端产生任何形式的三变量组合逻辑电路。 实验内容: 数据分配器与数据选择器功能正好相反。它是将一路信号送到地址选择信号指定的输出。如输入为D,地址信号为A、B、C,可将D按地址分配到八路输出F0、F1、F2、F3、F4、F5、F6、F7。其真值表如下

跑马灯VHDL课程设计报告

跑马灯VHDL课程设计 一、设计任务 控制8个led进行花式显示,设计四种显示模式: 1.从左到右逐个点亮led; 2.从右到左逐个点亮led; 3.从两边到中间逐个点亮led; 4.从中间到两边逐个点亮led; 四种模式循环切换,由复位键rst控制系统的运行与停止. 二、设计过程 根据系统设计要求,采用状态机进行设计,状态机具有四种状态,每种状态完成一种显示模式四种状态间使用case语句进行切换. 程序如下: library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all; entity pmd is port( clk, rst: in std_logic; y: buffer std_logic_vector(7 downto 0)); end pmd; architecture behave of pmd is type states is (state0, state1, state2, state3); signal state: states;

begin process (clk, rst) begin if rst='1' then y<="00000000" ; state <= state0; elsif (clk'event and clk='1') then case state is when state0 => if y="00000000" then y<="10000000";state <= state0; elsif y="10000000" then y<="01000000";state <= state0; elsif y="01000000" then y<="00100000";state <= state0; elsif y="00100000" then y<="00010000";state <= state0; elsif y="00010000" then y<="00001000";state <= state0; elsif y="00001000" then y<="00000100";state <= state0; elsif y="00000100" then y<="00000010";state <= state0; elsif y="00000010" then y<="00000001";state <= state1; end if; when state1 => if y="00000001" then y<="00000010";state <= state1; elsif y="00000010" then y<="00000100";state <= state1; elsif y="00000100" then y<="00001000";state <= state1; elsif y="00001000" then y<="00010000";state <= state1; elsif y="00010000" then y<="00100000";state <= state1; elsif y="00100000" then y<="01000000";state <= state1;

组合逻辑电路实验

实验一基本门电路的功能和特性及组合逻辑电路实验(2学时) 实验目的及要求:掌握常用的集成门电路的逻辑功能与特性;掌握各种门电路的逻辑符号;了解集成电路的外引线排列及其使用方法;学习组合逻辑电路的设计及测试方法。 实验题目:部分TTL门电路逻辑功能验证及组合逻辑电路设计之全加器或全减器。 实验二数值比较器、数据选择器(3学时) 实验目的及要求:掌握数值比较器和数据选择器的逻辑功能;学习组合逻辑电路的设计及测试方法。用7486和7400、7404搭出一位数值比较器,画出其设计逻辑电路图,并验证它的运算;用74153选择器实现多数据表决器,要求3个输入中有2个或3个为1时,输出Y为高电平,否则Y为低电平。画出电路图并简述实现原理。用7400、7404、7432实现该多数表决器。 实验题目:组合逻辑电路设计之数值比较器和数据选择器 实验三计数器的应用(3学时) 实验目的及要求:掌握集成二进制同步计数器74161的逻辑功能;掌握任意进制计数器的构成方法;学习时序逻辑电路的设计及测试方法。用74161搭建一个60进制计数器电路,并将结果输出到7段数码管显示出来,画出其设计逻辑电路图并验证它的功能。 实验题目:时序逻辑电路设计之计数器的应用 74LS00: QUAD 2-INPUT NAND GATE

74LS04: HEX INVERTER 74LS32:Quad 2-Input OR Gates

74LS74: Dual Positive-Edge-Triggered D Flip-Flops with Preset, Clear and Complementary Outputs 74LS153: Dual 4-Input Multiplexer with common select inputs and individual enable inputs 74LS161: Synchronous 4-Bit Binary Counters

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

实验一组合逻辑电路设计

实验一 组合逻辑电路的设计 一、实验目的: 1、 掌握组合逻辑电路的设计方法。 2、 掌握组合逻辑电路的静态测试方法。 3、 加深FPGA 设计的过程,并比较原理图输入和文本输入的优劣。 4、 理解“毛刺”产生的原因及如何消除其影响。 5、 理解组合逻辑电路的特点。 二、实验的硬件要求: 1、 EDA/SOPC 实验箱。 2、 计算机。 三、实验原理 1、组合逻辑电路的定义 数字逻辑电路可分为两类:组合逻辑电路和时序逻辑电路。组合逻辑电路中不包含记忆单元(触发器、锁存器等),主要由逻辑门电路构成,电路在任何时刻的输出只和当前时刻的输入有关,而与以前的输入无关。时序电路则是指包含了记忆单元的逻辑电路,其输出不仅跟当前电路的输入有关,还和输入信号作用前电路的状态有关。 通常组合逻辑电路可以用图1.1所示结构来描述。其中,X0、X1、…、Xn 为输入信号, L0、L1、…、Lm 为输出信号。输入和输出之间的逻辑函数关系可用式1.1表示: 2、组合逻辑电路的设计方法 组合逻辑电路的设计任务是根据给定的逻辑功能,求出可实现该逻辑功能的最合理组 合电路。理解组合逻辑电路的设计概念应该分两个层次:(1)设计的电路在功能上是完整的,能够满足所有设计要求;(2)考虑到成本和设计复杂度,设计的电路应该是最简单的,设计最优化是设计人员必须努力达到的目标。 在设计组合逻辑电路时,首先需要对实际问题进行逻辑抽象,列出真值表,建立起逻辑模型;然后利用代数法或卡诺图法简化逻辑函数,找到最简或最合理的函数表达式;根据简化的逻辑函数画出逻辑图,并验证电路的功能完整性。设计过程中还应该考虑到一些实际的工程问题,如被选门电路的驱动能力、扇出系数是否足够,信号传递延时是否合乎要求等。组合电路的基本设计步骤可用图1.2来表示。 3、组合逻辑电路的特点及设计时的注意事项 ①组合逻辑电路的输出具有立即性,即输入发生变化时,输出立即变化。(实际电路中 图 1.1 组合逻辑电路框图 L0=F0(X0,X1,···Xn) · · · Lm=F0(X0,X1,···Xn) (1.1) 图 1.2 组合电路设计步骤示意图图

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

组合逻辑电路的设计实验报告

广西大学实验报告纸 _______________________________________________________________________________ 实验内容___________________________________________指导老师 【实验名称】 组合逻辑电路的设计 【实验目的】 学习组合逻辑电路的设计与测试方法。 【设计任务】 用四-二输入与非门设计一个4人无弃权表决电路(多数赞成则提案通过)。要求:采用四-二输入与非门74LS00实现;使用的集成电路芯片种类尽可能的少。 【实验用仪器、仪表】 数字电路实验箱、万用表、74LS00。 【设计过程】 设输入为A、B、C、D,输出为L,根据要求列出真值表如下 真值表

根据真值表画卡若图如下 由卡若图得逻辑表达式 B D C

BD AC CD AB BD AC CD AB BD AC CD AB BD AC CD BD AC AB D BCD C ACD B ABD A ABC ACD BCD ABD ABC L ???=???=++=+++=?+?+?+?=+++=))(()()( 用四二输入与非门实现 A B C D L 实验逻辑电路图

Y 实验线路图

【实验步骤】 1.打开数字电路实验箱,按下总电源开关按钮。 2.观察实验箱,看本实验所用的芯片、电压接口、接地接口的位置。 3.检查芯片是否正常。芯片内的每个与非门都必须一个个地测试,以保证芯片 能正常工作。 4.检查所需导线是否正常。将单根导线一端接发光二极管,另一端接高电平。 若发光二极管亮,说明导线是正常的;若发光二极管不亮时,说明导线不导通。不导通的导线不应用于实验。 5.按实验线路图所示线路接线。 6.接好线后,按真值表的输入依次输入A、B、C、D四个信号,“1”代表输入高 电平,“0”代表输入低电平。输出端接发光二极管,若输出端发光二极管亮则说明输出高电平,对应记录输出结果为“1”;发光二极管不亮则说明输出低电平,对应记录输出结果为“0”。本实验有四个输入端则对应的组合情况有16种,将每种情况测得的实验结果记录在实验数据表格中。 测量结果见下表: 实验数据表格

VHDL课程设计报告---交通灯设计

课程设计 课程名称:交通灯设计. 学院:电气工程学院专业:测仪姓名:学号: 年级:级任课教师: 2012年 1月12日

电气工程学院 课程设计任务书 课题名称:交通灯控制器的设计 专业、班级:测控技术与仪器测仪班 指导教师: 20 年1 月2 日至20 年1 月13 日共2周 指导教师签名: 教研室主任签名: 分管院长签名:

一、课程设计内容 1.学习ALTERA公司的FPGA/CPLD的结构、特点和性能。 2.学习集成开发软件MAX+plus II/Quartus II的使用及设计过程。 3.熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。 4.根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。 二、课程设计应完成的工作 1.在所选择器件内完成交通灯控制器的设计,要求设计完成后芯片具有交通灯控制器的全部功能、包括显示和操作接口。 2.交通灯控制器要求控制十字路口两道路的交通灯,两道路交替通行,每次通行时间可设定20——60秒之间,每个路口要求有前行、禁止、人行灯。 (根据实际设计进度考虑可以增加左右转向灯,等待和通行时间显示等)。 3.撰写设计说明书一份(不少于2000字),阐述系统的工作原理,软、硬件设计方法,重点阐述软件思路。说明书应包括封面、任务书、目录、摘要、正文、参考文献(资料)等内容,以及硬件电路综合图和软件程序清单等材料。 注:设计说明书题目字体用小三,黑体,正文字体用五号字,宋体,小标题用四号及小四,宋体,并用A4纸打印。 三、课程设计进程安排

四、设计资料及参考文献 1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001 3.潘松等主编,《EDA技术实用教程》,科学出版社,2006 4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006 5.Charles H.Roth等著,《数字系统设计与VHDL》,电子工业出版社,2008 五、成绩评定综合以下因素: (1) 说明书及设计图纸的质量(占50%)。 (2) 独立工作能力及设计过程的表现(占30%)。 (3) 回答问题的情况(占20%)。 说明书和图纸部分评分分值分布如下:

组合逻辑电路设计实验报告

组合逻辑电路设计实验报告 1.实验题目 组合电路逻辑设计一: ①用卡诺图设计8421码转换为格雷码的转换电路。 ②用74LS197产生连续的8421码,并接入转换电路。 ③记录输入输出所有信号的波形。 组合电路逻辑设计二: ①用卡诺图设计BCD码转换为显示七段码的转换电路。 ②用74LS197产生连续的8421码,并接入转换电路。 ③把转换后的七段码送入共阴极数码管,记录显示的效果。 2.实验目的 (1)学习熟练运用卡诺图由真值表化简得出表达式 (2)熟悉了解74LS197元件的性质及其使用 3.程序设计 格雷码转化: 真值表如下:

卡诺图: 1 010100D D D D D D G ⊕=+= 2 121211D D D D D D G ⊕=+=

3232322D D D D D D G ⊕=+= 33D G = 电路原理图如下: 七段码显示: 真值表如下: 卡诺图:

2031020231a D D D D D D D D D D S ⊕++=+++= 10210102b D D D D D D D D S ⊕+=++= 201c D D D S ++= 2020101213d D D D D D D D D D D S ++++= 2001e D D D D S +=

2021013f D D D D D D D S +++= 2101213g D D D D D D D S +++= 01213g D D D D D S +⊕+= 电路原理图如下:

4.程序运行与测试 格雷码转化: 逻辑分析仪显示波形:

EDA综合课程设计实验报告

EDA综合课程设计实验报告 题目:设计一个全双工UART电路院系:XXXX学院 学号:XXXXX 姓名:严XX 教师:林XX 时间:2012.06.02

1 课程设计的摘要原理 (2) 2 设计一个全双工UART电路,具体要求如下: (6) 3.UART设计 (7) 3.1 UART结构 (7) 3.2 UART的帧格式 (8) 4 UART的Verilog HDL语言设计 (9) 4.1 UART分频器 (9) 4.2UART发送模块 (10) 4.3 UART的接收模块 (14) 4.4 UART的硬件测试 (18) 5 课程设计总结 (19)

1摘要 UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。 实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。这样,既可以满足实际的应用,实现所要求的简单的通信和控制,又能够去除更多不需要的繁杂复杂的功能实现。 一、UART的原理 串行通信是指外部设备和计算机间使用一根数据线(另外需要地线,可能还需要控制线)进行数据传输的方式。数据在一根数据线上一位一位传输,每一位数据都占据一个固定的时间长度。与并行通信方式相比,串行通信方式的传输速度较慢,但这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,因此得到了广泛的应用。 基本的UART只需要发送和接收两条数据线就可以完成数据的全双工通信,其基本功能是在发送端将控制器通过总线传过来的并行数据,以设定的格式,设定的频率串行地传输出去,并同时在接收端将串行接收到的数据,转换成相应的并行数据发送出去。UART的基本帧格式如图1所示。其中,起始位总是逻辑O状态,停止位总是逻辑l状态,其持续时间可选为1位、1.5位或2位,其数据位可为5、6、7、8位,校验位可根据需要选择奇校验位,偶校验位或无校验位。

组合逻辑电路-实验报告

电子通信与软件工程系2013-2014学年第2学期 《数字电路与逻辑设计实验》实验报告 --------------------------------------------------------------------------------------------------------------------- 班级:姓名:学号:成绩: 同组成员:姓名:学号: --------------------------------------------------------------------------------------------------------------------- 一、实验名称:组合逻辑电路(半加器全加器及逻辑运算) 二、实验目的:1、掌握组合逻辑电路的功能调试 2、验证半加器和全加器的逻辑功能。 3、学会二进制数的运算规律。 三、实验内容: 1.组合逻辑电路功能测试。 (1).用2片74LS00组成图所示逻辑电路。为便于接线和检查.在图中要注明芯片编号及各引脚对应的编号。 (2).图中A、B、C接电平开关,YI,Y2接发光管电平显示. (3)。按表4。1要求,改变A、B、C的状态填表并写出Y1,Y2逻辑表达式. (4).将运算结果与实验比较.

2.测试用异或门(74LS86)和与非门组成的半加器的逻辑功能.根据半加器的逻辑表达式可知.半加器Y是A、B的异或,而进位Z是A、B相与,故半加器可用一个集成异或门和二个与非门组成如图. (1).在学习机上用异或门和与门接成以上电路.接电平开关S.Y、Z接电平显示.(2).按表4.2要求改变A、B状态,填表. 3.测试全加器的逻辑功能。 (1).写出图4.3电路的逻辑表达式。 (2).根据逻辑表达式列真值表. (3).根据真值表画逻辑函数S i 、Ci的卡诺图. (4).填写表4.3各点状态 (5).按原理图选择与非门并接线进行测试,将测试结果记入表4.4,并与上表进行比较看逻辑功能是否一致.

vhdl流水灯课程设计报告

院系: 姓名: 学号: 课程设计名称: 指导老师: 时间:

摘要 VHDL的特点 应用VHDL进行系统设计,有以下几方面的特点。 (一)功能强大 VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。 (二)可移植性 VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。 (三)独立性 VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。 (四)可操作性 由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。 (五)灵活性 VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。VHDL的设计结构 VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。 VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设计的VHDL是十分重要的。

相关文档
最新文档