EDA实验报告实验3计数器电路设计
- 格式:doc
- 大小:416.50 KB
- 文档页数:12
计数器eda实验报告计数器EDA实验报告引言:计数器是数字电路中常见的基本模块之一,用于计算和记录输入脉冲信号的数量。
在本次实验中,我们将使用EDA工具对计数器进行设计和分析。
通过对计数器的EDA实验,我们旨在深入了解计数器的工作原理和性能特点。
一、实验目的本次实验的目的是通过EDA工具对计数器进行设计和分析,具体包括以下几个方面:1. 了解计数器的基本原理和工作方式;2. 学习使用EDA工具进行电路设计和仿真;3. 分析计数器的性能指标,如最大计数值、计数速度等。
二、实验步骤1. 设计计数器的电路原理图;2. 使用EDA工具进行电路仿真;3. 分析仿真结果,包括计数器的计数规律、计数速度等;4. 调整计数器的参数,观察对计数结果的影响;5. 总结实验结果并提出改进意见。
三、计数器的设计原理计数器是由触发器和逻辑门组成的电路,可以实现对输入脉冲信号的计数功能。
常见的计数器包括二进制计数器、十进制计数器等。
在本次实验中,我们将设计一个4位二进制计数器。
四、EDA工具的使用我们选择使用Xilinx ISE Design Suite进行电路设计和仿真。
该工具具有强大的功能和易于使用的界面,方便我们进行计数器的设计和分析。
五、仿真结果分析通过对计数器的仿真结果进行分析,我们可以得到以下结论:1. 计数器的计数规律:根据计数器的设计原理,我们可以观察到计数器的计数规律为二进制递增。
2. 计数器的计数速度:计数器的计数速度取决于输入脉冲信号的频率和计数器的时钟频率。
通过适当调整时钟频率,我们可以实现不同速度的计数。
六、参数调整与性能改进在实验过程中,我们可以通过调整计数器的参数来改进其性能。
例如,我们可以增加计数器的位数,以提高其计数范围;或者调整计数器的时钟频率,以改变其计数速度。
通过不断优化和改进,我们可以得到更加高效和灵活的计数器设计。
七、实验总结通过本次计数器EDA实验,我们深入了解了计数器的工作原理和性能特点,并学会了使用EDA工具进行电路设计和仿真。
模323计数器设计实验报告一、实验内容在QuartusII平台上,利用VHDL代码实现学号323计数器的设计,并在三位数码管显示出来。
二、实验步骤与过程分析1、建立工程。
打开Quartus II软件平台,点击File---〉new project wizard建立一个工程xuehao_323,工程所在文件夹名字为xuehao_323,设置顶层实体名称为xuehao_323,点击next设置device,按照实验箱上FPGA的芯片名更改编程芯片的设置。
分析:选择的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
2、添加VHDL文件。
在所在工程添加文件cnt10.vhd(十进制计数器),cnt_xuehao.vhd(323进制计数器),scan_led3_vhd.vhd(三位数码管显示),exp_cnt_xuehao323_7seg.vhd(数码管显示323三位学号计数器)四个文件。
这里通过老师给出的代码进行修改且理解:cnt10.vhd如下:分析:这是十进制计数器的VHDL代码设计,因为十进制有十个状态,所以输入数据和输出状态需要四位宽,其中输入端口有aclr 清零端,clock时钟信号,cnt_en使能端,data[3..0]数据输入,sload装载使能,当aclr为高电平有效时,输出清零,从0开始,计数为时钟信号clock的上升沿到来时且使能端cnt_en 为高电平有效时自动加1(sload为低电平时),如果装载使能sload为高电平有效时,则装载数据data[3..0],输出端口有两个,分别为cout(当q[3..0]为9时输出为高电平),q[3..0]变化为0—9循环变化。
cnt_xuehao.vhd分析如下:这里是调用cnt_10十进制计数器的元件例化来设计323(学号)计数器。
输入端口aclr(高电平有效清零端),clock(时钟信号上升沿有效),cnt_en(使能端),sload(装载时能,高电平有效时装在输入的数据),datab[3..0],datas[3..0],datag[3..0](三位学号的数据输入端,每位变化相当于一个十进制计数器);输出端口qb[3..0](百位)qs[3..0](十位)qg [3..0](个位)变化为qb qs qg=000到322共323中状态,当等于322时,输出cout为高电平指示达到一个循环。
EDA实验报告——计数器一、实验目的本实验主要是通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。
二、实验原理计数器是数字电路的重要组成部分,在数字电路的多个应用中都有着广泛的应用。
计数器可以实现多种数字处理功能,如二进制计数、定量计数、计时、频率分频等。
三、实验材料1. Protues软件2. 74LS90集成电路3. 7段数码管4. 4位拨动开关5. 4个LED灯6. 电路板、杜邦线等。
四、实验内容1. 给定 74LS90 计数器数据手册,分析本实验使用到的 74LS90 芯片的接口及特性。
2. 根据实验需求,用 Protues 软件搭建计数器电路图。
3. 在计数器电路图中连通 74LS90 芯片的译码器输出端口,设置与四个拨动开关相连的输入端口以及 LED 显示器输出端口,实现计数器的计数。
4. 在计数器的输出端口增加 7 段数码管,通过数码管显示计数值。
5. 根据实验需求搭建模电流源电路,对实验电路进行仿真分析,并对仿真结果进行评估。
五、实验步骤2. 从库中拖动 74LS90 芯片、7 段数码管、拨动开关、LED 灯等元件到设计图中。
4. 在 74LS90 芯片工作模式的选择端口接上拨动开关,选择计数器的计数方式。
5. 配置模电流源电路,并设置仿真参数。
6. 进行仿真并记录仿真结果。
七、实验结果本实验搭建的计数器能够正确地进行计数,并且将计数结果通过数码管和 LED 灯显示出来。
在进行仿真分析时,根据仿真数据评估实验电路的合理性。
本实验通过搭建计数器,了解计数器的基本原理和使用方法,掌握数字电路的设计方法及仿真分析方法。
实验中主要学习了数字计数器的结构、性能和工作原理,在搭建计数器电路时主要包括了 74LS90 芯片的接口和设置以及输入输出端口的设置。
通过本实验,我进一步了解了计数器的基本知识和原理,也学习了如何使用 Protues 软件进行电路的搭建和仿真。
EDA(二)数字部分电子线路仿真实验报告
实验名称:3位计时电路设计
姓名:
学号:
班级:通信
时间:2013.5
南京理工大学紫金学院电光系
一·实验目的
1·掌握74160等计数芯片的逻辑功能及使用方法。
2·了解3位计时电路的组成及工作原理。
二·实验原理
1.74160的逻辑符号及逻辑功能:
a.异步清零
b.同步置数
c.保持
d.同步计数
图1
2.用集成计数器构成任意进制计数器的方法
1)反馈复位法(清零法)
控制异步清零端CLR 来获得任意进制计数器。
D 0Q 1Q 2Q 3
Q 0CT=01,5D
D 1D 2D 3
C5/2,3,4+
M 1M 2
G 3
CTRDIV1CLR
LD EN
T
CLK
3CT=9
RCO
[1][2][4][8]
74160
CLK
Q Q Q (c)
(b)
(a) 1 2
3
4
5
6
74160构成模6计数器
2)反馈置位法(置数法)
利用计数器的预置数控制端来获得任意进制计数器。
图274160用置数法构成模6计数器三·实验内容
4位计时电路,最高位是7段显示器
每次55,57,59秒的时候灯泡亮一次,59分59秒电路图
在59分59秒的时候灯泡亮
四·小结与体会
通过此次对3位计时电路设计的学习,我学会了用74160等芯片制作带显示功能的三位计数器.。
实验题目:计数器一、实验目的:1.掌握硬件描述语言对计数器的描述;2.掌握七段管的原理和使用。
二、设计过程⒈设计思路:用VHDL语言和原理图分别完成设计、仿真基本逻辑门电路计数器的设计;⒉设计方案:⑴用VHDL语言设计完成计数器。
⑵用实验指导PPT里所给出的基本逻辑门电路原理图,原理图完成设计、仿真基本逻辑门电路计数器的设计。
⒊设计步骤:用VHDL语言设计实现计数器:运行QuartusII软件,选择菜单File/New Project Wizard...,新建一个项目,选择cyclone系列的芯片;在此项目下新建VHDL文件,编写计数器代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count60 isport(clk,reset,en:in std_logic;co:out std_logic;qh,ql:buffer std_logic_vector(3 downto 0));end count60;architecture behave of count60 isbeginco<='1' when(qh="0101" and ql="1001") else '0';process(clk,reset,en)beginif(en='0' or reset='1') thenqh<="0000";ql<="0000";elsif (clk'event and clk='1') thenif (ql=9) then ql<="0000";if (qh=5) then qh<="0000";else qh<=qh+1;end if;else ql<=ql+1;end if;end if;end process;end behave;⑶将此文件进行编译.⑷新建一个vector waveform form波形图文件,设置为波形仿真,设置a,b的输入波形为时钟信号,a周期设置为10ns,b设置为20ns。
暨南大学本科实验报告专用纸课程名称 EDA实验成绩评定实验项目名称计数器电路设计指导教师郭江陵实验项目编号 03 实验项目类型验证实验地点 B305 学院电气信息学院系专业物联网工程组号: A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为; EDAPRO/240H实验仪主板的VCCIO 跳线器组中“”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的1、了解各种进制计数器设计方法2、了解同步计数器、异步计数器的设计方法3、通过任意编码计数器体会语言编程设计电路的便利三、实验原理时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。
计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。
利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。
输出显示模块用VHDL实现。
四、实验内容1、用74161构成8位二进制同步计数器(程序为T3-1);2、用74390构成8位二——十进制异步计数器(程序为T3-2);3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):0,2,5,3,4,6,1五、实验要求学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。
六、设计框图首先要熟悉传统数字电路中同步、异步计数器的工作与设计。
在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。
eda计数器的实验报告EDA计数器的实验报告引言:计数器是数字电路中常用的组合逻辑电路,用于实现对输入信号的计数功能。
EDA计数器是一种基于EDA(Electronic Design Automation,电子设计自动化)技术的计数器,利用EDA工具进行设计和仿真,能够更加高效地完成计数任务。
本实验旨在通过设计和实现EDA计数器,探索其原理和应用。
一、实验目的本实验的目的是通过设计和实现EDA计数器,深入理解计数器的工作原理,并掌握EDA技术在数字电路设计中的应用。
通过实验,我们将学习以下内容:1. 计数器的基本原理和分类;2. EDA工具的使用方法;3. 数字电路的设计与仿真。
二、实验步骤1. 确定计数器的功能要求:根据实验要求,我们需要设计一个4位二进制计数器,能够实现从0000到1111的计数功能。
2. 使用EDA工具进行设计:选择合适的EDA工具(如Verilog、VHDL等),根据计数器的功能要求,编写相应的代码。
3. 进行仿真:利用EDA工具提供的仿真功能,对设计的计数器进行仿真,验证其正确性和稳定性。
4. 进行综合和布局布线:将设计的计数器进行综合和布局布线,生成对应的逻辑网表和物理布局。
5. 进行时序分析和时序优化:对设计的计数器进行时序分析,优化其时序性能,确保其能够满足实际应用需求。
6. 进行静态和动态功耗分析:对设计的计数器进行静态和动态功耗分析,评估其功耗性能,并进行相应的优化。
三、实验结果与分析经过以上步骤的设计和优化,我们成功实现了一个4位二进制计数器。
通过EDA工具的仿真功能,我们验证了计数器的正确性和稳定性。
在时序分析和时序优化过程中,我们发现了一些潜在的时序问题,并进行了相应的优化,确保了计数器的正常工作。
在静态和动态功耗分析中,我们评估了计数器的功耗性能,并进行了一些优化措施,减少了功耗。
四、实验总结通过本次实验,我们深入学习了计数器的原理和分类,并掌握了EDA技术在数字电路设计中的应用。
EDA实验报告焦中毅201300121069实验1 4选1数据选择器的设计一、实验目的1.学习EDA软件的基本操作。
2.学习使用原理图进行设计输入。
3.初步掌握器件设计输入、编译、仿真和编程的过程。
4.学习实验开发系统的使用方法。
二、实验仪器与器材1.EDA开发软件一套2.微机一台3.实验开发系统一台4.打印机一台三、实验说明本实验通过使用基本门电路完成4选1数据选择器的设计,初步掌握EDA设计方法中的设计输入、编译、综合、仿真和编程的过程。
实验结果可通过实验开发系统验证,在实验开发系统上选择高、低电平开关作为输入,选择发光二极管显示输出电平值。
本实验使用Quartus II 软件作为设计工具,要求熟悉Quartus II 软件的使用环境和基本操作,如设计输入、编译和适配的过程等。
实验中的设计文件要求用原理图方法输入,实验时,注意原理图编辑器的使用方法。
例如,元件、连线、网络名的放置方法和放大、缩小、存盘、退出等命令的使用。
学会管脚锁定以及编程下载的方法等。
四、实验要求1.完成4选1数据选择器的原理图输入并进行编译;2.对设计的电路进行仿真验证;3.编程下载并在实验开发系统上验证设计结果。
五、实验结果4选1数据选择器的原理图:仿真波形图:管脚分配:实验2 四位比较器一、实验目的1.设计四位二进制码比较器,并在实验开发系统上验证。
2.学习层次化设计方法。
二、实验仪器与器材1.EDA 开发软件 一套 2.微机 一台 3.实验开发系统 一台 4.打印机 一台 5.其它器件与材料 若干 三、实验说明本实验实现两个4位二进制码的比较器,输入为两个4位二进制码0123A A A A 和0123B B B B ,输出为M (A=B ),G (A>B )和L (A<B )(如图所示)。
用高低电平开关作为输入,发光二极管作为输出,具体管脚安排可根据试验系统的实际情况自行定义。
四、实验要求1.用硬件描述语言编写四位二进制码 比较器的源文件; 2.对设计进行仿真验证; 3.编程下载并在实验开发系统上进行 硬件验证。
计数器一、实验目的1、设计一个带使能输入、进位输出及同步清0的增1十进制计数器2、设计一个带计数使能、同步清0、同步加载的4位计数器3、设计一个带使能、同步清0控制和进位输出的增14位二进制计数器,计数结果由一位7段码管显示。
4、设计一个带使能和同步清0控制的增1减18位二进制计数器,计数结果由7段数码管显示。
二、实验内容1、带使能、同步清0控制和进位输出的增14位二进制计数器VHDL源代码library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter2 isPort ( clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;co : out STD_LOGIC;y : out STD_LOGIC_VECTOR (6 downto 0));end counter2;architecture Behavioral of counter2 issignal cnt:STD_LOGIC_VECTOR(3 downto 0);signal led:STD_LOGIC_VECTOR(6 downto 0);beginprocess(clk)beginif(clk'event and clk='1')thenif clr='1' thencnt<=(others=>'0');elsif en='1' thenif cnt="1111" thencnt<="0000";elsecnt<=cnt+'1';end if;end if;end if;end process;co<='1' when cnt="1111" else '0';y<=not led;with cnt selectled<="1111001"when"0001","0100100"when"0010","0110000"when"0011","0011001"when"0100","0010010"when"0101","0000010"when"0110","1111000"when"0111","0000000"when"1000","0010000"when"1001","0001000"when"1010","0000011"when"1011","1000110"when"1100","0100001"when"1101","0000110"when"1110","0001110"when"1111","1000000"when others;end Behavioral;激励文件源代码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY counter_2_tbw_vhd ISEND counter_2_tbw_vhd;ARCHITECTURE behavior OF counter_2_tbw_vhd IS-- Component Declaration for the Unit Under Test (UUT) COMPONENT counter2PORT(clk : IN std_logic;clr : IN std_logic;en : IN std_logic;co : OUT std_logic;y : OUT std_logic_vector(6 downto 0));END COMPONENT;--InputsSIGNAL clk : std_logic := '0';SIGNAL clr : std_logic := '0';SIGNAL en : std_logic := '0';--OutputsSIGNAL co : std_logic;SIGNAL y : std_logic_vector(6 downto 0);BEGIN-- Instantiate the Unit Under Test (UUT)uut: counter2 PORT MAP(clk => clk,clr => clr,en => en,co => co,y => y);clk<=not clk after 20 ns;tb : PROCESSBEGINclr<='1','0' after 30 ns;en<='0','1' after 20 ns;-- Wait 100 ns for global reset to finish--wait for 100 ns;-- Place stimulus herewait; -- will wait foreverEND PROCESS;END;功能仿真时序仿真管脚设置NET "clk" LOC = "E10" ;NET "clr" LOC = "L13" ;NET "co" LOC = "F12" ;NET "en" LOC = "L14" ;NET "y<0>" LOC = "B4" ;NET "y<1>" LOC = "A4" ;NET "y<2>" LOC = "D5" ;NET "y<3>" LOC = "C5" ;NET "y<4>" LOC = "A6" ;NET "y<5>" LOC = "B6" ;NET "y<6>" LOC = "E7" ;实验现象七段数码管显示0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F,每次循环完成co所接led灯亮一下,表示进位。
实验四计数器设计一、实验目的1 学习时序逻辑设计方法。
2 学习任意进制计数器的设计方法。
二、实验内容设计一个十进制的加法计数器, 要求控制信号包括时钟clk、时钟使能en、数据加载控制信号load、复位信号reset, 输出信号包括数据输出dout、进位输出cout。
在QuartusII软件中对该设计进行编译、综合、时序仿真,下载验证。
三、实验步骤:1.建立新文件夹,建立工程;2.输入verilog设计;3.编译;4.时序仿真。
5.分配适当引脚,下载验证四、实验报告根据以上的实验内容写出实验报告,包括程序设计、时序仿真结果,实验硬件验证结果等。
五、扩展部分1 在任意计数器设计上置数法和复位法有何区别,同步异步复位有何区别?2 设计外围电路让计数的结果能够在数码管上显示出来。
参考程序:module counter (reset,clk,out,count); input reset, clk;output out;reg out;output [m-1:0] count;reg[m-1:0] count;always @(posedge clk)beginif (!reset)begincount<=0;out<=0;endelse if (count= =n-1)beginout<=1;count<=0;endelse begincount<=count+1;out<=0;endendendmodule1。
EDA计数器实验报告一、实验目的:1、深刻理解VHDL语言元件例化的方法。
2、掌握计数器的设计原理以及设计方法。
3、结合以前学过的数码管扫描知识完成计数器显示学号后三位。
二、实验原理:计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示学号后三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。
使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。
实验内容:本次实验要求设计一个模为自己学号后 3 位的计数器(模108)。
各个零部件可以用LPM来定制,而顶层则要使用VHDL语言以元件例化的方法来实现。
1、VHDL语言的部分代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity exp_cnt108 isport(clk0,clk,clrn,En:in std_logic;b,s,g:out std_logic_vector(3 downto 0);c:out std_logic;cc:out std_logic;sb,ss,sg:out std_logic;ga,gb,gc,gd,ge,gf,gg:out std_logic);end exp_cnt108;architecture rtl of exp_cnt108 iscomponent count4port(clk:in std_logic;q:out std_logic_vector(1 downto 0));end component;component decoder2_3port(data:in std_logic_vector(1 downto 0);eq0,eq1,eq2:out std_logic);end component;component mux4_3_1port( data0x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data1x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);data2x : IN STD_LOGIC_VECTOR (3 DOWNTO 0);sel : IN STD_LOGIC_VECTOR (1 DOWNTO 0);result : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));end component;component my7449port(cout:in std_logic_vector(3 downto 0);a,b,c,d,e,f,g:out std_logic);end component;component exp_cnt10port(Clk,clrn,En,cin:in std_logic;cq:out std_logic_vector(3 downto 0);cout:out std_logic);end component;signal clr,cin:std_logic;signal q:std_logic_vector(1 downto 0);signal coutb,couts,coutg,cout:std_logic_vector(3 downto 0);signal c1,c2,c3: std_logic;signal eq0,eq1,eq2: std_logic;signal qa,qb,qc,qd,qe,qf,qg: std_logic;beginu0:count4 port map(clk0,q);u1:decoder2_3 port map(q,eq0,eq1,eq2);sb<=eq2;ss<=eq1;sg<=eq0;cin<='1';u2:exp_cnt10 port map(clk,clrn or clr,En,cin,coutg,c1);u3:exp_cnt10 port map(clk,clrn or clr,En,c1,couts,c2);u4:exp_cnt10 port map(clk,clrn or clr,En,c2 and c1,coutb,c3);b<=coutb;s<=couts;g<=coutg;cc<=c1;c<=c2;clr<=coutb(0) and coutg(3);u5:mux4_3_1 port map(coutg,couts,coutb,q,cout);u6:my7449 port map(cout,qa,qb,qc,qd,qe,qf,qg);ga<=qa;gb<=qb;gc<=qc;gd<=qd;ge<=qe;gf<=qf;gg<=qg;end rtl;三、波形仿真及下载验证:如图所示:波形仿真:仿真参数设置:Entime:45us Grid size:100ns clk:clock→period:10ns波形说明:clrn为0,En为0时,保持;clrn为0,En为1时,计数;clrn为1时,清零;由仿真图知,计数到107后从0开始计数。
实验报告(计算机类)一、实验目的1.了解VHD1语言编程方法,学会熟练运用quartus软件2.了解如何使用VHD1设计序列计数器二、内容与设计思想1.序列计数器是经常出现在通信协议编码器电路中的器件,其基本功能是对一个8bit宽的二进制中出现的连续为O的个数进行统计2.在单个时钟脉冲时间内,完成对一个8bit宽的二进制中出现的连续为O的个数进行统计,且要求只能有一串连O出现,即8bit中O是相邻的。
此时认为输出有效,并且输出连O的个数;否则认为无效,并且连O计数器清零,同时输出错误指示信号。
这里规定全1的序列为有效序列,其连O个数为O个。
三、使用环境winXP或Win7Quartusii编程环境四、核心代码及调试过程------ 序列计数器 ------------------------------------------------------------ Z erOI模块----------------------------------------------Iibraryieee;useieee.std_Iogic_1164.aII;useieee.std_Iogic_unsigned.a11;entityzero1isport(d:inStC11OgiJVeGtOr(7downto0);cIk,cIr:instd_1ogic;ge:outstd_Iogic_vector(3downtoO);aIm:outstd_1ogic);endzero1;architectureze_arcofzero1isbeginprocess(cIk,cIr)variabIes:std_Iogic_vector(6downtoO);variabIesd,ss:std_Iogic_vector(3downtoO);begin ifcIr='O'thena1m<=,O';eIsifcIk,eventandcIk='1,thens(O):=d(O)xord(1);ifs(O)=,Γthenss:=ss+1;endif;s(1):=d(1)xord⑵;ifs(1)=,Γthenss:=ss+1;endif;s⑵:二d(2)xord⑶;ifs(2)=,Γthenss:=ss+1;endif;s⑶:二d(3)xord(4);ifs(3)=,Γthenss:=ss+1;endif;s(4):二d(4)xord⑸;ifs(4)=,1,thenss:=ss+1;endif;s⑸:二d(5)xord(6);ifs(5)=,Γthenss:=ss+1;endif;s(6):=d(6)xord⑺;ifs(6)=,Γthenss:=ss+1;endif;ifd(O)=,Γthensd:=sd+1;endif;ifd(1)=,Γthensd:=sd+1;endif;ifd(2)=,Γthensd:=sd+1;endif;ifd(3)=,Γthensd:=sd+1;endif;ifd(4)=,Γthensd:=sd+1;endif;ifd(5)=,Γthensd:=sd+1;endif;ifd(6)=,Γthensd:=sd+1;endif;ifd(7)=,Γthensd:=sd+1;endif;ifd(0)=,0,thenifss>1thena1m<=,Γ;ge<=',0000";eIsege<=8-sd;endif;endif;endif;sd:="0000”;SSuooo0”;endprocess;endze_arc;disp模块Iibraryieee;useieee.std_Iogic_1164.aII;entitydispisport(d:instd_Iogic_vector(3downto0);q:outstd_Iogic_vector(6downto0));enddisp;architecturedisp_arcofdispisbeginprocess(d)begincasediswhen,,0000,,=>q<=,,011111Γ,when“0001”二>qU00001Wwhen,,0010,,=>q<=,,101101Γ,when-001Γ,=>q<=,,100111Γ,when“010(r=>q<="110O11(Fwhen-010Γ,=>q<=,,110110Γ,when-0110',=>q<=,>111110Γ,when-011Γ,=>q<=,,010011Γ,when,,1000,,=>q<=,,110111Γ,whenothers=>q<=,,110111Γ,endcase;endprocess;enddisp_arc;序列计数器总体框图;五、总结六、附录(仿真结果)"3|区』3%㉓I。
EDA实验报告CNT9999计数器的设计指导老师:***班级:电技1503学号:***********姓名:***交通工程学院2017.10.15实验一0~9999的计数器电路的设计1.实验目的(1)进一步熟悉和掌握Quartus II软件的使用。
(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的使用。
(3)学习和掌握VHDL进程语句和元件例化语句的使用。
2.实验内容设计并调试好一个计数范围为0~9999的4位十进制计数器电路CNT9999,并用GW48-CK或其他EDA实验开发系统进行硬件验证。
3实验条件(1)开发软件:Quartus II 13.0。
(2)实验设备:GW48-CK EDA 实验开发系统。
(3)拟用芯片:EP3C55F484C7。
4.实验设计1)系统原理框图为了简化设计并便于显示,本计数器电路CNT9999的设计分为两个层次,其中底层电路包括四个十进制计数器模块CNT10,再由这四个模块按照图1.1所示的原理图构成顶层电路CNT9999.图1.1 CNT9999电路原理图2)VHDL程序计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
CNT10的VHDL源程序:--CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA: IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC );END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF CLR='1' THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENIF CQI="1001" THEN CQI<="0000";ELSE CQI<=CQI+'1';END IF;END IF;END IF;END PROCESS;PROCESS(CQI) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CQI<"1001" THEN CO<='0';ELSE CO<='1';END IF;END IF;END PROCESS;CQ<=CQI;END ARCHITECTURE ART;CNT9999的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;--使用IEEE.STD_LOGIC_1164程序包PORT(CLR: IN STD_LOGIC;CLK: IN STD_LOGIC;CLK2:IN STD_LOGIC;ENA: IN STD_LOGIC;COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY DCNT9999;ARCHITECTURE ART OF DCNT9999 ISCOMPONENT CNT10 IS --CNT10元件定义语句PORT(CLK, CLR, ENA: IN STD_LOGIC;CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO: OUT STD_LOGIC);END COMPONENT CNT10;COMPONENT CTRLS IS --元件定义语句PORT(CLK: IN STD_LOGIC;--端口说明语句(端口名:端口模式数据类型)SEL: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT CTRLS;COMPONENT DISPLAY IS --元件定义语句PORT(SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN: IN STD_LOGIC_VECTOR(15 DOWNTO 0);COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT DISPLAY;SIGNAL S0,S1,S2: STD_LOGIC; --信号的定义,定义了3个标准位的单值信号SIGNAL SEL: STD_LOGIC_VECTOR(2 DOWNTO 0);--定义1个标准位矢量的位矢量信号SEL,含有3个元素SIGNAL DOUT:STD_LOGIC_VECTOR(15 DOWNTO 0);--定义1个标准位矢量的位矢量信号DOUT,有16个数组元素BEGINU0: CNT10 PORT MAP(CLK,CLR, ENA, DOUT(3 DOWNTO 0), S0); --元件例化语句,位置关联的方式U1: CNT10 PORT MAP(S0, CLR, ENA, DOUT(7 DOWNTO 4), S1);U2: CNT10 PORT MAP(S1, CLR, ENA, DOUT(11 DOWNTO 8), S2);U3: CNT10 PORT MAP(S2, CLR, ENA, DOUT(15 DOWNTO 12));U4: CTRLS PORT MAP(CLK2,SEL);U5: DISPLAY PORT MAP(SEL(2 DOWNTO 0),DOUT(15 DOWNTO 0),COM(7 DOWNTO 0),SEG(7 DOWNTO 0));--位置关联方式END ARCHITECTURE ART;3)仿真波形设置本设计包括两个层次,因此先进行底层的十进制计数器CNT10的仿真,再进行顶层CNT9999的仿真。
eda课程设计 计数器一、课程目标知识目标:1. 理解计数器的基本概念,掌握其工作原理;2. 学会运用EDA工具进行计数器的设计与仿真;3. 掌握计数器的应用场景,了解其在数字系统中的作用。
技能目标:1. 能够运用所学知识,设计简单的计数器电路;2. 熟练使用EDA工具进行电路的绘制、仿真和调试;3. 培养动手实践能力和团队协作能力,提高问题解决能力。
情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发学习热情;2. 培养学生的创新意识和探究精神,鼓励尝试和改进;3. 增强学生的责任感,认识到计数器在现代社会生活中的重要性。
课程性质:本课程为电子设计自动化(EDA)课程的实践环节,旨在让学生通过动手实践,掌握计数器的设计与应用。
学生特点:学生具备一定的电子基础知识,对EDA工具有一定的了解,具有较强的学习能力和动手能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生的实际操作能力。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其电子设计能力。
教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
二、教学内容1. 计数器原理讲解:- 理解异步计数器与同步计数器的工作原理;- 掌握二进制、十进制和任意进制计数器的设计方法。
2. EDA工具使用:- 学习并熟练使用Multisim、Proteus等EDA工具进行计数器电路设计;- 掌握电路绘制、仿真和调试的基本步骤。
3. 实践操作:- 设计并实现一个简单的二进制计数器电路;- 设计并实现一个十进制计数器电路;- 尝试设计任意进制计数器电路。
4. 教学大纲:- 第一章:计数器原理及分类;- 第二章:EDA工具的基本操作;- 第三章:二进制计数器设计与实践;- 第四章:十进制计数器设计与实践;- 第五章:任意进制计数器设计与实践。
5. 教学内容安排与进度:- 原理讲解:2课时;- EDA工具使用:2课时;- 二进制计数器设计:2课时;- 十进制计数器设计:2课时;- 任意进制计数器设计:2课时。
实验一:QUARTUS II 软件使用及组合电路设计仿真实验目的:学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL 源文件的设计和波形仿真等基本内容。
实验内容:1.四选一多路选择器的设计基本功能及原理:选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。
四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。
当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。
逻辑符号如下:程序设计:软件编译:在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示分析:由仿真图可以得到以下结论:当s=0(00)时y=a;当s=1(01)时y=b;当 s=2(10)时y=c;当s=3(11)时y=d。
符合我们最开始设想的功能设计,这说明源程序正确。
2.七段译码器程序设计基本功能及原理:七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。
本项实验很容易实现这一目的。
输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。
数码管的图形如下七段译码器的逻辑符号:程序设计:软件编译:在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。
仿真分析:仿真结果如下图所示:分析:由仿真的结果可以得到以下结论:当a=0(0000)时led7=1000000 此时数码管显示0;当a=1(0001)时led7=1111001 此时数码管显示1;当a=2(0010)时led7=0100100 此时数码管显示2;当a=3(0011)时led7=0110000 此时数码管显示3;当a=4(0100)时led7=0011001 此时数码管显示4;当a=5(0101)时led7=0010010 此时数码管显示5;当a=6(0110)时led7=0000010 此时数码管显示6;当a=7(0111)时led7=1111000 此时数码管显示7;当a=8(1000)时led7=0000000 此时数码管显示8;当a=9(1001)时led7=0010000 此时数码管显示9;当a=10(1010)时led7=0001000 此时数码管显示A;当a=11(1011)时led7=0000011 此时数码管显示B;当a=12(1100)时led7=1000110 此时数码管显示C;当a=13(1101)时led7=0100001 此时数码管显示D;当a=14(1110)时led7=0000110 此时数码管显示E;当a=15(1111)时led7=0001110 此时数码管显示F;这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。
XXXX大学计算机科学学院实验/上机报告一、实验目的1、通过4位同步加/减法计数器的设计,掌握同步时序控制的基本方法2、掌握LPM参数化模块库中的功能块调用方法二、实验环境1、硬件:PC机、便携式EDA/SOPC/DSP实验系统;2、软件:Quartus II 5.0;三、实验内容1、完成4位同步加/减法计数器设计并实现功能仿真2、利用LPM参数化模块库中的组件设计8位同步加法计数器并实现功能仿真3、设计一个1秒钟定时器,用以控制发光二极管闪烁四、实验过程设计思想:计数器即实现计数功能的数字电路,通过累计输入脉冲个数,达到计数的目的。
对于四位的同步加/减法计数器共有24=16个输出状态,在设计时可以用一个向量进行定义。
另外,对于给定的加/减法计数器结构,可做如下描述:当计数器复位端(rst)为0时,计数器清零,否者,即处于置位端。
此时,当时钟脉冲(clk)处于上升沿时,计数器受加减控制端(updn)控制,即当updn=1时,实现加法计数,否则减法计数。
定时器通常为减1计数,当程序进入运行状态后,定时器开始自动计数。
对于1秒钟定时器,其工作原理为:在时钟脉冲为上升沿触发的情况下,当定时器使能控制信号为1时,如果定时器经过一个定时时钟,比如1s,则定时到输出时间到信号,定时器清零,否则,定时输出时间未到。
实验步骤:1、设计一个4位的同步加/减法计数器新建工程,建立源文件,输入VHDL设计文件,如下图所示:完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:由该仿真图可知,当rst=1处于置位状态时,若时钟脉冲信号clk处于上升沿触发,输出信号q受updn控制,即当updn=0时,计数器实现减法计数功能,当updn=1时,计数器实现加法计数功能。
可见仿真结果正确,即实现了4位的同步加/减法计数器的功能。
2、利用LPM参数化模块库中的组件设计8位同步加法计数器并实现功能仿真(1)打开MegaWizard Plug-In Manager 初始对话框在Tools 菜单中选择MegaWizard Plug-In Manager,产生如下图所示的界面:选择Create a new custom…项,即定制一个新的模块。
eda实验报告计数器EDA实验报告-计数器引言:计数器是数字电路中常用的基本模块之一,它在各个领域都有着广泛的应用。
本实验旨在通过EDA(电子设计自动化)软件进行计数器的设计与仿真,探索计数器的原理和功能。
一、计数器的基本原理计数器是一种能够按照规定的顺序改变其输出状态的电子电路。
它通过内部的触发器和逻辑门实现数字信号的计数功能。
常见的计数器有二进制计数器、十进制计数器等。
二、实验设计与仿真1. 实验目标本次实验的目标是设计一个4位二进制计数器,并通过EDA软件进行仿真验证。
计数器的功能是在每个时钟脉冲到来时,输出的二进制数加1。
2. 设计思路计数器的设计需要考虑以下几个方面:- 选择适当的触发器:本实验选择了D触发器作为计数器的基本单元,因为D触发器具有简单、易于控制的特点。
- 确定计数器的位数:本实验设计了一个4位计数器,即可以表示0~15的二进制数。
- 连接逻辑门:通过逻辑门将各个触发器连接起来,实现计数器的功能。
3. 电路设计根据设计思路,我们使用EDA软件进行电路设计。
首先,将4个D触发器连接起来,形成4位计数器。
然后,根据计数器的功能要求,将时钟信号连接到每个触发器的时钟输入端。
最后,将各个触发器的输出通过逻辑门进行连接,得到计数器的输出。
4. 仿真验证完成电路设计后,我们使用EDA软件进行仿真验证。
通过输入不同的时钟信号,观察计数器的输出是否符合预期。
在仿真过程中,我们可以调整时钟信号的频率,观察计数器的计数速度。
三、实验结果与分析通过EDA软件的仿真,我们得到了计数器的输出结果。
在时钟信号的作用下,计数器按照预期进行了计数,并输出了相应的二进制数。
通过观察输出结果,我们可以得出以下几点结论:- 计数器的输出与时钟信号的频率有关,频率越高,计数速度越快。
- 计数器的输出按照二进制的顺序进行计数,当达到最大值时,会从0重新开始计数。
四、实验总结本次实验通过EDA软件进行了计数器的设计与仿真。
EDA实验报告姓名:曾维鋆学号:6102213863老师:杨鼎成班级:通信工程132班目录实验一半加器及全加器的设计 (3)实验二模可变计数器的设计 (6)实验三序列信号检测器的设计 (11)实验四交通灯控制器设计 (15)实验五多功能数字钟设计 (22)实验六出租车计费器的设计 (34)实验七16*16 点阵显示实验 (40)南昌大学实验报告学生姓名:曾维鋆学号:61002213863 专业班级:通信132班实验类型:□验证□综合█设计□创新实验日期:2015.10.19 实验成绩:实验一半加器及全加器的设计(一)实验目的1、熟悉实验装置和QuartusⅡ软件的使用;2、熟悉和掌握EDA设计流程;3、学习简单组合、时序电路的EDA设计;4、熟悉例化语句的应用。
(二)实验内容设计一个一位全加器。
先设计一个半加器h_adder.v作为预存文件。
然后设计顶层文件对h_adder.v文件进行调用,实现全加器的功能。
(三)实验原理由3个逻辑模块组成,其中两个为半加器,一个是或门。
真值表(四)实验步骤1.建立工作库文件夹,输入半加器和全加器的Verilog HDL代码并分别存盘。
a.半加器module h_adder(A,B,SO,CO);input A,B;3output SO,CO;assign SO=A^B;assign CO=A&B;endmoduleb.全加器module f_adder(ain,bin,cin,cout,sum);output cout,sum;input ain,bin,cin;wire net1,net2,net3;h_adder U1(ain,bin,net1,net2);h_adder U2(.A(net1),.SO(sum),.B(cin),.CO(net3));or U3(cout,net2,net3);endmodule2.选目标器件CycloneII中的EP2C35F672C8并编译。
暨南大学本科实验报告专用纸课程名称EDA实验成绩评定实验项目名称计数器电路设计指导教师郭江陵实验项目编号03 实验项目类型验证实验地点B305学院电气信息学院系专业物联网工程组号:A6一、实验前准备本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的1、了解各种进制计数器设计方法2、了解同步计数器、异步计数器的设计方法3、通过任意编码计数器体会语言编程设计电路的便利三、实验原理时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。
计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。
利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。
输出显示模块用VHDL实现。
四、实验内容1、用74161构成8位二进制同步计数器(程序为T3-1);2、用74390构成8位二——十进制异步计数器(程序为T3-2);3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):0,2,5,3,4,6,1五、实验要求学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。
六、设计框图首先要熟悉传统数字电路中同步、异步计数器的工作与设计。
在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。
并借用前面设计的数码管显示模块显示计数结果。
◆74161构成8位二进制同步计数器(程序为T3-1)◆七、原理图◆ 8位二进制同步计数器原理图 (程序为T3-1)模块说明: 采用了两个74161计数器,一个用来作为低位计数,另一个作为高位计数器。
数据总线开关(4位二路开关)模块用于将计数器输出的数据分路切换为LED 数码管显示所需要的数据格式。
字形码转换模块调用前面实验所设计的模块。
八、实验电路连线与使用操作A :为独立扩展下载板上第86脚,应接“数码管段位引线”接线组“KPL_AH ”的AB :为独立扩展下载板上第87脚,应接“数码管段位引线”接线组“KPL_AH ”的BC :为独立扩展下载板上第88脚,应接“数码管段位引线”接线组“KPL_AH ”的CD :为独立扩展下载板上第89脚,应接“数码管段位引线”接线组“KPL_AH ”的DE:为独立扩展下载板上第90脚,应接“数码管段位引线”接线组“KPL_AH”的E F:为独立扩展下载板上第92脚,应接“数码管段位引线”接线组“KPL_AH”的F G:为独立扩展下载板上第93脚,应接“数码管段位引线”接线组“KPL_AH”的G SEL0:为独立扩展下载板上第69脚,为数码管的位选扫描信号,接信号接线组“DS1-8A(T)”的SS0引线插孔。
SS1、SS2接地(即在电源引线插孔组GND孔处)。
RESET:为独立扩展下载板上第68脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F9~F12的任意一个插孔CKCNT:为独立扩展下载板上第70脚,应接时钟信号源接线组“CLOCK(T)”的“FRQ (18~21)”引线插孔CKDSP:为独立扩展下载板上第79脚即GCLK1,应接时钟信号接线组“CLOCK(T)”的“FRQ(11)”引线插孔备注:程序T3-1、T3-2、T3-3的插线均相同,其中T3-3中CLK与T3-1的CKCNT定义引脚相同。
使用操作:◆8位二进制同步计数器使用操作demo3top:程序下载以后,在“动态键盘显示模块”的二个数码管DS8.7A上显示计数值,范围为00~FFH的二位十六进制数,并循环递增计数。
九、波形仿真分析4为2路开关选择器模块仿真结果输入信号:sel:高低四位选择控制为,高电平选低四位,低电平选高四位D_IN :输入8位数输出信号:D_out:根据选择输出高四位或低四位数波形分析结果如上图在两个timebar之间,sel为高电平输出了D_IN的低四位数,在两个timebar 两边sel为低电平,输出了D_IN的高四位,结果正确。
字行码转换模块仿真结果如下图输入信号:D_IN :要显示的4位2进制数输出信号:a,b,c,d,e,f,g : 输出数码管段选波形结果分析在上图timebar处,输入的4位2进制数是5输出的段码是”1101101”,即共阴数码管对应的数值为5。
仿真结果正确。
◆8位二进制同步计数器仿真结果demo3top:输入信号:RESET:清零信号,低电平下重新开始计数。
CKDSP:动态显示数码管扫描频率设定。
CKCNT:计数时钟信号。
中间信号量:DA[7..0]:用于显示计数模块输出的中间计数结果。
输出信号:A~G:数码管7个段位,用于显示计数结果。
波形结果分析:如图所示,当计数器DA[7..0]输出为“16”时,第2个timebar处对应的数码管的段码为”1111101”,即共阴数码管显示对应的值为6,第3个timebar处对应数码管的段码值为“”,即共阴数码管显示对应的值为1,且在DA = 16 0x时sel的值在’0’ 和‘1’之间不断变化,表明这个时间段选中二个数码管,并显示为“16”。
其他状态下计数时钟产生的显示结果值类同。
另外第一个timebar 体现了同步计数功能,当CKCNT为上升沿时计数器加1。
第4个timebar体现异步复位功能,当RESET为0时立刻复位重新开始计算。
结论:由上述分析所得结果,完全达到实验所需的要求。
CNT4单独进行仿真结果输入信号:EN :使能信号,当EN为高电平时开始计数。
CLK :时钟信号,没一个时钟上升沿,计数加1。
CLR :复位信号,为低电平时,计数复位。
输出信号:QA,QB, QC, QD : 计数输出4位2进制数信号,QA为第一位。
RCO :进位信号,当计数计到16个数时产生进位,为高电平。
波形结果分析:第一个timebar,体现了同步计数功能,当clk为上升沿时开始计数。
第二个timebar体现进位输出功能,当计数计到“1111”时产生进位,RCO为高电平。
第三个timebar体现异步复位功能,CLR信号为低电平时,输出立刻复位为“0000”,第四个timebar体现使能信号只有为高电平时才计数,低电平保持不变。
结论:仿真结果正确。
对“demo3Atop”进行仿真的结果如下:输入信号:RESET:清零信号,低电平下重新开始计数。
CKDSP:动态显示数码管扫描频率设定。
CKCNT:计数时钟信号。
中间信号量:DA[7..0]:用于显示计数模块输出的中间计数结果。
输出信号:A~G:数码管7个段位,用于显示计数结果。
波形结果分析:如图所示,当计数器DA[7..0]输出为“16”时,第3个timebar处对应的数码管的段码为”1111101”,即共阴数码管显示对应的值为6,第2个timebar处对应数码管的段码值为“”,即共阴数码管显示对应的值为1,且在DA = 16 0x时sel的值在’0’ 和‘1’之间不断变化,表明这个时间段选中二个数码管,并显示为“16”。
其他状态下计数时钟产生的显示结果值类同。
另外第一个timebar 体现了同步计数功能,当CKCNT为上升沿时计数器加1。
第4个timebar体现异步复位功能,当RESET为0时立刻复位重新开始计算。
结论:仿真结果达到实验要求。
下载硬件调试结果:顶层文件原理图:VCCCKDSPINPUT VCC RESETINPUT VCCCKCNTINPUT SEL0OUTPUT a OUTPUT b OUTPUT c OUTPUT d OUTPUT e OUTPUT f OUTPUT gOUTPUTDA[7..0]OUTPUTCOUNTERCLRNCLKENP LDN A D ENT B C QD QC QB QA RCO74161instCOUNTERCLRNCLKENP LDN A D ENT B C QD QC QB QA RCO74161inst1PRNCLRN TQTFFinst2d_in[3..0]ab c d e f gxdeledinst3D_IN[7..0]SELD_OUT[3..0]XSH8_4inst4VCCVCCVCCDA[0]DA[1]DA[2]DA[3]DA[4]DA[5]DA[6]DA[7]DA[7..0]PIN_86PIN_87PIN_88PIN_89PIN_90PIN_92PIN_93PIN_69PIN_68PIN_70PIN_79仿真结果:九、实验心得通过实验,熟悉了quartus的硬件仿真步骤,熟悉了分模块仿真的作用和如何在仿真图上体现出该模块要实现的所有功能,熟悉8位二进制同步计数器使用操作。
实验三问题1、74161计数器是什么功能的计数器,用专业的词语形容答:4位16进制异步复位同步置数计数器2、XSH8_4的功能?答:4位2选1多路选择器,从8位输入中选择高4位或低4位输出3、XDELED模块功能?答:段译码模块,把输入的4位2进制数译码为数码管的段选信号。
4、TFT是什么模块?作用是什么?答:T触发器,输入上升沿则输出翻转。
5、74161里的引脚含义以及为什么这么连接,(ABCD哪个引脚是高位,哪个引脚是低位?ENT、ENP作用,ENT\ENP\LDN为什么接高电平VCC?而第二个74161为什么接RCO?为什么不把RCO进位脉冲接到时钟CLK引脚?答:LDN:控制是否输入预置数的引脚。
ABCD:预置数输入引脚。
D为高位ENT、ENP:使能端,当ENT、ENP同时为高电平时才能计数,一高一低,保持计数不变。
ENT\ENP\LDN接高电平VCC :保持74161计数状态,而且不允许置数。
第二个74161接RCO原因:当低四位的计数进位时,高四位的计数器就计数加1 。
不接CLK的原因是为了实现两个计数器实现同步计数功能。
6、74161里的RCO的高电平时间有没可能跨越两个CKL时钟周期,为什么?答:当第一个计数器计数到”1111”时RCO从0变成1的时候,当下一个时钟上升沿时,RCO又变为0,它的宽度只有一个脉冲的宽度。