数字系统设计实验三

合集下载

本科数电实验教案

本科数电实验教案

本科数电实验教案一、实验目的1. 理解并掌握数字电路的基本原理和实验技能。

2. 熟悉常用逻辑门电路及其功能。

3. 学会使用逻辑门电路进行简单的数字系统设计。

4. 培养动手能力和团队协作能力。

二、实验原理1. 逻辑门电路:与门、或门、非门、异或门等。

2. 逻辑函数及其表示方法:真值表、逻辑图、卡诺图等。

3. 数字电路的基本组成部分:触发器、计数器、译码器等。

4. 数字系统的设计与验证方法。

三、实验器材与仪器1. 数字电路实验箱。

2. 逻辑门电路模块。

3. 触发器、计数器、译码器等模块。

4. Multisim、Proteus等仿真软件。

四、实验内容与步骤1. 实验一:逻辑门电路的搭建与测试步骤:a. 根据真值表搭建与门、或门、非门、异或门电路。

b. 使用Multisim、Proteus等软件进行仿真,验证电路功能。

2. 实验二:数字电路的基本组成部分——触发器步骤:a. 搭建基本RS触发器、D触发器、JK触发器等。

b. 利用仿真软件验证触发器的工作原理。

c. 分析不同触发器之间的联系与区别。

3. 实验三:计数器的设计与仿真步骤:a. 搭建二进制计数器电路。

b. 利用仿真软件验证计数器的功能。

c. 分析计数器的工作原理,探讨计数器的应用场景。

4. 实验四:译码器的设计与仿真步骤:a. 搭建4-16译码器电路。

b. 利用仿真软件验证译码器的功能。

c. 分析译码器的工作原理,探讨译码器的应用场景。

5. 实验五:数字系统的设计与验证步骤:a. 结合所学知识,设计一个简单的数字系统(如计算器、频率发生器等)。

b. 搭建数字系统电路,利用仿真软件进行验证。

五、实验要求与评价1. 实验报告:要求对每个实验的原理、过程、结果进行详细描述,并对实验中遇到的问题进行分析和解答。

2. 实验操作:要求熟练操作实验设备,正确搭建电路,充分理解实验原理。

3. 实验态度:要求认真观察实验现象,积极参与讨论,主动请教老师和同学。

4. 实验成果:要求实验结果准确,能够对数字电路进行分析与设计。

数字逻辑与数字系统设计课程设计

数字逻辑与数字系统设计课程设计

数字逻辑与数字系统设计课程设计一、课程设计背景数字逻辑与数字系统设计课程介绍了数字电路的基本概念、设计和分析方法。

数字逻辑是电子技术中非常重要的一部分,广泛应用于计算机、通信、自动化控制、计算器、游戏机等电子产品。

通过本课程的学习,学生将掌握数字逻辑和数字系统设计的基本原理和方法。

二、课程设计内容本次数字逻辑与数字系统设计课程设计主要分为以下几个部分:1.实验一:Karnaugh图和逻辑多路选择器设计实验2.实验二:数字逻辑电路的组合设计实验3.实验三:数字电路的时序设计实验4.实验四:数字系统设计实验5.实验五:数字逻辑综合设计实验实验一:Karnaugh图和逻辑多路选择器设计实验通过本实验,学生将学会运用Karnaugh图方法设计简单的逻辑电路,掌握最小化布尔函数的方法。

同时,学生将学习多路选择器的设计方法,掌握多路选择器的应用技巧。

实验二:数字逻辑电路的组合设计实验通过本实验,学生将学习的是数字逻辑电路的组合设计方法,包括基本逻辑门和复杂逻辑电路的设计技术。

同时,学生还将掌握基本电路的仿真方法,通过仿真软件对电路进行验证。

实验三:数字电路的时序设计实验在本实验中,学生将掌握数字电路的时序设计方法,了解时序电路的作用、分类和基本原理。

同时,学生将学习数字电路时序仿真的方法,能够进行基本时序电路模拟。

实验四:数字系统设计实验在本实验中,学生将学习数字系统设计的基本方法和过程,包括总体结构设计、输入输出接口的设计、存储器的设计等;同时,学生还将了解数字系统的仿真和测试方法,对设计的数字系统进行仿真和测试。

实验五:数字逻辑综合设计实验在本实验中,学生将通过数字逻辑综合设计,掌握数字逻辑综合应用技巧,并能够在实践中学习根据需求进行电路综合的方法。

三、课程设计特点本次数字逻辑与数字系统设计课程设计不仅注重理论教学,更加强调实践教学,特点如下:1.注重实验教学,对学生的动手能力和实践能力进行提高。

2.充分利用仿真软件进行电路设计和验证,使学生在熟悉实际电路设计方法的同时,也能提高计算机仿真的技能和水平。

实验三3-8译码器的功能测试及仿真

实验三3-8译码器的功能测试及仿真

实验三3-8译码器的功能测试及仿真实验三3-8译码器功能测试及仿真⼀、实验⽬的1、掌握中规模集成3-8译码器的逻辑功能和使⽤⽅法。

2、进⼀步掌握VHDL语⾔的设计。

⼆、预习要求复习有关译码器的原理。

三、实验仪器和设备1.数字电⼦技术实验台1台2.数字万⽤表1块3.导线若⼲4.MUX PLUSII软件5.74LS138集成块若⼲四、实验原理译码器是⼀个多输⼊、多输出的组合逻辑电路。

它的作⽤是把给定的代码进⾏“翻译”,变成相应的状态,使输出通道中相应的⼀路有信号输出。

译码器在数字系统中有⼴泛的⽤途,不仅⽤于代码的转换、终端的数字显⽰,还⽤于数据分配,存贮器寻址和组合控制信号等。

不同的功能可选⽤不同种类的译码器。

译码器分为通⽤译码器和显⽰译码器两⼤类。

前者⼜分为变量译码器和代码变换译码器。

1.变量译码器(⼜称⼆进制译码器)⽤以表⽰输⼊变量的状态,如2线-4线、3线-8线和4线-16线译码器。

若有n个输⼊变量,则有2n个不同的组合状态,就有2n个输出端供其使⽤。

⽽每⼀个输出所代表的函数对应于n个输⼊变量的最⼩项。

以3线-8线译码器74LS138为例进⾏分析,下图(a)、(b)分别为其逻辑图及引脚排列。

其中 A2、A1、A0为地址输⼊端,0Y~7Y为译码输出端,S1、2S、3S为使能端。

下表为74LS138功能表,当S1=1,2S+3S=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均⽆信号(全为1)输出。

当S1=0,2S+3S=X时,或 S1=X,2S+3S=1时,译码器被禁⽌,所有输出同时为1。

3-8线译码器74LS138逻辑图及引脚排列图74LS138功能表输⼊输出S12S+3S A2A1A00Y1Y2Y3Y4Y5Y6Y7Y1 0 0 0 0 0 1 1 1 1 1 1 11 0 0 0 1 1 0 1 1 1 1 1 11 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 1 1 1 1 1 1 1 00 ×××× 1 1 1 1 1 1 1 1× 1 ××× 1 1 1 1 1 1 1 1⼆进制译码器实际上也是负脉冲输出的脉冲分配器。

北京理工大学数字系统设计与实验报告

北京理工大学数字系统设计与实验报告

3、仿真结果 功能仿真设置:
功能仿真结果: (1)总体仿真结果
(2)reset 高有效和二分频仿真结果
(3)四分频仿真结果
(4)八分频仿真结果
(5)十六分频仿真结果
四、实验心得
通过本次实验,设计频率可选的模十状态机以及 7 段译码电路,学会了以代码 形式实现频率多路选择器的功能,巩固了模十状态机的实现方式,进一步掌握 VerilogHDL 硬件描述语言。
功能仿真结果:
时序仿真设置:
时序仿真结果:
2、 3—8 译码器 (1)设计思路 随着时钟信号 clk 上升沿的到来,输入 D2D1D0 从 000 加到 111,每个输入 D2D1D0 对应着一个输出 Q7Q6Q5Q4Q3Q2Q1Q0,对应关系如真值表所示:
输入 D2 0 0 0 0 1 1 1 1 D1 0 0 1 1 0 0 1 1 D0 0 1 0 1 0 1 0 1 Q7 0 0 0 0 0 0 0 1 Q6 0 0 0 0 0 0 1 0 Q5 0 0 0 0 0 1 0 0 Q4 0 0 0 0 1 0 0 0
seg <= 7'b0011001; 5: seg <= 7'b0010010; 6: seg <= 7'b0000010; 7: seg <= 7'b1111000; 8: seg <= 7'b0000000; 9: seg <= 7'b0010000; default: seg <= 7'b0001000; endcase end endmodule (2)功能图
三、设计与实现
1、设计思路 (1) 、时钟信号 clk 作为分频器的输入,分频器的设计思路为设计一个模十六计 数器,cp0(Q0)输出即为二分频信号,cp1(Q1)输出即为四分频信号,cp2(Q2) 输出即为八分频信号,cp3(Q3)输出即为十六分频信号。分频器的输出由 4 选 1 多 路选择器的选择输入端 select 选择 2 分频、4 分频、 8 分频和 16 分频其中之一作为状 态机的时钟输入,当 select 为 0 时,输出为二分频信号;为 1 时,输出为四分频信 号;为 2 时,输出为八分频信号;为 3 时,输出为十六分频信号。 (2) 、reset 为高有效,则若 reset 信号为 1 时,qout 置为 0,则 now_state 为 0。 若 reset 信号为 0 时, qout 自加,并作为状态机的输入 驱动,让状态机按照 0->2->5->6->1->9->4->8->7->3->0 的顺序输出。 (3) 、状态机按照 0->2->5->6->1->9->4->8->7->3->0 的顺序输出,并使用此输出 作为驱动输入到 7 段译码器的显示逻辑。

华南理工大学数字系统设计实验3报告资料

华南理工大学数字系统设计实验3报告资料

实验三基于状态机的交通灯控制地点: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 编写的模块可以混搭在一个电路图中使用。

国开作业《数字电子电路》实验3集成计数器设计参考77

国开作业《数字电子电路》实验3集成计数器设计参考77

实验三集成计数器实验报告
一、实验目的和要求
1、学会用触发器构成计数器。

2、熟悉集成计数器。

3、掌握集成计数器的基本功能。

二、实验原理
计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。

例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。

计数器的种类很多。

按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预置数等等。

1、用D触发器构成异步二进制加法/减法计数器
图5-1 3位二进制异步加法器
如上图5-1所示,是由3个上升沿触发的D触发器组成的3位二进制
异步加法器。

图中各个触发器的反相输出端与该触发器的D输入端相连,就把D触发器转换成为计数型触发器T。

将上图加以少许改变后,即将低位触发器的Q端与高一位的CP端相连,就得到3位二进制异步减法器,如下所示:
图5-2 3位二进制异步减法器
2、异步集成计数器74LS90
74LS90为中规模TTL集成计数器,可实现二分频、五分频和十分频等功能,它由一个二进制计数器和一个五进制计数器构成。

其引脚排列图和功能表如下所示:
图5-3 74LS90的引脚排列图。

数字电路与系统设计实验

数字电路与系统设计实验
这包括实验方案的正确性、可行性如何? 可否进一步优化?有哪些收获体会?有哪 些经验教训?有哪些建议?等。
第二章 实验基本仪器
数字系统设计实验所需设备有: 直流稳压电源,示波器,基于CPLD的 数字电路实验系统,万用表,信号源, 计算机。
一、直流稳压电源
二、示波器
示波器是一种用来测量电信号波形的 电子仪器。用示波器能够观察电信号 波形,测量电信号的电压大小,周期 信号的频率和周期大小。双踪示波器 能够同时观察两路电信号波形。
能块相对集中地排列器件 3.布线顺序 VCC,GND,输入/输出,控制线 4. 仪器检测(电源,示波器,信号源) 5.实验 测试、调试与记录
6.撰写实验总结报告
(1)实验内容 (2)实验目的 (3)实验设备 (4)实验方法与手段 (5)实验原理图 (6)实验现象(结果)记录分析 (7)实验结论与体会
(((四三一)))、、、实实验实验目验的提内示容
•• 11..注测1意试.掌被T握T测LT器T器L件、件H7的CT4引和L脚HS7C器0和件4引的一脚传个输1特非4性门分。的别传接输地特和 十性5。V2。.掌握万用表的使用方法。
•• •
(2连为输23特二.接 被 入)..性将测测、123到 测 电。实试 试...被 非 压六六六验验HH反反反测 门 值所CC台相相相T器用非 的 。上器器器器件器门输4件777件7的入.444774输电LHH4KH入压SCCHΩC00T端。电C4400,旋位T片片44转R器0片T一电LR4的个T位一L输非的器个出门电改非端的压变门电传输非的压输出门传作特端的输性。
四、数字电路测试及故障查找、排除
1.数字电路测试
数字电路静态测试指的是给定数字电路若干组静态输 入值,测定数字电路的输出值是否正确。

实验三数字基带传输系统建模和仿真

实验三数字基带传输系统建模和仿真

实验三 数字基带传输系统的建模与仿真一. 实验目的1. 了解数字基带传输系统的建模过程2. 了解数字基带传输系统的仿真过程二. 实验内容建立一个基带传输模型,发送数据为二进制双极性不归零码,发送滤波器为平方根升余弦滤波器,信道为加性高斯信道,接收滤波器与发送滤波器相匹配,接收机能自行恢复系统同步信号。

要求观察接收信号眼图,并设计接收机采样判决部分,对比发送数据与恢复数据波形,并统计误码率。

三. 实验原理数字基带传输系统框图如图5-1所示,它主要由脉冲形成器、发送滤波器、信道、接收滤波器和抽样判决器等部件组成为保证数字基带。

系统正常工作,通常还应有同步系统。

图中各部分原理及作用如下:脉冲形成器:输入的是由电传机、计算机等终端设备发送来的二进制数据序列或是经模/数转换后的二进制脉冲序列,用{}k d 表示,它们一般是脉冲宽度为T 的单极性码。

脉冲形成器的作用是将{}k d 变换成比较适合信道传输的码型,并提供同步定时信息,使信号适合信道传输,保证收发双方同步工作。

发送滤波器:发送滤波器的传输函数为()T G ω,其作用是将输入的矩形脉冲变换成适合信道传输的波形。

这是因为矩形波含有丰富的高频成分,若直接送入信道传输,容易产生失真。

信道:信道传输函数为()C ω。

基带传输的信道通常为有线信道,如市话电缆和架空明线等,信道的传输特性通常是变化的,信道中还会引入噪声。

在通信系统的分析中,常常把噪声等效,集中在信道引入。

这是由于信号经过信道传输,受到很大衰减,在信道的输图5-1 数字基带传输系统出端信噪比最低,噪声的影响最为严重,以它为代表最能反映噪声干扰影响的实际情况。

但如果认为只有信道才引入噪声,其他部件不引入噪声,是不正确的。

G ,它的主要作用是滤除带外噪声,对信道接收滤波器:接收滤波器的传输函数为()R特性进行均衡,使输出信噪比尽可能大并使输出的波形最有利于抽样判决。

抽样判决器:它的作用是在信道特性不理想及有噪声干扰的情况下,正确恢复出原来的基带信号。

DDS正弦信号发生器的设计

DDS正弦信号发生器的设计

高级数字系统设计实验——DDS正弦信号发生器设计姓名学号专业:通信与信息系统指导老师实验三 DDS 正弦信号发生器一、实验要求:利用LPM_ROM 设计一个DDS 正弦信号发生器,要求ROM 表长度为8位,频率控制字为8位,输出频率分辨率优于1Hz 。

二、设计方案 1、 方案流程图:由频率控制字提供,累加器在系统时钟控制下,来一个上升沿就累加一次频率控制字的值,累加器的位数高于8位,所以用其高8位作为正弦查表的地址,根据地址就能寻址到表内的值,该值通过DAC 转换再通过示波器就能显示波形。

累加器溢出一次就相当于正弦表寻址一圈,正弦信号经历一个周期。

2、参数设定系统时钟fclk :设定为50KHz ,频率控制字M :8位,取值范围:1~28-1, 分辨率:f=nfclk2 n 为累加器的位数,当系统时钟的频率越低,相位累加器的位数越高,所得到的频率分辨率就越高,累加器:为了使输出频率的分辨率能达到1Hz ,选定为16位, 输出频率:fout=n M fclk 2*=16250000M *=6553650000M*, 当M=1时,输出频率最小,fout=0.7629Hz ,当M=255时,输出频率最大,fout=0.7629*255=194.5496Hz 。

3、模块建立 1)累加器LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_ARITH.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY add ISPORT(fclk : IN STD_LOGIC; --接入系统时钟rst : IN STD_LOGIC; --复位端fcontrol:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--频率控制字8位asum:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--输出累加和END ENTITY;ARCHITECTURE behav OF add ISSIGNAL a:STD_LOGIC_VECTOR(15 DOWNTO 0);--累加器的暂存值SIGNAL fc:STD_LOGIC_VECTOR(7 DOWNTO 0);--频率控制字的寄存器BEGINfc<=fcontrol;PROCESS(fc,a,fclk,rst)BEGINIF(rst = '1' ) THENa <=(others=>'0');--复位端高电平有效ELSIF( fclk'event AND fclk = '1') THENa<=a+fc; --系统时钟来一个上升沿就累加一次频率控制字的值ELSENULL;END IF;asum<=a;--寄存器的值赋值给输出端END PROCESS;END behav;2)ROM表ROM表可以通过LPM宏功能模块来实现,通过MegaWizard管理器可以构建我们所需的存储单元,因为频率控制字为8位,DAC 采用实验箱上的THS5651为10位并行高速DAC,所以需要256个存储单元,每个单元为10bits。

数字系统设计及实验实验报告

数字系统设计及实验实验报告

数字系统设计及实验实验报告一、实验目的数字系统设计及实验课程旨在让我们深入理解数字逻辑的基本概念和原理,掌握数字系统的设计方法和实现技术。

通过实验,我们能够将理论知识应用于实际,提高解决问题的能力和实践动手能力。

本次实验的具体目的包括: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、实验目的1)学习掌握数字系统综合设计方法。

2)学习掌握层次设计方法。

3)学习掌握设计下载方法。

4)学习掌握实验系统使用方法。

2、实验原理数字钟是对输入时基秒脉冲进行计数,依次输出秒数值、分数值、小时数值,从而确定时钟时间,其原理框图如下图所示。

实际的数字钟设计中还需要增加年月日的功能,这里框图中也省略了校时功能的结构。

3、实验内容1)选择XC2S200PQ208器件建立一个新的 工程。

2)在上述工程中,采用VHDL 语言的方法设计上述简易数字钟。

3)参考实验系统使用说明,按下列要求锁定引脚。

秒、分钟、小时由实验系统的J1、J2输出,显示输出的时分秒间隔一位数码管。

时钟输入由J7的1脚输入。

4)下载编程并验证设计结果。

4、实验设备1)清华同方P Ⅳ 2.4G\256M60G2)ISE 6.2i —Windows 软件系统3)多功能EDA 实验系统(V 型)5、实验步骤1)写出简易数字钟的设计程序。

2)画出简易数字钟的仿真波形。

秒分钟小时6、程序代码module clock (clk,ena,clr,clr1,clr2,secH,secL,minH,minL,houH,houL);input clk,ena,clr,clr1,clr2;output [3:0] secH,secL,minH,minL,houH,houL;reg [3:0] secTempH,secTempL,minTempH,minTempL,houTempH,houTempL;wire secLQ,secHQ,minLQ,minHQ,houLQ;always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P1//秒个位----------------------if(clr==1'b1)secTempL<=4'b0000;else if(clr1==1'b1)secTempL<=4'b1000;else if(clr2==1'b1)secTempL<=4'b1000;else beginif(ena==1'b1)beginif(secTempL==4'b1001)secTempL<=4'b0000;elsesecTempL<=secTempL+1'b1;endendendassign secL=secTempL;assign secLQ=secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//秒十位-------------------------always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P2if(clr==1'b1)secTempH<=4'b0000;else if(clr1==1'b1)secTempH<=4'b0101;else if(clr2==1'b1)secTempH<=4'b0101;else beginif(ena==1'b1&secLQ==1'b1)beginif(secTempH==4'b0101)secTempH<=4'b0000;else secTempH<=secTempH+1'b1;endendendassign secH=secTempH;assign secHQ=(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//secTempH=0101,secTempL=1001//分个位-----------------always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P3 if(clr==1'b1)minTempL<=4'b0000;else if(clr1==1'b1)minTempL<=4'b1000;else if(clr2==1'b1)minTempL<=4'b1000;else beginif(ena==1'b1&secHQ==1'b1)beginif(minTempL==4'b1001)minTempL<=4'b0000;elseminTempL<=minTempL+1'b1;endendendassign minL=minTempL;assign minLQ=minTempL[3]&(~minTempL[2])&(~minTempL[1])&minTempL[0] &(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//minTempL=1001,secTempH=0101,secTempL=1001//分十位------------------always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P4 if(clr==1'b1)minTempH<=4'b0000;else if(clr1==1'b1)minTempH<=4'b0101;else if(clr2==1'b1)minTempH<=4'b0101;else beginif(ena==1'b1&minLQ==1'b1)beginif(minTempH==4'b0101)minTempH<=4'b0000;elseminTempH<=minTempH+1'b1;endendendassign minH=minTempH;assign minHQ=(~minTempH[3])&minTempH[2]&(~minTempH[1])&minTempH[0] &minTempL[3]&(~minTempL[2])&(~minTempL[1])&minTempL[0]&(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//minTempH=0101,minTempL=1001,secTempH=0101,secTempL=1001//时个位--------------always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P5if(clr==1'b1)houTempL<=4'b0000;else if(clr1==1'b1)houTempL<=4'b1001;else if(clr2==1'b1)houTempL<=4'b0011;else beginif(ena==1'b1&minHQ==1'b1)beginif(houTempL==4'b1001)houTempL<=4'b0000;else if(houTempL==4'b0011&houTempH==4'b0010)houTempL<=4'b0000;elsehouTempL<=houTempL+1'b1;endendendassign houL=houTempL;assign houLQ=((~houTempH[3])&(~houTempH[2])&houTempH[1]&(~houTempH[0])&(~houTempL[3])&(~houTempL[2])&houTempL[1]&houTempL[0]|houTempL[3]&(~houTempL[2])&(~houTempL[1])&houTempL[0])&(~minTempH[3])&minTempH[2]&(~minTempH[1])&minTempH[0]&minTempL[3]&(~minTempL[2])&(~minTempL[1])&minTempL[0]&(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//(houTempH=0010,houTempL=0011|houTempL=1001),minTempH=0101,minTempL=1001,secTe mpH=0101,secTempL=1001//时十位----------------always@(posedge clk or posedge clr or posedge clr1 or posedge clr2)begin:P6if(clr==1'b1)houTempH<=4'b0000;else if(clr1==1'b1)houTempH<=4'b0001;else if(clr2==1'b1)houTempH<=4'b0010;else beginif(ena==1'b1&houLQ==1'b1)beginif(houTempH==4'b0010&houTempL==4'b0011)houTempH<=4'b0000;elsehouTempH<=houTempH+1'b1; endendendassign houH=houTempH; endmodule7、仿真波形。

数字系统实验指导书1

数字系统实验指导书1

数字系统实验指导书实验一开发环境使用训练实验二基本语法使用训练实验三组合、时序逻辑电路设计实验四有限状态机设计实验一开发环境使用训练一、实验目的1.掌握QuartusII使用方法;2.掌握原理图输入设计方法。

二、实验仪器1.微型计算机一台2.QuartusII 软件三、实验原理1.运行QuartusII软件,原理图输入,进行设计。

图1 QuartusII软件界面2. 3-8译码器原理图图1 3-8译码器原理图3. 新建VHDL文件参考程序:library ieee;use ieee.std_logic_1164.all;entity decoder isPort ( aa: in std_logic_vector(2 downto 0);qq: out std_logic_vector(7 downto 0));end decoder;architecture one of decoder isbeginprocess(aa)begincase aa iswhen “000” => qq<=”00000001”;when “001” => qq<=”00000010”;when “010” => qq<=”00000100”;when “011” => qq<=”00001000”;when “100” => qq<=”00010000”;when “101” => qq<=”00100000”;when “110” => qq<=”01000000”;when “111” => qq<=”10000000”;end case;end process;end one;四、实验内容及步骤步骤1:打开QuartusII软件;步骤2:创建工程;步骤3:打开原理图编辑器;(步骤3:新建VHDL文件)步骤4:原理图编辑;(步骤4:编辑VHDL文件)步骤5:引脚命名;(无)步骤6:保存原理图,并将设计文件加入工程;(步骤5:保存VHDL文件,将设计文件加入工程。

数字系统设计 实验报告

数字系统设计 实验报告

数字系统设计实验报告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节中的设计步骤,我们定义输入数据的格式和表示方法,然后实现加法器的逻辑电路和控制电路。

数字电路与系统设计实验报告

数字电路与系统设计实验报告

数字电路与系统设计实验报告学院:班级:姓名:实验一基本逻辑门电路实验一、实验目的1、掌握TTL与非门、与或非门和异或门输入与输出之间的逻辑关系。

2、熟悉TTL中、小规模集成电路的外型、管脚和使用方法。

二、实验设备1、二输入四与非门74LS00 1片2、二输入四或非门74LS02 1片3、二输入四异或门74LS86 1片三、实验内容1、测试二输入四与非门74LS00一个与非门的输入和输出之间的逻辑关系。

2、测试二输入四或非门74LS02一个或非门的输入和输出之间的逻辑关系。

3、测试二输入四异或门74LS86一个异或门的输入和输出之间的逻辑关系。

四、实验方法1、将器件的引脚7与实验台的“地(GND)”连接,将器件的引脚14与实验台的十5V连接。

2、用实验台的电平开关输出作为被测器件的输入。

拨动开关,则改变器件的输入电平。

3、将被测器件的输出引脚与实验台上的电平指示灯(LED)连接。

指示灯亮表示输出低电平(逻辑为0),指示灯灭表示输出高电平(逻辑为1)。

五、实验过程1、测试74LS00逻辑关系(1)接线图(图中K1、K2接电平开关输出端,LED0是电平指示灯)(2)真值表2、测试74LS02逻辑关系(1)接线图(2)真值表3、测试74LS86逻辑关系接线图(1)接线图(2)真值表六、实验结论与体会实验是要求实践能力的。

在做实验的整个过程中,我们首先要学会独立思考,出现问题按照老师所给的步骤逐步检查,一般会检查处问题所在。

实在检查不出来,可以请老师和同学帮忙。

实验二逻辑门控制电路实验一、实验目的1、掌握基本逻辑门的功能及验证方法。

2、掌握逻辑门多余输入端的处理方法。

3、学习分析基本的逻辑门电路的工作原理。

二、实验设备1、基于CPLD的数字电路实验系统。

2、计算机。

三、实验内容1、用与非门和异或门安装给定的电路。

2、检验它的真值表,说明其功能。

四、实验方法按电路图在Quartus II上搭建电路,编译,下载到实验板上进行验证。

四川大学操作系统课程设计第三次实验报告生产者和消费者

四川大学操作系统课程设计第三次实验报告生产者和消费者

实验报告(学生打印后提交)实验名称: 生产者和消费者问题实验时间: 2023年 5 月 5日●实验人员:●实验目的:掌握基本的同步互斥算法, 理解生产者和消费者模型。

●了解Windows 2023/XP中多线程的并发执行机制, 线程间的同步和互斥。

●学习使用Windows 2023/XP中基本的同步对象, 掌握相应的API●实验环境: WindowsXP + VC++6.0●运用Windows SDK提供的系统接口(API, 应用程序接口)完毕程序的功能。

API是操作系统提供的用来进行应用程序设计的系统功能接口。

使用API, 需要包含对API函数进行说明的SDK头文献, 最常见的就是windows.h实验环节:1.读懂源程序.2.编辑修改源程.......................................实验陈述:1.基础知识:本实验用到几个API函数:CreateThread CreateMutex, WaitForSingleObject, ReleaseMutexCreateSemaphore, WaitForSingleObject, ReleaseSemaphore, ReleaseMutex, nitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection。

这些函数的作用:CreateThread, 功能:创建一个线程, 该线程在调用进程的地址空间中执行。

CreateMutex,功能:产生一个命名的或者匿名的互斥量对象。

WaitForSingleObject(相应p操作)锁上互斥锁, ReleaseMutex(相应v操作)打开互斥锁.。

CreateSemaphore, 创建一个命名的或者匿名的信号量对象。

信号量可以看作是在互斥量上的一个扩展。

WaitForSingleObject, 功能:使程序处在等待状态, 直到信号量(或互斥量)hHandle出现或者超过规定的等待最长时间, 信号量出现指信号量大于或等于1, 互斥量出现指打开互斥锁。

74138的实验报告

74138的实验报告

(7) 学习定时分析工具的使用方法。

74138 的实验报告数字系统设计综合实验报告 数字系统设计综合实验报告 实验名称 :1 、加法器设计2、编码器设计3、译码器设计4、数据选择器设计5、计数器设计 6、累加器设计 7、交通灯控制器设计班级: 姓名: 学号: 指导老师 :实验 1 加法器设计掌握用 Verilog HDL 语言设计多位加法器的方法。

(6) 学习运用波形仿真验证程序的正确性。

1) 实验目的(1) 复习加法器的分类及工作原理。

(2) 掌握用图形法设计半加器的方法。

(3) 掌握用元件例化法设计全加器的方法。

(4) 掌握用元件例化法设计多位加法器的方法。

(5)2) 实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。

目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。

加法器可分为1 位加法器和多位加法器两大类。

1 位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。

(1) 半加器如果不考虑来自低位的进位而将两个1 位二进制数相加,称半加。

实现半加运算的电路则称为半加器。

若设A和B是两个1位的加数,S是两者相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到。

(2) 全加器在将两个1 位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。

实现全加运算的电路则称为全加器。

若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向咼位的进位。

则由二进制加法运算规则可以得到3)(1)(2)(3) 实验内容及步骤用图形法设计半加器,仿真设计结果。

用原件例化的方法设计全加器,仿真设计结果用原件例化的方法设计一个4 为二进制加法器,仿真设计结果,进行定时分析。

(4) 用Verilog HDL 语言设计一个4 为二进制加法器,仿真设计结果,进行定时分析。

EDA实验报告

EDA实验报告

一MAX –plusII及开发系统使用一、实验目的1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路2、掌握层次化设计的方法3、熟悉DXT-BⅢ型EDA试验开发系统的使用二、主要实验设备PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。

三、实验原理数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。

它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。

因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面:1、实验器材集中化,所有实验基本上在一套实验设备上进行。

传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。

而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致;2、实验耗材极小(基本上没有耗材);3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;4、下载后,实验结果清晰;5、实验仪器损耗少,维护简单;下面,我们就本套实验设备做一个简单的介绍。

(一)Max+plusⅡ10.0的使用。

1、Max+PlusII软件的安装步骤:第一步:系统要求奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果大家只进行仿真的话,对系统没要求)第二步:安装点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。

第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,将此文件复制到你的安装目录下(你的安装目录可放在任一个驱动器下,然后建立一个Max10的文件夹,将系统安装在此文件夹中,安装后此文件夹中会有三个文件夹)的任一个文件夹中,要清楚位置。

第四步:注册启动Max+PlusII 软件,可以从开始-->程序-->Altera-->Max+PlusII 打开,也可以建立一个快捷方式在桌面上。

数字系统电路实验报告(3篇)

数字系统电路实验报告(3篇)

第1篇一、实验目的1. 理解数字系统电路的基本原理和组成。

2. 掌握数字电路的基本实验方法和步骤。

3. 通过实验加深对数字电路知识的理解和应用。

4. 培养学生的动手能力和团队合作精神。

二、实验原理数字系统电路是由数字逻辑电路构成的,它按照一定的逻辑关系对输入信号进行处理,产生相应的输出信号。

数字系统电路主要包括逻辑门电路、触发器、计数器、寄存器等基本单元电路。

三、实验仪器与设备1. 数字电路实验箱2. 数字万用表3. 示波器4. 逻辑分析仪5. 编程器四、实验内容1. 逻辑门电路实验(1)实验目的:熟悉TTL、CMOS逻辑门电路的逻辑功能和测试方法。

(2)实验步骤:1)搭建TTL与非门电路,测试其逻辑功能;2)搭建CMOS与非门电路,测试其逻辑功能;3)测试TTL与门、或门、非门等基本逻辑门电路的逻辑功能。

2. 触发器实验(1)实验目的:掌握触发器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建D触发器电路,测试其逻辑功能;2)搭建JK触发器电路,测试其逻辑功能;3)搭建计数器电路,实现计数功能。

3. 计数器实验(1)实验目的:掌握计数器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建同步计数器电路,实现加法计数功能;2)搭建异步计数器电路,实现加法计数功能;3)搭建计数器电路,实现定时功能。

4. 寄存器实验(1)实验目的:掌握寄存器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建4位并行加法器电路,实现加法运算功能;2)搭建4位并行乘法器电路,实现乘法运算功能;3)搭建移位寄存器电路,实现数据移位功能。

五、实验结果与分析1. 逻辑门电路实验通过搭建TTL与非门电路和CMOS与非门电路,测试了它们的逻辑功能,验证了实验原理的正确性。

2. 触发器实验通过搭建D触发器和JK触发器电路,测试了它们的逻辑功能,实现了计数器电路,验证了实验原理的正确性。

3. 计数器实验通过搭建同步计数器和异步计数器电路,实现了加法计数和定时功能,验证了实验原理的正确性。

GQY数字实验室实验手册(定稿)

GQY数字实验室实验手册(定稿)

GQY数字实验室实验手册(定稿)实验介绍数字实验室是用来实现数字系统设计和验证的实验室。

通过数字实验室的实验,我们可以学习数字系统原理,设计数字电路,熟悉数字电路元器件,并能够利用仿真软件模拟数字电路原理和性能。

实验环境实验室使用的环境是Quartus II。

Quartus II是由美国Altera公司开发的集成电路设计环境,它可以对FPGA进行开发和编程,支持硬件描述语言VHDL、Verilog 等,并提供了各种设备结构模拟和嵌入式软件开发工具。

为了保证实验顺利进行,我们需要在实验前安装好Quartus II,并准备好一台配备好USB口的电脑。

实验内容实验一:门电路的设计及仿真本实验通过设计门电路和仿真验证电路功能来加深对数字逻辑门电路的理解。

实验步骤:1.使用Quartus II进行门电路的设计,选择电路类型、连接输入输出端口。

2.应用原理和方法,确定逻辑电路的设计方法和设计步骤,如AND门、OR门等等。

3.进行电路仿真,调试和验证模拟电路符合设计规范。

实验二:数码管显示实验本实验通过使用FPGA设计数码管显示电路,将数字信号传输到数码管,实现数字显示的功能。

实验步骤:1.选择数字信号源,使用Quartus II进行设计和仿真。

2.应用编写数字显示的程序,确定采样频率和捕获时间以及数字信号的显示范围。

3.利用实验结果,对数字信号功能进行输出、显示操作。

实验三:全加器设计全加器实验是对加法器的深入研究,通过全加器的设计和验证来加深对加法器的理解。

实验步骤:1.使用Quartus II进行电路设计,实现逻辑门和VLHDL语言的混合设计,完成全加器的搭建。

2.应用原理和方法,认识全加器单元的功能,并深入理解电路原理。

3.进行电路的仿真和验证,调试电路,确保电路符合设计规范。

实验四:时序逻辑电路设计本实验通过时序逻辑电路的设计和仿真验证,深入了解D触发器、JK触发器等的原理和作用。

实验步骤:1.选择时序逻辑电路器件,使用Quartus II进行设计,进行时序逻辑模拟仿真。

数字系统设计综合实验报告参考模板

数字系统设计综合实验报告参考模板

数字系统设计综合实验报告实验名称:1、加法器设计2、编码器设计3、译码器设计4、数据选择器设计5、计数器设计6、累加器设计7、交通灯控制器设计班级:姓名:学号:指导老师:实验1 加法器设计1)实验目的(1)复习加法器的分类及工作原理。

(2)掌握用图形法设计半加器的方法。

(3)掌握用元件例化法设计全加器的方法。

(4)掌握用元件例化法设计多位加法器的方法。

(5)掌握用Verilog HDL语言设计多位加法器的方法。

(6)学习运用波形仿真验证程序的正确性。

(7)学习定时分析工具的使用方法。

2)实验原理加法器是能够实现二进制加法运算的电路,是构成计算机中算术运算电路的基本单元。

目前,在数字计算机中,无论加、减、乘、除法运算,都是化为若干步加法运算来完成的。

加法器可分为1位加法器和多位加法器两大类。

1位加法器有可分为半加器和全加器两种,多位加法器可分为串行进位加法器和超前进位加法器两种。

(1)半加器如果不考虑来自低位的进位而将两个1位二进制数相加,称半加。

实现半加运算的电路则称为半加器。

若设A和B是两个1位的加数,S 是两者相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到。

(2)全加器在将两个1位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位三个数相加,这种运算称全加。

实现全加运算的电路则称为全加器。

若设A、B、CI分别是两个1位的加数、来自低位的进位,S是相加的和,C是向高位的进位。

则由二进制加法运算规则可以得到:3)实验内容及步骤(1)用图形法设计半加器,仿真设计结果。

(2)用原件例化的方法设计全加器,仿真设计结果(3)用原件例化的方法设计一个4为二进制加法器,仿真设计结果,进行定时分析。

(4)用Verilog HDL语言设计一个4为二进制加法器,仿真设计结果,进行定时分析。

(5)分别下载用上述两种方法设计4为加法器,并进行在线测试。

4)设计1)用图形法设计的半加器,如下图1所示,由其生成的符号如图2所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四简易数字钟下载1、实验目的1)学习掌握数字系统综合设计方法。

2)学习掌握层次设计方法。

3)学习掌握设计下载方法。

4)学习掌握实验系统使用方法。

2、实验原理数字钟是对输入时基秒脉冲进行计数,依次输出秒数值、分数值、小时数值,从而确定时钟时间,其原理框图如下图所示。

Image简易数字钟原理图简易数字钟原理图实际的数字钟设计中还需要增加年月日的功能,这里框图中也省略了校时功能的结构。

3、实验内容1)选择XC2S200PQ208器件建立一个新的工程。

2)在上述工程中,采用VHDL语言的方法设计上述简易数字钟。

3)参考实验系统使用说明,按下列要求锁定引脚。

秒、分钟、小时由实验系统的J1、J2输出,显示输出的时分秒间隔一位数码管。

时钟输入由J7的1脚输入。

4)下载编程并验证设计结果。

4、实验设备1)清华同方PⅣ 2.4G\256M60G2)ISE 6.2i—Windows软件系统3)多功能EDA实验系统(V型)5、实验步骤1)写出简易数字钟的设计程序。

2)画出简易数字钟的仿真波形。

3)将程序下载到芯片中。

a.首先点击菜单Assignments->Device,选择Device family->Cyclone IV E,然后选择芯片型号Available device->EP4CE6F17C8。

b.进行管脚锁定,选择菜单Assignments->Pin Planner,在Location列下为输入\输出变量选择对应的管脚进行锁定。

c.选择快捷菜单进行编译Start Compilation,生成下载文件。

d.点击Tools->Programmere.点击Add Device,在Device->Cyclone IVE中,选择Devicename->EP4CE6F17f.点击Add File,点开Output_file文件夹,选择*.sof文件g.删除显示为none的EP4CE6F17文件h.点击Start,进行下载。

实验板的晶振为50MHZ,数码管扫描频率为1000HZ。

管脚锁定为:clk_in PIN_E1 //1HZ的时钟脉冲信号clr PIN_E15 //将时间设置为00:00:00clr1 PIN_E16 //将时间设置为19:58:58clr2 PIN_M16 //将时间设置为23:58:58led_dig[7] PIN_A5 //数码管显示led_dig[6] PIN_B8led_dig[5] PIN_A7led_dig[4] PIN_B6led_dig[3] PIN_B5led_dig[2] PIN_A6led_dig[1] PIN_A8led_dig[0] PIN_B7led_sel[5] PIN_A4 //数码管选择led_sel[4] PIN_B4led_sel[3] PIN_A3led_sel[2] PIN_B3led_sel[1] PIN_A2led_sel[0] PIN_B16、程序代码clock.vmodule clock (clk_1Hz,clr,clr1,clr2,secH,secL,minH,minL,houH,houL);input clk_1Hz;input clr,clr1,clr2;output [3:0] secH,secL,minH,minL,houH,houL;reg [3:0] secTempH,secTempL,minTempH,minTempL,houTempH,houTempL; reg warn;wire secLQ,secHQ,minLQ,minHQ,houLQ;always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedge clr2)begin:P1//秒个位----------------------if(clr==1'b0)secTempL<=4'b0000;else if(clr1==1'b0)secTempL<=4'b1000;else if(clr2==1'b0)secTempL<=4'b1000;else beginif(secTempL==4'b1001)secTempL<=4'b0000;elsesecTempL<=secTempL+1'b1;endendassign secL=secTempL;assign secLQ=secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0]; //秒十位-------------------------always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedge clr2)begin:P2if(clr==1'b0)secTempH<=4'b0000;else if(clr1==1'b0)secTempH<=4'b0101;else if(clr2==1'b0)secTempH<=4'b0101;else beginif(secLQ==1'b1)beginif(secTempH==4'b0101)secTempH<=4'b0000;else secTempH<=secTempH+1'b1;endendendassign secH=secTempH;assign secHQ=(~secTempH[3])&secTempH[2]& (~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//secTempH=0101,secTempL=1001//分个位-----------------always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedge clr2)begin:P3if(clr==1'b0)minTempL<=4'b0000;else if(clr1==1'b0)minTempL<=4'b1000;else if(clr2==1'b0)minTempL<=4'b1000;else beginif(secHQ==1'b1)beginif(minTempL==4'b1001)minTempL<=4'b0000;elseminTempL<=minTempL+1'b1;endendendassign minL=minTempL;assign minLQ=minTempL[3]&(~minTempL[2])& (~minTempL[1])&minTempL[0]&(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//minTempL=1001,secTempH=0101,secTempL=1001//分十位------------------always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedge clr2)begin:P4if(clr==1'b0)minTempH<=4'b0000;else if(clr1==1'b0)minTempH<=4'b0101;else if(clr2==1'b0)minTempH<=4'b0101;else beginif(minLQ==1'b1)beginif(minTempH==4'b0101)minTempH<=4'b0000;elseminTempH<=minTempH+1'b1;endendendassign minH=minTempH;assign minHQ=(~minTempH[3])&minTempH[2]& (~minTempH[1])&minTempH[0]&minTempL[3]&(~minTempL[2])&(~minTempL[1])&minTempL[0]&(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//minTempH=0101,minTempL=1001,secTempH=0101,secTempL=1001//时个位--------------always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedge clr2)begin:P5if(clr==1'b0)houTempL<=4'b0000;else if(clr1==1'b0)houTempL<=4'b1001;else if(clr2==1'b0)houTempL<=4'b0011;else beginif(minHQ==1'b1)beginif(houTempL==4'b1001)houTempL<=4'b0000;else if(houTempL==4'b0011&houTempH==4'b0010)houTempL<=4'b0000;elsehouTempL<=houTempL+1'b1;endendendassign houL=houTempL;assign houLQ=((~houTempH[3])&(~houTempH[2])&houTempH[1]&(~houTempH[0])&(~houTempL[3])&(~houTempL[2])&houTempL[1]&houTempL[0]|houTempL[3]&(~houTempL[2])&(~houTempL[1])&houTempL[0])&(~minTempH[3])&minTempH[2]&(~minTempH[1])&minTempH[0]&minTempL[3]&(~minTempL[2])&(~minTempL[1])&minTempL[0]&(~secTempH[3])&secTempH[2]&(~secTempH[1])&secTempH[0]&secTempL[3]&(~secTempL[2])&(~secTempL[1])&secTempL[0];//(houTempH=0010,houTempL=0011|houTempL=1001),minTempH=0101,minTempL=10 //时十位----------------always@(posedge clk_1Hz or negedge clr or negedge clr1 or negedgeclr2)begin:P6if(clr==1'b0)houTempH<=4'b0000;else if(clr1==1'b0)houTempH<=4'b0001;else if(clr2==1'b0)houTempH<=4'b0010;else beginif(houLQ==1'b1)beginif(houTempH==4'b0010&houTempL==4'b0011)houTempH<=4'b0000;elsehouTempH<=houTempH+1'b1;endendendassign houH=houTempH;endmodulefreq_div1.vmodule freq_div1(clk_in_50MHz,clk_out_1Hz,clk_out_1KHz);input clk_in_50MHz;output clk_out_1Hz,clk_out_1KHz;reg[25:0] temp_counter;always @ (posedge clk_in_50MHz)beginif(temp_counter == 26'd49_999_999)temp_counter <= 26'd0;elsetemp_counter <= temp_counter + 26'd1;endassign clk_out_1Hz = temp_counter[25];assign clk_out_1KHz = temp_counter[14];endmodulefreq_div.vmodule freq_div(clk_in_50MHz,clk_out_1Hz,clk_out_1KHz); input clk_in_50MHz;output clk_out_1Hz,clk_out_1KHz;reg clk_out_1Hz,clk_out_1KHz;reg[15:0] temp_counter_1KHz;reg[8:0] temp_counter_1Hz;reg temp_clk_out_1KHz;reg temp_clk_out_1Hz;//reg temp_counter_1Hz;parameter N_1KHz=50000;parameter N_1Hz=1000;always@(posedge clk_in_50MHz)if(N_1KHz%2==0)beginif(temp_counter_1KHz<N_1KHz/2-1)begintemp_counter_1KHz<=temp_counter_1KHz+1'b1; endelsebegintemp_counter_1KHz<=16'b0;temp_clk_out_1KHz<=~temp_clk_out_1KHz;endclk_out_1KHz<=temp_clk_out_1KHz;endalways@(posedge temp_clk_out_1KHz)if(N_1Hz%2==0)beginif(temp_counter_1Hz<N_1Hz/2-1)begintemp_counter_1Hz<=temp_counter_1Hz+1'b1; endelsebegintemp_counter_1Hz<=16'b0;temp_clk_out_1Hz<=~temp_clk_out_1Hz;endclk_out_1Hz<=temp_clk_out_1Hz;endendmoduledisplay.vmodule display(led_sel_in,secH,secL,minH,minL,houH,houL,led_dig,led_sel_out);input[5:0] led_sel_in;input[3:0] secH,secL,minH,minL,houH,houL;output[7:0] led_dig;output[7:0] led_sel_out;reg[7:0] led_dig;reg[3:0] dig_temp;assign led_sel_out=led_sel_in;always@(led_sel_in,secH,secL,minH,minL,houH,houL) begincase(led_sel_in)6'b111110:dig_temp<=secL;6'b111101:dig_temp<=secH;6'b111011:dig_temp<=minL;6'b110111:dig_temp<=minH;6'b101111:dig_temp<=houL;6'b011111:dig_temp<=houH;endcasecase(dig_temp)4'd0:led_dig<=8'b11000000; 4'd1:led_dig<=8'b11111001; 4'd2:led_dig<=8'b10100100; 4'd3:led_dig<=8'b10110000; 4'd4:led_dig<=8'b10011001; 4'd5:led_dig<=8'b10010010; 4'd6:led_dig<=8'b10000010; 4'd7:led_dig<=8'b11111000; 4'd8:led_dig<=8'b10000000; 4'd9:led_dig<=8'b10010000; endcaseendendmodulescanner.vmodule scanner(clk_in,led_sel); input clk_in;output[5:0] led_sel;reg[5:0] led_sel;integer i;always@(posedge clk_in) begincase(i)0:beginled_sel<=6'b111110; i=1;end1:beginled_sel<=6'b111101; i=2;end2:beginled_sel<=6'b111011; i=3;end3:beginled_sel<=6'b110111; i=4;end4:beginled_sel<=6'b101111; i=5;end5:beginled_sel<=6'b011111; i=0;endendcaseendendmodulejyszz.vmodule jyszz(clk_in,clr,clr1,clr2,led_sel,led_dig);input clk_in,clr,clr1,clr2;output[5:0] led_sel;output[7:0] led_dig;wire clk_1Hz,clk_1KHz;wire[5:0] led_sel_temp;wire[3:0] secL,secH,minL,minH,houL,houH;freq_div freq_div0(clk_in,clk_1Hz,clk_1KHz);scanner scanner0(clk_1KHz,led_sel_temp);clock clock0(clk_1Hz,clr,clr1,clr2,secH,secL,minH,minL,houH,houL); display display0(led_sel_temp,secH,secL,minH,minL,houH,houL,led_dig,led_sel);endmodule。

相关文档
最新文档