十进制计数器设计
同步和异步十进制加法计数器的设计

同步和异步十进制加法计数器的设计全文共四篇示例,供读者参考第一篇示例:同步和异步是计算机系统中常用的两种通信机制,它们在十进制加法计数器设计中起到了至关重要的作用。
在这篇文章中,我们将深入探讨同步和异步十进制加法计数器的设计原理及应用。
让我们来了解一下十进制加法计数器的基本概念。
十进制加法计数器是一种用于执行十进制数字相加的数字电路。
它通常包含多个十进制加法器单元,每个单元用于对应一个十进制数位的运算。
在进行加法操作时,每个数位上的数字相加后,可能会产生进位,这就需要进位传递的机制来满足计数器的正确操作。
在同步十进制加法计数器中,每个十进制加法器单元都与一个时钟信号同步,所有的操作都按照时钟信号的节拍来进行。
具体来说,当一个数位的加法计算完成后,会将结果通过进位端口传递给下一个数位的加法器单元,这样就能确保每个数位的计算都是按照特定的顺序来进行的。
同步十进制加法计数器的设计较为简单,在时序控制方面有很好的可控性,但由于需要受限于时钟信号的频率,其速度受到了一定的限制。
在实际应用中,根据不同的需求可以选择同步或异步十进制加法计数器。
如果对计数器的速度要求较高,并且能够承受一定的设计复杂度,那么可以选择异步设计。
如果对计数器的稳定性和可控性要求较高,而速度不是首要考虑因素,那么同步设计可能更为适合。
无论是同步还是异步,十进制加法计数器的设计都需要考虑诸多因素,如延迟、数据传输、进位控制等。
通过合理的设计和优化,可以实现一个高性能和稳定的十进制加法计数器,在数字电路、计算机硬件等领域中有着广泛的应用。
同步和异步十进制加法计数器的设计都有其各自的优势和劣势,需要根据具体的需求来选择合适的设计方案。
通过不断的研究和实践,我们可以进一步完善十进制加法计数器的设计,为计算机系统的性能提升和应用拓展做出贡献。
希望这篇文章能够为大家提供一些启发和帮助,让我们共同探索数字电路设计的奥秘,开拓计算机科学的新境界。
第二篇示例:同步和异步计数器都是数字电路中常见的设计,用于实现特定的计数功能。
同步和异步十进制加法计数器的设计

同步和异步十进制加法计数器的设计1. 引言1.1 引言在计算机科学领域,同步和异步十进制加法计数器是常见的设计。
它们可用于对数字进行加法运算,是数字逻辑电路中的重要组成部分。
同步计数器和异步计数器的设计原理和工作方式有所不同,各有优劣势。
同步十进制加法计数器是一种通过时钟信号同步运行的计数器,采用同步电路设计。
它的设计目的是确保每一位数字在同一时刻进行加法运算,以保证正确性和稳定性。
同步计数器具有较高的精确度和可靠性,但需要更多的电路元件和较复杂的控制逻辑。
与之相反,异步十进制加法计数器采用异步电路设计,每一位数字都根据前一位数字的状态自主运行。
这种设计方式减少了电路复杂度和功耗,但可能会造成计算不稳定或出错的情况。
在选择计数器设计时需要根据实际需求和应用场景进行权衡。
通过对同步和异步十进制加法计数器的设计进行比较分析,可以更好地理解它们的优劣势和适用范围。
结合实际的应用案例,可以更好地理解它们在数字逻辑电路中的作用和价值。
2. 正文2.1 设计目的在设计同步和异步十进制加法计数器时,我们的主要目的是实现一个能够对十进制数字进行加法运算的电路。
具体来说,我们希望设计一个可以接受两个十进制数字作为输入,并输出它们的和的计数器。
设计的目的是为了实现数字的加法计算,并且保证计数器的正确性、稳定性和效率。
在设计过程中,我们需要考虑到各种可能的输入情况,例如进位、溢出等,并确保计数器能够正确处理这些情况。
我们也希望设计出一个简洁、高效的电路,以确保在实际应用中能够满足性能要求。
我们也需要考虑到电路的功耗和面积,以确保设计的成本和资源利用是否合理。
设计同步和异步十进制加法计数器的目的是为了实现对十进制数字的加法运算,保证计数器的正确性和性能,并在满足需求的前提下尽可能地降低成本和资源消耗。
2.2 同步十进制加法计数器的设计同步十进制加法计数器是一种利用时钟脉冲同步输入和输出的数字电路,用于实现十进制加法运算。
基于原理图的十进制计数器的设计(FPGA)

实验一:基于原理图的十进制计数器设计一、 实验目的:1. 熟悉和掌握ISE Foudation 软件的使用;2. 掌握基于原理图进行FPGA 设计开发的全流程;3. 理解和掌握“自底向上”的层次化设计方法;4. 温习数字电路设计的基础知识。
二、 实验原理:完成一个具有数显输出的十进制计数器设计,原理图如图2.1所示。
图2.1 十进制计数器原理图本实验为完成设计,采用了自底向上的设计流程。
自底向上设计是一种设计程序的过程和方法,是在设计具有层次结构的大型程序时,先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。
自底向上设计是从底层(具体部件)开始的,实际中无论是取用已有模块还是自行设计电路,其设计成本和开发周期都优于自顶向下法;但由于设计是从最底层开始的,所以难以保证总体设计的最佳性,例如电路结构不优化、能够共用的器件没有共用。
在现代许多设计中,是混合使用自顶向下法和自顶向上法的,因为混合应用可能会取得更好的设计效果。
一般来说,自顶向下设计方法适用于设计各种规模的数字系统,而自底向上的设计方法则更适用于设计小型数字系统。
十进制计数器七段数码管显示译码器使能控制端时钟端 异步清零端FPGA1、七段数码管译码器的设计七段数码管属于数码管的一种,是由7段二极管组成。
按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。
本实验使用共阴数码管。
它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。
显示译码器,一般是将一种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。
根据显示的要求,可以得到七段显示译码器产生的各段LED输出与输入的二进制对应关系:表2.1七段字符显示真值表最小项译码器输出能产生输入变量的所有最小项,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式,故采用译码器和门电路可实现任何单输出或多输出的组合逻辑函数。
数电实验报告十进制计数器设计

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.本试验没有连接到实验板测试,不过可以将输出信号接至LED灯口,发光为高电平,根据发光的顺序判断计数器是否正常工作
2.遇到的问题,时钟信号上升沿和下降沿判断错误
3.二进制码->格雷码:从最右边该位的值,最左边一位不变
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
实验报告
2017年12月7日成绩:
姓名
学号
班级
专业
课程名称
《数字电路实验》
任课老师
指导老师
机位号
实验序号
12
实验名称
十进制计数器设计
实验时间
2017.12.7
实验地点
一教225
实验四 多位十进制计数器的设计与实现

实验四多位十进制计数器的设计与实现(4 课时)实验目的1.熟练掌握设计电路下载到芯片的关键设置与基本步骤和利用实验箱上的输入信号和输出显示器件在线测试设计电路的方法。
2.学习使用VHDL 语言设计多位计数器和7 段译码电路的方法。
3.学习多位数码管的动态显示原理,掌握数码管驱动电路灵活设计方法。
实验原理1.米字形数码管(共阴)笔画接口:A1、A2、B、C、D1、D2、E、F、G、H、J、K、M、N、O、P、DP位选接口:sel0,sel1,sel2,sel3.sel0 Sel1 Sel2 Sel3 选中的数码管0 1 1 1 第4 位1 0 1 1 第3 位1 1 0 1 第2 位1 1 1 0 第1 位(右)2. 8 位7 段数码管(共阴)笔画接口:a、b、c、d、e、f、g、dp位选接口:sel0,sel1,sel2,sel3(可不用).Sel2 Sel1 Sel0 选中点亮的数码管1 1 1 第1 位(最右)1 1 0 第2 位1 0 1 第3 位1 0 0 第4 位0 1 1 第5 位0 1 0 第6 位0 0 1 第7 位0 0 0 第8 位实验内容与要求1.设计一个十进制计数器,具有显示位置随计数时钟在八个数码管中左右滚动的功能。
(6 分)2.设计一个符号显示电路,使其通过米字型数码管显示至少四页的自定义英文和数字符号。
(每页4 个字符)(3 分)3.设计一个4 位十进制计数器,具有加减计数功能和置数功能,并能通过数码管显示计数结果。
减数为零时发声报警。
(3 分)1:library IEEE;use IEEE.std_logic_1164.all;use IEEE.Std_logic_unsigned.all;entity cnt10 isport (clk : in std_logic;data_out : out std_logic_vector (7 downto 0);selout: out std_logic_vector (2 downto 0));end entity;architecture art1 of cnt10 isbeginprocess(clk)variable cnt1:integer range 0 to 9; beginif clk'event and clk='1' thencnt1:=cnt1+1;if cnt1>9 thencnt1:=0;end if;end if;case cnt1 iswhen 0 => data_out <= "11111100"; -- 0 when 1 => data_out <= "01100000"; -- 1 when 2 => data_out <= "11011010"; -- 2 when 3 => data_out <= "11110010"; -- 3 when 4 => data_out <= "01100110"; -- 4 when 5 => data_out <= "10110110"; -- 5 when 6 => data_out <= "10111110"; -- 6 when 7 => data_out <= "11100000"; -- 7 when 8 => data_out <= "11111100"; -- 8 when 9 => data_out <= "11101110"; -- 9 when others => NULL;end case;end process;process(clk)variable cntsel:integer range 0 to 13; beginif clk'event and clk='1' then cntsel:=cntsel+1;if cntsel>13 thencntsel:=0;end if;end if;case cntsel iswhen 0 => selout <= "111";when 1 => selout <= "110";when 2 => selout <= "101";when 3 => selout <= "100";when 4 => selout <= "011";when 5 => selout <= "010";when 6 => selout <= "001";when 7 => selout <= "000";when 8 => selout <= "001";when 9 => selout <= "010";when others => NULL;end case;end process;end art1;2:Library IEEE;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity miguan isport( clk : in std_logic;WX : out std_logic_vector (3 downto 0);DX : out std_logic_vector (15 downto 0)); End entity miguan;Architecture bhv of miguan isType state is(st0,st1,st2,st3);Signal current_state:state :=st0;Signal next_state:state;Signal shu1 : integer range 0 to 3;Signal shu2 : std_logic_vector(13 downto 0); Signal A,B,C,D:std_logic_vector(15 DOWNTO 0); Beginprocess (clk) isBeginIf (clk'event and clk='1') thenshu2<=shu2+"00000000000001";If shu2="11111111111111"thencurrent_state<=NEXT_STATE;elsecurrent_state<=current_state;End if;End if;End process;Process (current_state)BeginCase current_state iswhenst0=>A<="0110101000000000";--xB<="0000000011110000";--lC<="1000010000011110";--dD<="0001000110111011";--sNEXT_STATE<=ST1;whenst1=>A<="0000000011111100";--UB<="1000010000000011";--TC<="0001000111110011";--ED<="0011000111000111";--RNEXT_STATE<=ST2;whenst2=>A<="0000000011111111";--0B<="0001000111111011";--6C<="0000000000001100";--1D<="0001000111111111";--8NEXT_STATE<=st3;whenst3=>A<="0001000111111011";--6B<="1001010110000000";--4C<="0001000110111011";--5D<="0000000000001100";--1NEXT_STATE<=ST0;End case;End process;Process (clk) isBeginif rising_edge(clk) thenif shu1>3 thenshu1<=0;elseshu1<=shu1+1;end if;case shu1 isWHEN 0 =>WX<="1110";DX<=A;WHEN 1 =>WX<="1101";DX<=B;WHEN 2 =>WX<="1011";DX<=C;WHEN 3 =>WX<="0111";DX<=D;End case;End if;End process;End architecture bhv;3:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity wybcount4 isport(count_clk,saopin_clk,en,load,reset,add_sub:in std_logic;data_in3:in std_logic_vector(3 downto 0);--Left1data_in2:in std_logic_vector(3 downto 0);data_in1:in std_logic_vector(3 downto 0);data_in0:in std_logic_vector(3 downto 0);--Right1duanxuan:out std_logic_vector(7 downto 0);--duan xuansel:out std_logic_vector(1 downto 0);--wei xuanbell:out std_logic);end entity wybcount4;architecture beh of wybcount4 isconstant num0:std_logic_vector:="01111110";constant num1:std_logic_vector:="00001100";constant num2:std_logic_vector:="10110110";constant num3:std_logic_vector:="10011110";constant num4:std_logic_vector:="11001100";constant num5:std_logic_vector:="11011010";constant num6:std_logic_vector:="11111010";constant num7:std_logic_vector:="00001110";constant num8:std_logic_vector:="11111110";constant num9:std_logic_vector:="11011110";function number(x:std_logic_vector) return std_logic_vector is begincase x iswhen "0000" => return num0;when "0001" => return num1;when "0010" => return num2;when "0011" => return num3;when "0100" => return num4;when "0101" => return num5;when "0110" => return num6;when "0111" => return num7;when "1000" => return num8;when "1001" => return num9;when others =>return "00000000";end case;end number;signal Q3:std_logic_vector(3 downto 0);--zhong jian zhisignal Q2:std_logic_vector(3 downto 0);signal Q1:std_logic_vector(3 downto 0);signal Q0:std_logic_vector(3 downto 0);beginprocess(count_clk,reset,en,load,add_sub) isbegin--counter10IF reset = '0' THENQ0<=(OTHERS => '0');Q1<=(OTHERS => '0');Q2<=(OTHERS => '0');Q3<=(OTHERS => '0');ELSIF rising_edge(count_clk) THENif en='0' thenif load='0' thenQ0<=data_in0;Q1<=data_in1;Q2<=data_in2;Q3<=data_in3;elsif add_sub='0' then--addQ0<=Q0+1;if Q0>=9 thenQ0<="0000";Q1<=Q1+1;if Q1>=9 thenQ1<="0000";Q2<=Q2+1;if Q2>=9 thenQ2<="0000";Q3<=Q3+1;if Q3>=9 thenQ3<="0000";end if;end if;end if;end if;else--subQ0<=Q0-1;if Q0<=0 thenQ0<="1001";Q1<=Q1-1;if Q1<=0 thenQ1<="1001";Q2<=Q2-1;if Q2<=0 thenQ2<="1001";Q3<=Q3-1;if Q3<=0 thenQ3<="1001";end if;end if;end if;end if;end if;end if;END IF;if (Q0="0000" and Q1="0000" and Q2="0000" and Q3="0000") then bell<='1';elsebell<='0';end if;end process;process(saopin_clk) is--sao pin xian shivariable qq:std_logic_vector(0 to 1);beginif (saopin_clk'event and saopin_clk='1') thenif qq<=3 then qq:=qq+1;else qq:="00";end if;end if;case qq iswhen "00" => sel<="00";duanxuan<=number(Q0);when "01" => sel<="01";duanxuan<=number(Q1);when "10" => sel<="10";duanxuan<=number(Q2);when "11" => sel<="11";duanxuan<=number(Q3);end case;end process;end architecture beh;。
十进制加法计数器

十进制加法器设计1课程设计的任务与要求 课程设计的任务1、综合应用数字电路知识设计一个十进制加法器。
了解各种元器件的原理及其应用。
2、了解十进制加法器的工作原理。
3、掌握multisim 软件的操作并对设计进行仿真。
4、锻炼自己的动手能力和实际解决问题的能力。
5、通过本设计熟悉中规模集成电路进行时序电路和组合电路设计的方法,掌握十进制加法器的设计方法。
课程设计的要求1、设计一个十进制并运行加法运算的电路。
2、0-9十个字符用于数据输入。
3、要求在数码显示管上显示结果。
2十进制加法器设计方案制定 加法电路设计原理图1加法运算原理框图如图1所示第一步 置入两个四位二进制数。
例如(1001)2,(0011)2和(0101)2,(1000)2,同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。
第二步将置入的数运用加法电路进行加法运算。
第三步前面所得结果通过另外两个七段译码器显示。
即:加法运算方式,则(1000)2+(0110)2=(1110)2 十进制8+6=14 并在七段译码显示出14。
运算方案通过开关S1——S8接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U8和U9分别显示所置入的两个数。
数A直接置入四位超前进位加法器74LS283的A4——A1端,74LS283的B4——B1端接四个2输入异或门。
四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关S5——S8,通过开关S5——S8控制数B的输入,通过加法器74LS283完成两个数A和B的相加。
由于译码显示器只能显示0——9,所以当A+B>9时不能显示,我们在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001)2时加上3(0011)2,产生的进位信号送入译码器U10来显示结果的十位,U11显示结果的个位。
3十进制加法器电路设计加法电路的实现用两片4位全加器74LS283和门电路设计一位8421BCD码加法器。
verilog设计十进制计数器(含进位位)
verilog设计⼗进制计数器(含进位位)⼗进制计数器:设计要求:1、每当计数器值为4’b001时,⾃动回到4’b00002、每个时钟沿计数器值加13、进位输出carry应该与4'b1001同周期输出4、异步复位module cnt10 ( clk, rst_n, carry, cnt );input clk, rst_n;output carry;output [3:0] cnt;reg carry;reg [3:0] cnt;always @( posedge clk or negedge rst_n )beginif ( ~rst_n )begincnt <= 4'b0000;endelse if ( cnt == 4'b1001 )begincnt <= 4'b0000;endelsebegincnt <= cnt + 4'b0001;endendalways @(posedge clk or negedge rst_n)beginif(!rst_n)begincarry <= 1'b0;endelse if(cnt == 4'b1000)begincarry <= 1'b1;endelsecarry<= 1'b0;endendmoduleView Code测试程序:`timescale 1ns/1psmodule cnt10_tb();reg clk, rst_n;wire carry;wire [3:0] cnt;always #10 clk = ~clk;cnt10 cnt10_tb(.clk(clk),.rst_n(rst_n),.carry(carry),.cnt(cnt));initialbeginclk = 1'b0;rst_n = 1'b1;#10 rst_n = 1'b0;#10 rst_n = 1'b1;endendmodule波形图:在这个⼗进制计数器中,唯⼀要注意的⼀点就是进位位carry变化的时刻,如果是为了使下⼀级能正确接收到前⼀级的进位位标识,要在计数到九时使进位位有效;如上图波形所⽰。
电子实验报告用d触发器做十进制计数器
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 9 0 0 0 01 0 0 110 0 10 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输入端应保持为高电平计数器能够正常工作。
十进制同步加法计数器
性能测试
测试环境
为保证测试结果的准确性和可靠 性,需要搭建一个标准的测试环 境,包括适当的电源、时钟源、
输入信号和输出负载等。
测试方法
按照规定的测试方法,对计数器的 各项性能指标进行测试,如计数范 围、计数速度、功耗和集成度等。
测试数据记录
详细记录测试过程中的各项数据, 如输入信号的频率、电源电压、输 出信号的状态等。
THANK YOU
感谢各位观看
发。
十进制同步加法计数器是一种同步计数 器,它可以在时钟信号的控制下进行加
法运算,并输出十进制数的计数值。
Hale Waihona Puke 02十进制同步加法计数器的工作原理
同步计数器的概念
同步计数器
一种数字逻辑电路,能够按照给 定的时钟信号进行计数操作。
工作原理
在每个时钟周期内,同步计数器 对输入的时钟信号进行检测,并 根据时钟信号的变化进行计数操 作。
05
十进制同步加法计数器的性能分析
性能指标
计数范围
计数速度
计数器的最大计数值和最小计数值,即其 能计数的十进制数的范围。
计数器完成一次计数操作所需的时间,通 常以纳秒或微秒为单位。
功耗
集成度
计数器在工作过程中消耗的电能,通常以 毫瓦或瓦为单位。
计数器内部电路的规模和复杂度,通常以 门电路的数量来表示。
进位输出
当计数器达到9态时,会产生一个 进位输出信号,表示需要将这个 进位值加到更高位的计数器中。
回零操作
在每个时钟周期结束时,计数 器会自动回零,即回到0态,准
备进行下一次计数操作。
03
十进制同步加法计数器的设计
设计步骤
确定计数器的进制
数电quartus设计8421BCD码构成的十进制计数器
数电时序电路设计报告(一)实验题目:JK触发器附加必要的门电路设计8421BCD码的十进制计数器。
(二)实验要求:(1)设计要求:用一个译码驱动器74LS48驱动1个LED七段显示器;轮流显示1位十进制数;(2)仿真测试电路的输出(用发光二极管指示)。
(三)实验思路:8421BCD码是四位编码方式,而一个JK触发器只能储存一位二进制代码,所以要用四个JK触发器才能构成一个十进制计数器,再在四个输出端接一个74LS48译码器,就能满足题目的要求。
(四)设计步骤(1)由设计要求画出真值表Q3n Q2n Q1n Q0n Q3n+1 Q2n+1 Q1n+1 Q0n+10 0 0 00 0 0 10 0 0 10 0 1 00 0 1 00 0 1 10 0 1 10 1 0 00 1 0 00 1 0 00 1 0 10 1 0 10 1 1 00 1 1 00 1 1 10 1 1 11 0 0 0 1 0 0 01 0 0 10 0 0 0(2)由真值表画出卡诺图,并化简卡诺图Q3n+1 00X100X001X X00X XQ2n+101X001X010X X01X XQ1n+100X011X000X X11X XQ0n+111X100X000X X11X X与触发器的特征方程进行对比得,J0=K0=1;J1= Q0n·Q3n’(即Q3n非), K1=Q0n;J2=K2=Q1n·Q0n; J3= Q2n·Q1n·Q0n, K3=Q0n.(3)采用Quartus II 7.2软件画出设计电路图(4)对设计电路图进行仿真测试(5)参照型号EP2C5T144C8可编程芯片的实验板情况下,给设计好的原理图配置芯片引脚,并重新输出电路图。
则此时该实验电路设计已完成,连接实验板,下载设计好的文件,则可进行测试。
(四)设计电路图初始原理图仿真结果图配置好芯片引脚后的实验原理电路图:(一)心得体会1、在用Quartus II 7.2软件设计电路图时,会发现器件在纸上画的电路图略有不同,因此需要把他们进行一一对应。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四十进制计数器设计
——综合性实验(一)
一、实验目的
1、学生在掌握所学知识(模拟电路、数字电路、VHD语言等)的基础之上,通过进行该实
验可将有关知识的连贯起来,提高自己本身的综合能力。
2、该实验的参考程序有逻辑错误,学生通过该实验修改程序可以深入的了解和掌握VHDL
语言。
二、实验要求
1、编写十进制计数器程序。
2、利用波形分析进行验证十进制计数器功能正确性。
三、实验设备
1、计算机一台
2、EDA——Ⅳ实验箱一台
四、实验提示
1.输入信号:计数信号(Cn)。
2.门控信号:手动清零(Rest)、手动允许计数(EN)。
3.输出总线信号:二进制——BCD码输出(Dout);
4.输出信号:进位信号(cy);
五、实验主要步骤
1.建立项目文件
2.建立程序文件
3.归属项目文件
4.输入程序
5.程序编译
6.建立波形文件
7.归属项目文件
8.调入引脚信息
9.编辑并编译波形文件
10.波形仿真
六、实验报告要求
1、分别叙述计数器工作原理和设计原理。
2、 绘制它们的程序流程图并进行程序分析。
3、
详细叙述和总结实验过程并进行仿真实验。
4、 进行十进制计数器波形分析与验证。
七、实验波形分析参考
图4.1为修改后的正确波形
图4.2实验指导书提供的计数波形分析
图4.3——6实验指导书提供的计数波形分析
图4.2 实验指导书提供的计数波形分析(不可计数)
图4.3 修改后的计数波形分析(计数不正确)
图4.4 修改后的计数波形分析(无进位)
图4.5 修改后的计数波形分析(十一进制)
图4.1 正确的计数波形分析
图4.6 修改后的计数波形分析(起始位不是零)
八、参考程序:
――*******************************************
――十进制计数器程序
――适用环境实验教学
――软件设计:孙晓明/ 自动控制实验室
――设计时间:2005-02-18
――最后修改时间:2006-02-7
――*******************************************
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
ENTITY cntA is
--Cn 计数脉冲
--Rest 清零信号
-- En 允许计数信号
--Dout[3..0] 十进制BCD码
-- Cy 进位码
port(Cn,Rest,EN :in std_logic;
Dout : out std_logic_VECTOR ( 3 Downto 0 );
Cy : out std_logic);
end cntA ;
architecture sun1 of cntA is
begin
Process (Cn,Rest,EN)
Variable Cqi : std_logic_VECTOR ( 3 Downto 0 );
Begin
If Rest ='1' Then Cqi :=(Others =>'0');
cy<='0';
Elsif Cn'Event and Cn='1' then
If EN='1' then
If Cqi < "1001" then Cqi :=Cqi+1; --学生“If Cqi < "1010" then Cqi :=Cqi;”
cy<='0'; --学生无
elsif cqi="1001" then cy<='1'; --学生无
Cqi :=(others =>'0');
end If;
end If;
end If;
dout<=cqi;
END Process;
End sun1;。