实验一十进制计数器的设计与仿真电子科技大学
- 格式:doc
- 大小:88.00 KB
- 文档页数:6
FPGA实验报告实验名称:基于原理图的十进制计数器设计姓名:班级:电子1002班指导老师:时间: 2013年3月13日一、实验目的1、熟悉掌握ISE Foudation 软件的使用;2、掌握基于原理图进行FPGA 设计开发的全流程;3、理解和掌握“自底向上”的层次设计方法;4、温习数字电路设计的基础知识。
二、实验原理一个具有数显输出的十进制计数器设计框图图2.1 原理框图1. 七段数码管译码器的设计七段数码管属于数码管的一种,是由7段二极管组成。
按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。
本实验使用共阴数码管。
将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。
显示译码器,一般是将一种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。
表2-1 七段字符显示真值表十进制计数器 七段数码管显示译码器 使能控制端时钟端异步清零端FPGA采用“最小项译码器+逻辑门”的方案,最小项译码器输出能产生输入变量的所有最小项,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式,故采用译码器和门电路可实现任何单输出或多输出的组合逻辑函数。
2.十进制计数器的设计调用ISE软件自带的“Counter”库中的十进制计数器CD4CE。
CD4CE是一个同步十进制器,输入有异步清零控制端CLR、工作使能控制端CE和时钟输入端C,输出有BCD码计数值输出端Q3~Q0,进位输出端TC 和输出状态标志位CEO。
3.基于原理图的自底向上的设计流程本实验采用了自底向上的设计流程。
自底向上设计是一种设计程序的过程和方法,是在设计具有层次结构的大型程序时,先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。
自底向上设计是从底层(具体部件)开始的,实际中无论是取用已有模块还是自行设计电路,其设计成本和开发周期都优于自顶向下法;但由于设计是从最底层开始的,所以难以保证总体设计的最佳性,例如电路结构不优化、能够共用的器件没有共用。
十进制计数器设计十进制计数器设计一、实验目的:熟悉Quartus II的Verilog 文本设计流程全过程,学习十进制计数器的设计、仿真,掌握计数器的工作原理。
二、实验原理:计数器属于时序电路的范畴,其应用十分普遍。
该程序设计是要实现带有异步复位、同步计数使能和可预置型的十进制计数器。
该计数器具有5个输入端口(CLK、RST、EN、LOAD、DATA)。
CLK输入时钟信号;RST起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数据。
有两个输出端口(DOUT和COUT)。
DOUT的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。
RST在任意时刻有效时,如CLK非上升沿时,计数也能即刻清0;当EN=1,且在时钟CLK的上升沿时刻LOAD=0,4位输入数据DATA被加载,但如果此时时钟没有上升沿,尽管出现了加载信号LOAD=0,依然未出现加载情况;当EN=1,RST=1,LOAD=1时,计数正常进行,在计数数据等于9时进行输出高电平。
三、实验任务:在Quartus II上将设计好的程序进行编辑、编译、综合、适配、仿真,从时序仿真图中学习计数器工作原理,了解计数器的运行情况及时钟输入至计数器数据输出的延时情况。
四、实验步骤:(一)、建立工作库文件和编辑设计文件任何一项设计都是一项Project(工程),而把一个工程下的所有文件放在一个文件夹内是一个非常好的习惯,以便于我们整理,利用和提取不同工程下的文件,而此文件夹将被EDA软件默认为Work Library(工作库),所以第一步先根据自己的习惯,建立个新的文件夹。
(1)新建文件夹:在盘建立并保存工程,将文件夹取名Jishuqi。
(2)输入源程序:打开Quartus II,选择菜单File→New→Design Files→VerilogHDL File→OK(如图1所示)。
模拟集成电路十进制异步计数器设计及仿真课程设计报告“模拟集成电路十进制异步计数器设计及仿真课程设计报告”第一节:引言作为现代电子技术的重要组成部分,模拟集成电路在各种领域中发挥着重要作用。
其中,十进制异步计数器作为模拟集成电路中的一个重要组成部分,具有着广泛的应用前景。
本篇文章将围绕着模拟集成电路十进制异步计数器的设计和仿真展开,探讨其在电子技术中的重要性和应用价值。
第二节:理论基础在深入探讨模拟集成电路十进制异步计数器的设计前,有必要首先了解其理论基础。
十进制异步计数器是一种能够按照十进制计数规律进行计数的电路,并能够在输入脉冲信号的触发下进行递增。
其设计原理涉及到逻辑门的连接和状态转换等内容,需要深入理解和把握。
第三节:设计流程在进行模拟集成电路十进制异步计数器的设计时,需要遵循一定的设计流程。
首先是对其工作原理进行深入理解,并根据要求进行逻辑电路图的绘制。
接着是选择适当的集成电路器件,并进行电路连接和布线设计。
最后则是进行仿真验证和性能测试,以确保其符合设计要求。
第四节:实践应用模拟集成电路十进制异步计数器在实际应用中有着广泛的应用价值。
比如在数字显示系统、计数器系统和数字控制系统中都能够发挥作用。
其设计与实践能够帮助学生更好地理解电子技术的原理,并为日后的工程设计工作打下良好的基础。
第五节:个人观点从我个人的角度来看,模拟集成电路十进制异步计数器的设计和仿真课程设计报告是十分有价值的。
通过深入学习和理解其原理和应用,不仅能够提高我们对电子技术的认识,还能够培养我们的动手能力和实践能力。
这对于我们未来的工程技术学习和研究工作是十分有益的。
总结与回顾通过本文的介绍,我们深入了解了模拟集成电路十进制异步计数器的设计和仿真课程设计报告的重要性和应用价值。
也对其在理论基础、设计流程和实际应用方面有了深入的认识。
这将为我们今后的学习和工程设计工作提供重要的借鉴和指导。
在本篇文章中,我们深入探讨了模拟集成电路十进制异步计数器的设计和仿真课程设计报告,介绍了其在电子技术中的重要性和应用价值。
目录一.设计目的和设计内容1.1设计目的1.2设计要求二.设计原理2.1计数器2.2集成计时器2.3 常用计时器原理2.4显示与译码2.5 VHDL计数器三.设计方案3.1备选方案3.2设计方案3.3仿真软件的选择四.仿真分析和体会五.致谢六.参考资料摘要:计数器的功能是记忆脉冲的个数,它是数字系统中应用最广泛的基本时序逻辑构件。
计数器在微型计算机系统中的主要作用就是为CPU和I/O设备提供实时时钟,以实现定时中断、定时检测、定时扫描、定时显示等定时控制,或者对外部事件进行计数。
一般的微机系统和微机应用系统中均配置了定时器/计数器电路,它既可当作计数器作用,又可当作定时器使用,其基本的工作原理就是"减1"计数。
计数器:CLK输入脉冲是一个非周期事件计数脉冲,当计算单元为零时,OUT输出一个脉冲信号,以示计数完毕。
以下是关于十进制计数器的几种设计方法。
一.设计目的和内容1.本次课程设计应达到的目的:1、综合运用相关课程中所学到的理论知识去独立完成某一设计课题;2、通过查阅手册和相关文献资料,培养学生独立分析和解决问题的能力;3、进一步熟悉常用芯片和电子器件的类型及特性,并掌握合理选用器件的原则;4、学会电路的设计与仿真;5、培养严肃认真的工作作风和严谨的科学态度。
2.本课程设计课题任务的内容和要求(包括原始数据、技术参数、设计要求等):1、具有10进制计数功能;2、设置外部操作开关,控制计数器的直接清零、启动、和暂停/连续功能;3、计时器为10进制加法计数,计时间隔为1秒;4、并用相关仿真软件对电路进行仿真。
二.设计原理1.计数器计数器是数字系统中用的较多的基本逻辑器件。
它不仅能记录输入时钟脉冲的个数,还可以实现分频,定时,产生节拍脉冲和脉冲序列等。
例如,计算机中的时序发生器,分频器,指令计数器等都要使用计数器。
计数器的种类很多。
按时序脉冲输入方式的不同,可分为同步计数器和异步计数器;按进位体制不同可以分为二进制计数器和非二进制计数器;按计数器的数字增减趋势的不同,可分为加法计数器,减法计数器和可逆计数器。
实验一十进制计数器的设计与仿真一、实验目的熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。
二、实验原理该程序设计是带有异步复位、同步计数使能、可预置型功能全面的十进制计数器。
(1)第一个条件句if(!RST)构成的RST接于寄存器下方的异步清0端CLR。
(2)第二个条件句if(EN)构成EN接于寄存器左侧的使能端ENA。
(3)第三个条件句if(LODA)构成LODA接于上面的多路选择器,使之控制选择来自DATA的数据,还是来自另一多路选择器的数据。
(4)不完整的条件语句与语句Q1<=Q1+1构成了加1加法器和4位寄存器。
(5)语句(Q1<9)构成了小于比较器,比较器的输出信号控制左侧多路选择器。
(6)第二个过程语句构成了纯组合电路模块,即一个等式比较器,作进位输出。
三、实验设备与软件平台实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA软件平台:Quartus II 9.1 (32-Bit)、5E+系统四、实验内容编写Verilog程序描述一个电路,实现以下功能:设计带有异步复位、同步计数使能和可预置型的十进制计数器。
具有5个输入端口(CLK、RST、EN、LOAD、DATA)。
CLK输入时钟信号;RST 起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD 是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数据。
有两个输出端口(DOUT和COUT)。
DOUT的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。
五、实验步骤设计程序:module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA);input CLK;input EN;input RST;input LOAD;input [3:0] DATA;output [3:0] DOUT;output COUT;reg [3:0] Q1 ;reg COUT ;assign DOUT = Q1;always @(posedge CLK or negedge RST) begin if (!RST) Q1 <= 0;else if (EN) beginif (!LOAD) Q1 <= DATA;else if (Q1<9) Q1 <= Q1+1;else Q1 <= 4'b0000;endendalways @(Q1)if (Q1==4'h9) COUT = 1'b1;else COUT = 1'b0;Endmodule设计流程:1.编辑和输入设计文件(1)、新建一个文件夹如D:\CNT10 ,本工程所有文件将存放在此目录中。
实验四:十进制计数器实验报告
实验日期:2014.4.15 学生姓名:陆小辉(学号:1228402025) 指导老师:黄秋萍 计数器是数字系统中使用最多的时序逻辑电路,其应用非常广泛。
计数器不仅能应用于对时钟脉冲计数,而且应用于定势、分频、产生节拍脉冲和脉冲序列以及进行数字运算等。
一、设计要求:
设计十进制计数器,完成相应功能。
可预置数、可加/减。
二、设计代码如下:
input clk,ldn,clean,enp,ent; input[3:0] i; output [3:0]q; output rco; reg rco; reg [3:0] q; always@(posedge clk or negedge clean) begin if (~clean) begin q=0;rco=0;end else begin casex ({ldn,enp,ent}) 3'b0xx:q=i; 3'b101:if (q>0) q=q-1;else q=9;
3'b110:if (q<9) q=q+1;else begin q=0;rco=1;end default:q=q; endcase end end endmodule
四、仿真波形如下:
续图。
1.实验内容用D触发器设计一个同步十进制计数器2.实验器材编号器材型号个数1 二输入与门74LS08 12 三输入与门74LS11 13 二输入或非门74LS02 14 三输入或非门74LS10 15 D触发器74LS74 26 导线若干7 LED灯 48 电阻(200Ω) 13.实验原理计数器实际上是对时钟脉冲进行计数,每来一个脉冲,计数器状态改变一次。
8421 BCD码十进制加计数器在每个时钟脉冲作用下,触发器输出编码值加1,编码顺序与8421 BCD码一样,每个时钟脉冲完成一个计数周期。
由于电路的状态数、状态转换关系及状态编码都是明确的,因此设计过程较简单。
4.实验过程1)列出状态表十进制计数器共有十个状态,需要4个D触发器构成,其状态表1-1所示。
表1-18421 BCD码同步十进制加计数器的状态表计数脉冲CP的顺序状态状态(激励信号)Q3 Q2 Q1 Q0 Q3(D3) Q2(D2)Q1(D1)Q3(0D0)0 1 2 3 4 5 6 7 0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 10 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 08 90 0 0 0 1 0 0 11 0 0 1 0 0 0 0(2)确定激励方程组按表1-1可画出触发器激励信号的卡诺图,如图1-1所示。
4个触发器组合16个状态(0000 ~ 1111),其中有6个转台(1010 ~ 1111)在8421 BCD 码十进制计数器中是无效状态,在图1-1所示的卡诺图中以无关项×表示。
于是,得到激励方程组:图 1-1 卡诺图(3)画出逻辑图,并且检查自启动能力检查激励方程组可画出逻辑图,如图1-2所示。
图中,各触发器的直接置0端为之地电平有效,如果系统没有复位信号,电路的RESET 输入端应保持为高电平计数器能够正常工作。
实验一十进制计数器的设计一、实验目的:通过设计实现四种频率可选的十进制计数器,实现输出顺序为:0,2,5,6,1,9,4,8,7,3,0(并可预置,可使能,带有七段译码显示),以熟悉VHDL语言编程。
二、实验原理与设计思路:系统整体由分频器、多路选择器、计数器和共阴极七段LED数码管译码器四个原件组成。
输入信号有个,分别为复位信号rst(高有效)、时钟clk(提供整个系统的时钟信号)、选择器输入Sel(选择不同的频率输入)、置位信号load(高有效)和置位输入信号state(3 downto 0)。
输出引脚有8根,分别为现态state_1(3 downto 0)和次态state_2(3 downto 0)的计数。
(注意:仿真结果使用16进制显示该两个输出信号的值)。
分频器模块设计:可选用计数器模块实现,如下所示:if (rst='1')thencount<="0000";elsif(clk'event and clk='1')thencount<=count+1;end if;clk1<=count(0);clk2<=count(1);clk4<=count(2);clk8<=count(3);多路选择器模块设计:可以考虑使用选择语句来实现:case sel iswhen "00"=>clock<=clk1;when "01"=>clock<=clk2;when "10"=>clock<=clk4;when "11"=>clock<=clk8;when others =>null;end case;计数器模块的实现:在本设计中总共要设计两个计数器分别用于实现现态state_1(3 downto 0)和次态state_2(3 downto 0)的计数再考虑复位置位信号,可用以下语句实现:if(rst='1')thenstate_1<="0000";elsif(load='1')thenstate_1<=state;elsif(clock'event and clock='1')thenstate_1 <= state_2;end if;case state_1 iswhen"0000"=>state_2<="0010";when "0010"=>state_2<="0101";when "0101"=>state_2<="0110";when "0110"=>state_2<="0001";when "0001"=>state_2<="1001";when "1001"=>state_2<="0100";when"0100"=>state_2<="1000";when"1000"=>state_2<="0111";when"0111"=>state_2<="0011";when"0011"=>state_2<="0000";when others =>null;end case;共阴极七段LED数码管译码器case state_1 iswhen "0000"=>segs<="1111110";when "0001"=>segs<="0110000";when "0010"=>segs<="1101101";when "0011"=>segs<="1111001";when "0100"=>segs<="0110011";when "0101"=>segs<="1011011";when "0110"=>segs<="1011111";when "0111"=>segs<="1110000";when "1000"=>segs<="1111111";when "1001"=>segs<="1111011";when others=>segs<="0000000";end case;三、实验代码综上,可得实验完整代码如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;useieee.std_logic_unsigned.all;ENTITY ddd ISP ORT(clk,rst : IN STD_LOGIC;sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);state : in std_logic_vector(3 downto 0);load : in std_logic;segs : OUT STD_LOGIC_vector(6 downto 0));END ddd;ARCHITECTURE behav OF ddd ISS IGNAL count : STD_LOGIC_vector(3 downto 0);s ignal clk1: std_logic;s ignal clk2: std_logic;s ignal clk4: std_logic;s ignal clk8: std_logic;s ignal clock: std_logic;s ignal state_1 : std_logic_vector(3 downto 0);s ignal state_2 : std_logic_vector(3 downto 0);BEGINp rocess(rst,clk,clk1,clk2,clk 4,clk8)b eginif (rst='1')thencount<="0000";elsif(clk'event and clk='1')thencount<=count+1;end if;clk1<=count(0);clk2<=count(1);clk4<=count(2);clk8<=count(3);e nd process;p rocess(sel,clk1,clk2,clk4,cl k8)b egincase sel iswhen"00"=>clock<=clk1;when"01"=>clock<=clk2;when"10"=>clock<=clk4;when"11"=>clock<=clk8;when others =>null;end case;e nd process;p rocess(clock,rst,load)b eginif(rst='1')thenstate_1<="0000";elsif(load='1')thenstate_1<=state;elsif(clock'event and clock='1')thenstate_1 <= state_2;end if;e nd process;p rocess(state_1)b egincase state_1 iswhen"0000"=>state_2<="0010";when"0010"=>state_2<="0101";when"0101"=>state_2<="0110";when"0110"=>state_2<="0001";when"0001"=>state_2<="1001";when"1001"=>state_2<="0100";when"0100"=>state_2<="1000";when"1000"=>state_2<="0111";when"0111"=>state_2<="0011";when"0011"=>state_2<="0000";when others =>null;end case;e nd process;p rocess(state_1)b egincase state_1 iswhen"0000"=>segs<="1111110";when"0001"=>segs<="0110000";when"0010"=>segs<="1101101";when"0011"=>segs<="1111001";when"0100"=>segs<="0110011";when"0101"=>segs<="1011011";when"0110"=>segs<="1011111";when "0111"=>segs<="1110000";when "1000"=>segs<="1111111";when "1001"=>segs<="1111011";whenothers=>segs<="0000000";end case;e nd process;END behav;四、实验结果与分析编译结束后得编译报告如下:由编译报告得,实验硬件耗用23/5980(<1%),占用管脚16/185(9%),逻辑设计较好,布线合理。
利用Multisim 的同步十进制计数器的仿真实验1 8421BCD 码同步十进制加法计数器图1为由4个JK 触发器组成的8421BCD 码同步十进制加法计数器电路,仿真开始,首先用清0开关将计数器设置为0000状态,然后在计数脉冲信号CP 的作用下,计数器的状态按8421BCD 码数的规律依次递增,当计数器的状态变为1001时,再输入一个计数脉冲,这时计数器返回到初始的0000状态,同时向高位输出一个高电平的进位信号。
2 集成同步十进制加法计数器74LS160和74LS1621.74LS160的逻辑功能仿真图2为74LS160的逻辑功能仿真电路,图中LOAD 为同步置数控制端,CLR 为异步置0控制端,ENT 和ENP 为计数控制端,D 、C 、B 、A 为并行数据输入端,D Q 、C Q 、B Q 、A Q 为输出端,RCO 为进位输出端。
1)异步置0功能:当CLR 端为低电平时,不论有无时钟脉冲CP 和其它信号输入,计数器置0,即0000 A B C D Q Q Q Q 。
图1 8421BCD 码同步十进制加法计数器2)同步并行置数功能:当01==LOAD CLR ,时,在输入计数脉冲CP 的作用下,并行数据DCBA 被置入计数器,即DCBA Q Q Q Q A B C D =,本仿真电路中并行置数仅为0000和1111两种。
3)计数功能:当1====ENP ENT CLR LOAD ,CLK 端输入计数脉冲CP 时,计数器按8421BCD 的规律进行十进制加法计数。
4)保持功能:当1==CLR LOAD ,且ENP ENT 和中有0时,则计数器保持原来的状态不变。
2.利用74LS160的“异步置0”获得N 进制计数器由74LS160设有“异步置0”控制端CLR ,可以采用“反馈复位法”,使复位输入端CLR 为0,迫使正在计数的计数器跳过无效状态,实现所需要进制的计数器。
图3为用74LS160的“异步置0”功能获得的七进制计数器电路,设计数器从0000=A B C D Q Q Q Q 状态开始计数,“7”的二进制代码为0111,反馈归零函数图2 74LS160逻辑功能仿真电路图3 74LS160利用“异步置0”构成七进制计数器A B C Q Q Q CLR =,根据该函数式用3输入与非门将它们连接起来。
实验一 10进制计数器设计实验目的:掌握软件设计流程,掌握电路图输入方式,了解和熟悉实验箱。
实验内容:利用74161实现十进制计数,并使用7448实现七段代码显示器显示结果。
原理图:如下图所示仿真结果及结果分析:通过实验,可以得到如下两张仿真结果图。
以下分别是在CLR为低电平和CLR为高电平时的输出(Q[1]-Q[7])波形图和仿真结果图,通过实验以及参考七段显示译码器7448的功能表可知:当CLR为低电平时为十六进制计数功能,即仿真结果图上面会从7E-00计数,即对应的为0-15的数值计数,直到00H即对应值为15时再从0开始计数到15,对应如下仿真图(1);当CLR为高电平时为十进制计数功能,即仿真结果上面会从7E-73计数,即对应0-9的数值计数,直到73H即对应值为9时再从0开始计数到9,对应如下仿真图(2)。
综上所述,如下两张仿真图所示的内容可知,实验结果正确,符合预期的结果。
仿真图(1)仿真图(2)管脚锁定说明:硬件测试情况说明及结果分析:根据原理图上的芯片引脚功能按照设好的引脚用线连接好电路,输出的Q[1]-Q[7]接到七段显示译码器上面,对应芯片的引脚分别为52、53、54、55、58、59、60,CLK的脉冲信号接芯片引脚11,给的脉冲可自己给定,尽量选择让数字变化的情况可以看清的脉冲信号,而CLR接芯片引脚143然后接到控制开关L8,通过L8来控制CLR为高电平或者低电平。
然后把电脑里面的程序和引脚配置情况加载到实验箱的芯片上,在给定脉冲后,当开关L8即CLR接低电平时,七段显示译码器上显示的为16进制数从0-15计数,计数到15后再从0开始到15计数;而当控制L8即CLR接高电平时,七段显示译码器上显示的为10进制数从0-9计数,计数到9时再从0开始新一轮的计数。
通过实验观察可知所做实验符合预期的结果,实验成功。
实验总结:通过这次实验,我们学会了利用74161实现十进制和十六进制计数,并使用7448实现七段代码显示器显示结果。
十进制计数器实验报告十进制计数器实验报告引言:计数器是数字电路中常见的一种电子元件,用于计数和记录输入脉冲的次数。
在数字系统中,常用的计数器有二进制计数器和十进制计数器。
本实验旨在设计和实现一个十进制计数器,并通过实验验证其功能和性能。
一、实验目的本实验的主要目的是设计和实现一个十进制计数器,通过实验验证其功能和性能。
具体目标包括:1. 理解和掌握十进制计数器的工作原理;2. 学习使用逻辑门电路和触发器实现计数器;3. 验证计数器的计数功能和稳定性。
二、实验原理1. 十进制计数器的工作原理十进制计数器是一种能够在十进制数系统中进行计数的电子装置。
它通常由多个触发器和逻辑门组成,每个触发器负责计数一个十进制位。
当触发器的输出达到最大值时,会发出一个进位信号,使下一位触发器计数加1。
通过这种方式,十进制计数器能够实现从0到9的循环计数。
2. 实验所用材料和器件本实验所用的材料和器件包括:- 逻辑门电路芯片(如74LS08、74LS32等)- 触发器芯片(如74LS74)- 电路连接线- 电源供应器- 示波器三、实验步骤1. 搭建十进制计数器电路按照实验原理中所述的十进制计数器的工作原理,搭建一个十进制计数器电路。
根据实验所用的材料和器件,选择逻辑门电路芯片和触发器芯片,将它们按照正确的连接方式连接起来。
确保连接的准确性和稳定性。
2. 进行计数器功能测试将电源供应器连接到电路上,给予适当的电压和电流。
使用示波器观察计数器的输出波形,并记录下每个触发器的计数值。
通过观察波形和计数值,验证计数器的计数功能是否正常。
3. 进行计数器稳定性测试在计数器正常计数的情况下,观察计数器的稳定性。
持续观察一段时间,记录下计数器的计数值是否保持稳定。
如果计数器的计数值在一段时间内保持不变,则说明计数器具有较好的稳定性。
四、实验结果与分析根据实验步骤所述,我们搭建了一个十进制计数器电路,并进行了功能测试和稳定性测试。
实验结果显示,计数器的计数功能正常,能够从0到9循环计数。
一、实验要求及方案设计B,用D触发器实现分频模块D触发器构成的二分频电路实际上就是将D触发器转换为T触发器,将D端与~Q端短接之后,输出的频率就是原有频率的1/2。
按特性方程可知,每一CP脉冲触发后,Q状态翻转一次。
所以,Q端输出脉冲的频率则为CP脉冲频率的二分之一。
电路图如下:Cp脉冲时序图图中很明显,当遇到下降沿时cp脉冲翻转一次,如此下去,最终Q的频率是cp的1/2。
----------CP-----------QC,用74LS161实现计数模块74LS161的工作原理:74LS161是常用的四位二进制可预置的同步加法计数器。
引脚图如下,其中:1号引脚CLR为清零端,只要CLR=0各触发器均被清零,计数器输出为0000。
不清零时应使CLR=1。
9号引脚为预置数控制端,本次实验中我是使用的清零端,所以将预置端PE=1使之不工作。
7号引脚CEP和10号引脚CET是使能端,只有当CEP=CET=1时,74LS161才会进入到计数状态。
3,4,5,6为输入引脚,在实验中我将4个引脚短接之后接高电平。
11,12,13,14为输出引脚,将4个引脚按高低位顺序依次送入译码器的DBCA端。
又因为我是使用的清零来实现9转到0,所以要将‘1010’这个状态转为0,也就是将11和13号引脚与非之后接入到CLR清零端。
需要注意的是:11号引脚是高位,必须对应译码器中的D端。
引脚图如下:74LS161利用异步清零电路图如下:2,实验的总体逻辑连接电路图VCCOUTU1555_TIMER_RATEDGNDDIS RST THR CONTRI R168kΩR215kΩC110nFC210uF VCC 5V VSS 0VXSC1A BExt Trig++__+_U274LS112D~1CLR 151J 31K 21CLK 1~1PRE 41Q 5~1Q 6GND 8~2Q 72Q 9~2PRE 102CLK 132K 122J 11~2CLR 14VCC 16U374161N QA 14QB 13QC 12QD 11RCO15A 3B 4C 5D6ENP 7ENT10~LOAD 9~CLR 1CLK2U4A 7400NU574LS48DA 7B 1C 2D 6OA 13OD 10OE 9OF 15OC 11OB 12OG14~LT 3~RBI 5~BI/RBO 4GND8VCC 16U6A B C D E F G CKR350Ω135678921041416171518111213VSSVCC5、实验分析与计算在使用555定时器做多谐振荡器时,需要注意它必须接复位开关,每启动一次,先将复位开关接地端,然后,再接高位端。
实验一十进制计数器的设计与仿真
一、实验目的
熟悉QuartusⅡ的Verilog HDL文本设计流程全过程,学习计数器的设计、仿真和硬件测试。
二、实验原理
该程序设计是带有异步复位、同步计数使能、可预置型功能全面的十进制计数器。
(1)第一个条件句if(!RST)构成的RST接于寄存器下方的异步清0端CLR。
(2)第二个条件句if(EN)构成EN接于寄存器左侧的使能端ENA。
(3)第三个条件句if(LODA)构成LODA接于上面的多路选择器,使之控制选择来自DATA的数据,还是来自另一多路选择器的数据。
(4)不完整的条件语句与语句Q1<=Q1+1构成了加1加法器和4位寄存器。
(5)语句(Q1<9)构成了小于比较器,比较器的输出信号控制左侧多路选择器。
(6)第二个过程语句构成了纯组合电路模块,即一个等式比较器,作进位输出。
三、实验设备与软件平台
实验设备:计算机、FPGA硬件平台是Cyclone系列FPGA
软件平台:Quartus II (32-Bit)、5E+系统
四、实验内容
编写Verilog程序描述一个电路,实现以下功能:设计带有异步复位、同步计数使能和可预置型的十进制计数器。
具有5个输入端口(CLK、RST、EN、LOAD、DATA)。
CLK输入时钟信号;RST 起异步复位作用,RST=0,复位;EN是时钟使能,EN=1,允许加载或计数;LOAD 是数据加载控制,LOAD=0,向内部寄存器加载数据;DATA是4位并行加载的数
据。
有两个输出端口(DOUT和COUT)。
DOUT的位宽为4,输出计数值,从0到9;COUT是输出进位标志,位宽为1,每当DOUT为9时输出一个高电平脉冲。
五、实验步骤
设计程序:
module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA);
input CLK;
input EN;
input RST;
input LOAD;
input [3:0] DATA;
output [3:0] DOUT;
output COUT;
reg [3:0] Q1 ;
reg COUT ;
assign DOUT = Q1;
always @(posedge CLK or negedge RST) begin
if (!RST) Q1 <= 0;
else if (EN) begin
if (!LOAD) Q1 <= DATA;
else if (Q1<9) Q1 <= Q1+1;
else Q1 <= 4'b0000;
end
end
always @(Q1)
if (Q1==4'h9) COUT = 1'b1;
else COUT = 1'b0;
Endmodule
设计流程:
1.编辑和输入设计文件
(1)、新建一个文件夹
如D:\CNT10 ,本工程所有文件将存放在此目录中。
1)输入VHDL源程序
打开QuartusII,选择菜单File->New。
选择Verilog HDL File,输入源程序。
2)文件存盘
选择File->Save As命令,找到已设立的文件夹D:\CNT10,存盘文件名应与实体名一致,存盘为。
当出现语句“do you want to create…..”的对话框,选择“是”自动创建工程。
这里先选择“否”,即暂时不创建工程流程。
下一步手动创建工程。
(2)、创建工程
1)选择菜单File->New project Wizard命令,即弹出工程设置对话框。
单击此对话框右侧的“…”进行设置,第一行的D:\CNT10表示工程所在的工作库文件夹,第二行的CNT10表示此项工程的工程名,第三行是当前工程顶层文件的实体名。
2)将设计文件添加入工程中。
点“…”按钮,在弹出的对话框中选择文件。
单击“Add”按钮。
3)选择目标芯片
器件选择Cyclone系列中的EP1C6Q240C8。
也可以从主菜单Assignments的下拉菜单中点击 Device目标芯片设置窗口。
4)工具设置,此处不进行设置,点击Next
5)结束设置
列出了此工程相关设置情况,点击Finish按钮,出现project nevigator 窗口,显示本工程项目的层次结构和各层次的实体名。
2.全程综合与编译
选择Processing->start compilation,等待一段时间,跳出对话框提示编译成功或有错误,并在信息栏显示错误信息。
3.仿真测试
1)打开波形编辑器
选择File->new,选择vector waveform file。
2)设定仿真时间区域
在Edit->end time,在弹出的窗口time栏处输入50,单位选“us”。
3)波形文件存盘,默认文件名为
4)将此工程CNT10的端口信号名选入波形编辑器中
View->utility windows项的Node Finder选项。
点击“list”。
5)将端口信号名拖入波形编辑器中,拖完信号后可以关掉浮动窗口
6)按键盘上“CTRL+W”,显示全部仿真时间区域。
7)编辑输入波形(输入激励信号)
8) 仿真器参数设置
9)启动仿真器。
提示是否保存,选择“是”,仿真成功后选“确定”。
10) 观察仿真结果
按键盘上“CTRL+W”,在全部仿真时间区域内观察波形,并分析波形图显示的逻辑功能是否正确
点击“start”将配置文件下载,然后进行硬件测试。
功能仿真截图:
仿真波形图
管脚锁定截图
六、实验结果及分析
(1)RST在任意时刻有效时,如CLK非上升沿时,计数也能即刻清0。
(2)当EN=1,且在时钟CLK的上升沿时刻LODA=0时,4位输入数据DATA=7被加载,在LOAD=1后作为计数器的计数初值,如图所示计数从4加载到7的时序。
计数到9时,COUT输出进位1。
当下一轮计数到2时,尽管出现了加载信号LODA=0,但不加载。
(3)当EN=1,RST=1,LODA=1时,计数正常进行,在计数数据等于9时进位输出高电平。
当计数从7计到8时有一毛刺信号。
七、心得体会
第一次做EDA实验,使用Quartus II感觉很吃力,因为以前都没有接触过电子设计之类的东西。
虽然没有电子基础但还是硬着头皮慢慢去摸索。
经过老师的详细讲解和耐心指导以及同学们的探讨学习,使我对EDA和Quartus II的使
用有了一定的了解。
十进制计数器的设计使用Quartus II的时候要注意程序的准确输入才能够顺利通过综合与编译,才能够继续进行接下来的仿真和下载、测试。