北邮 数字逻辑实验报告
北邮大二下数电实验报告

邮电大学数字电路与逻辑设计实验学院:班级::学号:班序号:实验一一、实验名称Quartus II 原理图输出法设计(一)半加器二、实验任务要求用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
三、设计思路和过程◎设计思路半加器电路是指对两个输入数据位进行加法,输出一个结果位和进位,不产生进位输入的加法器电路,是实现两个一位二进制数的加法运算电路。
数据输入:被加数AI、加数BI数据输出:半加和SO、进位CO◎设计过程(1)列出真值表01 1 010 1 0110 1*表中两个输入是加数AI和BI,输出有一个是和SO,另一个是进位CO。
(2)根据真值表写出输出逻辑表达式该电路有两个输出端,属于多输出组合数字电路,电路的逻辑表达式如下:AI=。
所以,可以用一个两输入异或门和一个两输入与门CO⋅SO⊕BIAI=,BI实现。
◎实验原理图四、仿真波形图及分析根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。
但我们也可以发现输出SO出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(二)全加器二、实验任务要求用实验容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
三、设计思路和过程◎设计思路全加器与半加器的区别在于全加器有一个低进位CI,从外部特性来看,它是一个三输入两输出的器件。
◎设计过程(1)全加器的真值表如下*其中AI 为被加数,BI 为加数,CI 为相邻低位来的进位数。
输出本位和为SO ,向相邻高位进位数为CO 。
(2)根据真值表写出逻辑表达式:CI BI AI SO ⊕⊕=,BI AI CI BI AI CO ⋅+⋅⊕=)(根据逻辑表达式,可以知道只要在半加器的基础上再加入一个异或门、一个两输入与门和两输入或门即可实现全加器。
◎实验原理图。
北邮大二下数电实验报告

北京邮电大学数字电路与逻辑设计实验学院:班级:姓名:学号:班内序号:实验一一、实验名称Quartus II 原理图输出法设计(一)半加器二、实验任务要求用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
三、设计思路和过程◎设计思路半加器电路是指对两个输入数据位进行加法,输出一个结果位和进位,不产生进位输入的加法器电路,是实现两个一位二进制数的加法运算电路。
数据输入:被加数AI、加数BI数据输出:半加和SO、进位CO◎设计过程,输出有一个是和SO,另一个是进位CO。
(2)根据真值表写出输出逻辑表达式该电路有两个输出端,属于多输出组合数字电路,电路的逻辑表达式如下:AICO⋅=。
所以,可以用一个两输入异或门和一个两输入与门SO⊕=,BIBIAI实现。
◎实验原理图四、仿真波形图及分析根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。
但我们也可以发现输出SO出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(二)全加器二、实验任务要求用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
三、设计思路和过程 ◎设计思路全加器与半加器的区别在于全加器有一个低进位CI ,从外部特性来看,它是一个三输入两输出的器件。
◎设计过程SO ,向相邻高位进位数为CO 。
(2)根据真值表写出逻辑表达式:CI BI AI SO ⊕⊕=,BI AI CI BI AI CO ⋅+⋅⊕=)(根据逻辑表达式,可以知道只要在半加器的基础上再加入一个异或门、一个两输入与门和两输入或门即可实现全加器。
◎实验原理图四、仿真波形图及分析根据仿真波形对比全加器真值表,可以确定电路实现了全加器的功能。
(三)3线—8线译码器二、实验任务要求用3线—8线译码器(74LS138)和逻辑门设计实现函数CBF+A++=,仿真验证其功能,并下载到实验板测试。
北邮数电实验报告

北邮数电实验报告北邮数电实验报告一、引言数电实验是电子信息类专业学生必修的一门实验课程,通过实践操作,帮助学生巩固理论知识,培养实际动手能力。
本次实验旨在通过设计和搭建一个简单的数字电路,来理解数字电路的基本原理和工作方式。
二、实验目的本次实验的目的是设计一个4位二进制加法器,实现两个4位二进制数的相加运算。
通过实验,我们可以加深对于数字电路的理解,掌握数字电路的设计和搭建方法。
三、实验原理1. 二进制加法器二进制加法器是一种用于计算二进制数相加的数字电路。
它由若干个逻辑门和触发器组成,可以实现二进制数的加法运算。
在本次实验中,我们将设计一个4位二进制加法器,即可以计算两个4位二进制数的相加结果。
2. 逻辑门逻辑门是数字电路中常用的基本元件,用于实现逻辑运算。
常见的逻辑门有与门、或门、非门、异或门等。
在本次实验中,我们将使用与门和异或门来构建4位二进制加法器。
四、实验步骤1. 设计4位二进制加法器的电路图根据实验要求,我们需要设计一个能够计算两个4位二进制数相加的电路。
首先,我们可以将两个4位二进制数分别用D0~D3和E0~E3表示,其中D0和E0分别为最低位。
然后,我们需要使用与门和异或门来实现加法器的功能。
通过逻辑运算,我们可以得到每一位的和以及进位。
最后,将每一位的和连接起来,即可得到最终的结果。
2. 搭建电路根据电路图,我们可以开始搭建实验电路。
首先,将所需的逻辑门和触发器连接起来,形成一个完整的电路。
然后,将所需的输入信号和电源连接到电路上。
最后,使用示波器等工具检查电路的工作状态,确保电路正常运行。
3. 进行实验测试在搭建好电路后,我们可以进行实验测试。
首先,将两个4位二进制数的输入信号连接到电路上。
然后,通过观察输出信号,判断电路是否正确计算了两个二进制数的相加结果。
如果输出信号与预期结果一致,说明电路设计和搭建成功。
五、实验结果与分析在进行实验测试后,我们可以得到实验结果。
通过观察输出信号,我们可以判断电路是否正确计算了两个二进制数的相加结果。
数字逻辑实践实验报告(3篇)

第1篇一、实验目的1. 掌握数字逻辑电路的基本原理和设计方法。
2. 熟悉数字电路实验设备的使用。
3. 提高数字电路的仿真和调试能力。
4. 培养学生分析问题和解决问题的能力。
二、实验内容1. 组合逻辑电路设计(1)2选1多路选择器设计:根据教材5.1节的流程,利用Quartus II完成2选1多路选择器的文本编辑输入(MUX21.v)和仿真测试等步骤,给出仿真波形。
在实验系统上硬件测试,验证此设计的功能。
(2)三人表决电路设计:根据教材5.1节的流程,利用Quartus II完成三人表决电路的文本编辑输入(图5-36)和仿真测试等步骤,给出仿真波形。
在实验系统上硬件测试,验证此设计的功能。
2. 时序逻辑电路设计(1)数字显示电子钟设计:根据任务要求,设计一个数字显示电子钟,时钟的时、分、秒要求各用两位显示,上、下午用发光管作为标志。
整个系统要有校时部分和闹钟部分,声音要响5秒。
(2)脉冲波形的变换与产生:设计单稳态触发器,555定时器及其应用电路,实现脉冲波形的变换与产生。
3. 数字逻辑电路仿真与调试(1)使用Logisim软件进行无符号数的乘法器设计,实现两个无符号的4位二进制数的乘法运算。
(2)使用Logisim软件进行无符号数的除法器设计,实现两个无符号的4位二进制数的除法运算。
三、实验过程1. 组合逻辑电路设计(1)2选1多路选择器设计:首先,分析2选1多路选择器的逻辑功能,确定输入输出关系。
然后,利用Quartus II软件编写Verilog HDL代码,完成2选1多路选择器的文本编辑输入。
接着,进行仿真测试,观察仿真波形,验证设计功能。
最后,在实验系统上硬件测试,验证设计功能。
(2)三人表决电路设计:首先,分析三人表决电路的逻辑功能,确定输入输出关系。
然后,利用Quartus II软件编写Verilog HDL代码,完成三人表决电路的文本编辑输入。
接着,进行仿真测试,观察仿真波形,验证设计功能。
院校资料-北邮数字逻辑课程设计_简易电子琴

北邮数字逻辑课程设计_简易电子琴简易电子琴实验报告综合设计:程序编写:实验报告撰写:北京邮电大学计算机学院某人一.实验目的1.掌握较复杂逻辑的设计和调试。
2.掌握用VHDL语言设计数字逻辑电路。
3.掌握ispLEVER软件的使用方法。
4.掌握ISP器件的使用。
5.用途: 有电子琴的基本功能,可弹奏出简单的乐曲。
二.实验器材1.在系统可编程逻辑器件1032E2.示波器3.逻辑测试笔4.TEC-5实验系统三.实验容设计一个简易电子琴,有两种模式,既可以音阶弹奏,也可以自动播放乐曲。
要求音阶弹奏的时候,可以弹奏高音低音一共14个不同音符,自动播放乐曲的时候,要求可以按一定节奏自动播放一首预存在系统中的乐曲。
四.实验设计原理从试验系统外部接入一个时钟信号,对时钟信号进行分频,可以得到不同分频的脉冲信号。
当这个分频值设定为一定的数值时,就可以使试验系统的喇叭发出不同的音符,从而完成音阶演奏。
自动演奏时,除了对外部时钟进行分频得到不同的音符外,还需要通过时钟信号对节拍进行控制,设置该音乐最短的音符为基本单位,一步一步往后执行,根据某个音符的节拍数来确定执行时间,从而可以按照节奏将一段音乐自动演奏出来。
五.设计方案1.一共有14个琴键,表示中音的1-7到低音的1-7,按照电子琴的排列布局来安排琴键位置。
2.根据不同音符的频率,用多模计数器对时钟信号进行分频,得到特定的脉冲信号,为了使信号稳定,需要对其进行翻转得到2分频信号再输出。
3.综合原理图4.外部输入50kHz的时钟信号,根据下表用多模计数器对时钟信号进行分频,得到分频系数。
六.程序实现*********************************实体部分************************************* library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity Orgen isport(moderm:in std_logic;--模式选择,0为音阶自演奏模式,1为自动播放模式clk:in std_logic;--时钟信号Index:in std_logic_vector(13 downto 0);--琴键选择信号,1表示选择摸个琴键,共有14个琴键,可以选择14个音,分别是低音1-7和中音1-7 Code:out std_logic_vector(6 downto 0);--七段发光二极管编码,用于显示弹奏的音符high:out std_logic;--如果是中音,小灯亮,反之不亮tone0:inout integer range 0 to 2047;--分频系数result:inout std_logic--输出音频信号);end Orgen;*******************************结构体部分************************************architecture Orgen_Player of Orgen is--程序使用的是50kHz的时钟信号beginSearch:process(Index,clk,moderm)--Search进程,根据琴键选择信号得到不同的分variable step:integer range 0 to 2000;variable count2:integer range 0 to 2000;begin***************************音阶演奏模式部分********************************** if Moderm='0' then--手动音阶演奏模式case Index iswhen "00000000000001"=> tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0 tone0键信号,分配了不同的分频系数,为不同音名的发光二极管编码,同时调整高低音显示信号end case;end if;******************************自动演奏部分************************************ if (moderm='1') and (clk'event and clk='1') then--自动演奏模式--tone0防止影响if count2count2:=count2+1;--1秒输出1拍elsecount2:=0;case step iswhen 0=>tone0step:=step+1;when 1=>tone0step:=step+1;when 2=>tone0step:=step+1;when 3=>tone0step:=step+1;tone0step:=step+1;when 5=>tone0step:=step+1;when 6=>tone0step:=step+1;when 7=>tone0step:=step+1;when 8=>tone0step:=step+1;when 9=>tone0step:=step+1;when 10=>tone0step:=step+1;when 11=>tone0step:=step+1;when 12=>tone0step:=step+1;when 13=>tone0step:=step+1;when 14=>tone0step:=step+1;when 15=>tone0step:=step+1;--step不同,表示乐曲演奏到不同的位置,赋予不同的分频系数,然后step+1end case;end if;end if;end process;**************************发生进程,控制喇叭发声****************************** Made_Code:process(clk)--发声进程,发出不同的音频variable count1:integer range 0 to 2000;beginif clk'event and clk='1' thenif count1count1:=count1+1;--事先查好每个音名的频率,根据音频系数进行分频,得到是正确频率两倍的音elsecount1:=0;result音频信号end if;end if;end process;end Orgen_Player;七.基于QuartusII9.0的仿真实现1.仿真电路图2.仿真波形图八.基于TEC-5试验系统的实现效果1.音阶模式下,可以根据琴键的输入演奏低音1-7和中音1-7一共14个音符。
数字电路与逻辑设计实验报告

竭诚为您提供优质文档/双击可除数字电路与逻辑设计实验报告篇一:北邮数字电路与逻辑设计实验报告北京邮电大学数字电路与逻辑设计实验报告学院:班级:姓名:学号:实验一QuartusII原理图输入法设计与实现一、实验目的:(1)熟悉QuartusII原理图输入法进行电路设计和仿真;(2)掌握QuartusII图形模块单元的生成与调用;(3)熟悉实验板的使用;二、实验所用器材:(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。
三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。
(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
(3)用3线-8线译码器(74Ls138)和逻辑门设计实现函数,仿真验证其功能,并下载到实验板测试。
要求用拨码开关设定输入信号,发光二极管显示输出信号。
四、实验原理图及仿真波形图(1)半加器半加器原理图仿真波形仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。
但我们也可以发现输出so出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。
(2)全加器全加器原理图仿真波形仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了全加器的功能(2)741383线-8线译码器原理图仿真波形图仿真波形图分析;当且仅当Abc输入为000、010、100、111时,F=1,可知电路实现了函数。
实验二用VhDL设计与实现组合逻辑电路一、实验目的:(1)熟悉用VhDL语言设计时序逻辑电路的方法;(2)熟悉用QuartusII文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。
二、实验所用器材:(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。
三、实验任务要求(1)用VhDL语言设计实现一个共阴极7段数码管译码器;(2)用VhDL语言设计一个8421码转余三码的代码转换器;(3)用VhDL语言设计设计一个四位2进制奇校验器。
北邮数电实验报告

北邮数电实验报告1. 实验目的本实验的目的是通过实际操作和实验验证,加深对数字电路的理解和掌握。
具体实验内容包括: 1. 实现各种基本逻辑电路(与门、或门、非门、异或门等)的电路设计。
2. 学习使用开关和LED灯进行数字信号输入和输出。
3. 掌握数字电路实验中常用的仪器设备的使用方法。
2. 实验器材和环境本实验所使用的器材和环境如下: - FPGA实验箱 - 数字逻辑集成电路(与门、或门、非门、异或门等) - 电源 - 接线板 - 数字电路实验仪器3. 实验步骤3.1 实验准备首先,我们需要将实验所需的器材连接好,包括将数字逻辑集成电路插入到FPGA实验箱上的插槽中,并将电源正确连接。
3.2 电路设计与布线根据实验要求,我们需要设计不同的基本逻辑电路。
比如,要设计一个与门电路,可以通过将两个输入端分别与两个开关连接,将输出端连接到一个LED灯上。
其他的逻辑电路同样可以设计类似的方式。
在设计和布线的过程中,需要注意保持电路的连通性,并避免出现短路等问题。
3.3 输入和输出信号设置根据实验要求,我们需要设置输入和输出信号。
可以通过控制开关的开合状态来设置输入信号,然后观察LED灯的亮灭情况来判断输出信号的状态是否符合预期。
3.4 实验数据记录和分析在实验过程中,我们需要记录每个逻辑电路的输入和输出信号状态,并进行分析。
可以通过绘制真值表或者逻辑门表来记录并分析数据。
4. 实验结果与分析根据实验步骤中记录的数据,我们可以得出实验结果,并进行进一步的分析。
比如,可以通过比对设计的逻辑电路输出和预期输出的差异,来判断实验是否成功完成。
5. 总结与反思通过本次实验,我深入了解和掌握了数字电路的基本原理和实验方法。
通过设计和实验验证,加深了对基本逻辑电路的理解,并熟悉了数字电路实验所使用的仪器设备。
在实验过程中,我遇到了一些问题,比如电路连接错误导致的信号不稳定等,但通过仔细调试和排查,最终解决了这些问题。
北邮数电实验下实验报告(3篇)

第1篇一、实验目的1. 熟悉数字电子技术实验的基本流程和注意事项。
2. 掌握数字电路的基本测试方法和实验技巧。
3. 理解数字电路的基本原理,加深对数字电子技术的认识。
4. 提高动手能力和团队协作能力。
二、实验内容及要求1. 实验一:TTL与非门参数测试(1)测试TTL与非门的外形和管脚排列。
(2)测试TTL与非门的逻辑功能。
(3)测试TTL与非门的主要参数,如低电平输出电源电流IccL和高电平输出电源电流IccH。
2. 实验二:组合逻辑电路设计(1)设计一个4位二进制加法器。
(2)设计一个奇偶校验电路。
(3)设计一个编码器。
3. 实验三:时序逻辑电路设计(1)设计一个异步复位D触发器。
(2)设计一个同步复位D触发器。
(3)设计一个计数器。
4. 实验四:数字电子钟设计(1)设计一个秒表。
(2)设计一个定时器。
(3)设计一个闹钟。
三、实验电路1. 实验一:TTL与非门参数测试电路- 使用74LS20 TTL与非门芯片。
- 使用万用表测试低电平输出电源电流IccL和高电平输出电源电流IccH。
2. 实验二:组合逻辑电路设计电路- 使用74LS00 TTL与非门芯片。
- 使用电阻、电位器等元件设计加法器、奇偶校验电路和编码器。
3. 实验三:时序逻辑电路设计电路- 使用74LS74 TTL触发器芯片。
- 使用电阻、电容等元件设计异步复位D触发器、同步复位D触发器和计数器。
4. 实验四:数字电子钟设计电路- 使用555定时器芯片。
- 使用电阻、电容、二极管等元件设计秒表、定时器和闹钟。
四、实验结果记录1. 实验一:TTL与非门参数测试结果- 低电平输出电源电流IccL:0.5mA- 高电平输出电源电流IccH:1.2mA2. 实验二:组合逻辑电路设计结果- 4位二进制加法器:功能正常,能够实现4位二进制加法运算。
- 奇偶校验电路:功能正常,能够实现奇偶校验。
- 编码器:功能正常,能够实现8-3编码。
3. 实验三:时序逻辑电路设计结果- 异步复位D触发器:功能正常,能够实现异步复位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学课程设计报告目录实验一:交通灯控制器设计............................................................................. 实验二:电子钟设计 ........................................................................................ 实验三:药片装瓶系统设计............................................................................. 附:数字逻辑课程设计调试日志及个人心得体会...........................................实验一:交通灯控制器设计一、实验目的①学习采用状态机方法设计时序逻辑电路。
②掌握ispLEVER软件的使用方法。
③掌握用VHDL语言设计数字逻辑电路。
④掌握ISP器件的使用。
二、实验所用器件和设备在系统可编程逻辑器件ISP1032 一片示波器一台万用表或逻辑笔一只TEC-5实验系统,或TDS-2B数字电路实验系统一台三、实验内容以实验台上的4个红色电平指示灯,4个绿色电平指示灯模仿路口的东南西北4个方向的红,绿,黄交通灯。
控制这些交通灯,使它们按下列规律亮,灭。
(1)初始状态为4个方向的红灯全亮,时间1s。
(2)东,西方向绿灯亮,南,北方向红灯亮。
东,西方向通车,时间5s。
(3)东,西方向黄灯闪烁,南,北方向红灯,时间2s。
(4)东,西方向红灯亮,南,北方向绿灯亮。
南,北方向通车,时间5s。
(5)东,西方向红灯闪烁,南,北方向黄灯闪烁,时间2s。
(6)返回(2),继续运行。
(7)如果发生紧急事件,例如救护车,警车通过,则按下单脉冲按钮,使得东,南,西,北四个方向红灯亮。
紧急事件结束后,松开单脉冲按钮,将恢复到被打断的状态继续运行。
四、设计思路(1) 将本实验分为分频,状态计数器,led输出三大模块;(2) 分频模块需要注意到占空比,采用when-else语句;(3) 状态计数器都分为5s,2s,5s,2s,四个状态时间,通过计数器作状态转移;(5) led输出模块的黄灯闪烁可通过2HZ的方波信号实现。
(6) 选择实验台上的5kHz频率时钟,作为设计中分频的初始时钟。
(5) 紧急事件发生时,要注意保存必要的信息,已被紧急事件结束后,恢复到原状态继续运行使用。
五、设计方案模块图1、tralight(顶层模块代码)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tralight isport(clk,emg: in std_logic; --5KHZ时钟输入,紧急输入tout: out std_logic_vector(11 downto 0); --12盏led灯输出tout2,tout1: out std_logic_vector(3 downto 0));--倒计时end tralight;architecture top of tralight iscomponent fenpin --分频模块port( clkin: in std_logic; --5KHZ时钟输入clkout1: out std_logic; --1HZ时钟clkout2: out std_logic); --2HZ时钟end component;component ztjishuqi --状态计数器模块port( emg1,clk1: in std_logic; --紧急输入,1HZ时钟输入stateout: out std_logic_vector(1 downto 0); --2位状态输出daoout2,daoout1: out std_logic_vector(3 downto 0));--倒计时end component;component led --led交通灯显示模块port(emg2,clk2: in std_logic; --紧急输入,2HZ时钟输入(方波闪烁)statein: in std_logic_vector(1 downto 0); --2位状态输入ledout: out std_logic_vector(11 downto 0)); --12盏led灯输出end component;signal fenpin1: std_logic;signal fenpin2: std_logic;signal state: std_logic_vector(1 downto 0);beginu1: fenpin PORT MAP(clkin=>clk, clkout1=>fenpin1, clkout2=>fenpin2);u2:ztjishuqi PORTMAP(emg1=>emg,clk1=>fenpin1,stateout=>state,daoout2=>tout2,daoout1=>tout1);u3: led PORT MAP(emg2=>emg, clk2=>fenpin2, statein=>state, ledout=>tout); end;2、fenpin(底层分频模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport( clkin: in std_logic; --5KHZ时钟输入clkout1: out std_logic; --1HZ时钟clkout2: out std_logic); --2HZ时钟end fenpin;architecture art of fenpin issignal temp: integer range 0 to 4999;beginprocess(clkin)beginif(clkin'event and clkin='1') thenif(temp=4999) thentemp<=0;elsetemp<=temp+1;end if;end if;end process;clkout1<='1' when(temp<2500) else '0';clkout2<='1' when(temp<1250 or(temp>=2500 and temp<3750)) else '0';end art;3、ztjishuqi(底层状态计数器模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ztjishuqi isport( emg1,clk1: in std_logic; --紧急输入,1HZ时钟输入stateout: out std_logic_vector(1 downto 0); --2位状态输出daoout2,daoout1: out std_logic_vector(3 downto 0));--倒计时end ztjishuqi;architecture art of ztjishuqi issignal temp: integer range 0 to 13;type State IS (s0,s1,s2,s3);signal current_state, next_state: State;beginprocess(emg1, clk1)beginif(emg1='0') thenif(clk1'event and clk1 ='1' ) thenif(temp=0 ) thenstateout<="00"; temp<=temp+1; daoout2<="0100"; daoout1<="0110";elsif(temp>0 and temp<=4) thenstateout<="00";temp<=temp+1;daoout2<=daoout2-1;daoout1<=daoout1-1;elsif(temp=5 or temp=6) thenstateout<="01"; temp<=temp+1; daoout1<=daoout1-1;elsif(temp=7) thenstateout<="10"; temp<=temp+1; daoout2<="0110";daoout1<="0100";elsif(temp>7 and temp<=11) thenstateout<="10";temp<=temp+1;daoout2<=daoout2-1;daoout1<=daoout1-1;elsif(temp=12) thenstateout<="11"; temp<=temp+1; daoout2<=daoout2-1;elsif(temp=13) thenstateout<="11"; temp<=0; daoout2<=daoout2-1;end if;end if;end if;end process;end art;4、led(底层led输出模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity led isport(emg2,clk2: in std_logic; --紧急输入,2HZ时钟输入(方波闪烁),1HZ时钟输入statein: in std_logic_vector(1 downto 0); --2位状态输入ledout: out std_logic_vector(11 downto 0)); --12盏led灯输出end led;architecture art of led isbeginprocess(emg2,statein,clk2)beginif(emg2='1') thenledout<="001001001001";elsecase statein iswhen "00" => ledout<="100100001001";when "01" => case clk2 iswhen '1' => ledout<="010*********";when others => ledout<= "000000001001";end case;when "10" => ledout<="001001100100";when others => case clk2 iswhen '1' => ledout<="001001010010";when others => ledout<= "001001000000";end case;end case;end if;end process;end art;六、调试中出现的问题及解决方法在编写交通的的程序的时候,本人没有碰到太大的技术上的问题(因为本身程序的要求比较简单,模块数也不多)。