精华内容
下载资源
问答
  • 同步十进制加法计数器设计

    万次阅读 多人点赞 2019-10-01 09:09:07
    (1)逻辑抽象: ... 设加法进位输出变量为Y, 使用上升沿触发的触发器进行设计. 状态转换关系为 从0000开始计数, 经过10个脉冲后, 实现了0000->0001->0010->0011->0100->0101->011...

    (1)逻辑抽象:

            由分析, 共有10个有效状态, 需要\left \lceil \log(2, 10) \right \rceil = 4 个触发器.设4个触发器编码变量自高位到低位依次设为Q_{3}Q_{2}Q_{1}Q_{0}.

            设加法进位输出变量为Y, 使用上升沿触发的触发器进行设计.  状态转换关系为 从0000开始计数, 经过10个脉冲后, 实现了0000->0001->0010->0011->0100->0101->0110->0111->1000->1001->0000的状态转换. 按照上升沿触发的方式要求, 在1001->0000时,  Y由0->1.

    (2)绘制状态图, 并转换为状态表:

            由于状态转换关系比较明确, 这里直接绘制出状态表即可.

    同步十进制加法计数器状态表
    ^{​{Q_{3}}^{n}}^{​{Q_{2}}^{n}}^{​{Q_{1}}^{n}}^{​{Q_{0}}^{n}}^{​{Q_{3}}^{n+1}}^{​{Q_{2}}^{n+1}}^{​{Q_{1}}^{n+1}}^{​{Q_{0}}^{n+1}}Y
    000000010
    000100100
    001000110
    001101000
    010001010
    010101100
    011001110
    011110000
    100010010
    100100001

    (3)选择触发器, 绘制状态激励表:

            这里选择JK触发器, 对于JK触发器, 有下述关系:

            

    JK触发器状态
    Q^{^{n}}Q^{^{n+1}}JK
    000\times
    011\times
    10\times1
    11\times0

     

    同步十进制加法计数器状态激励表
    ^{​{Q_{3}}^{n}}^{​{Q_{2}}^{n}}^{​{Q_{1}}^{n}}^{​{Q_{0}}^{n}}^{​{Q_{3}}^{n+1}}^{​{Q_{2}}^{n+1}}^{​{Q_{1}}^{n+1}}^{​{Q_{0}}^{n+1}}YJ_{3}K_{3}J_{2}K_{2}J_{1}K_{1}J_{0}K_{0}
    0000000100\times0\times0\times1\times
    0001001000\times0\times1\times\times1
    0010001100\times0\times\times01\times
    0011010000\times1\times\times1\times1
    0100010100\times\times00\times1\times
    0101011000\times\times01\times\times1
    0110011100\times\times0\times01\times
    0111100001\times\times1\times1\times1
    100010010\times00\times0\times1\times
    100100001\times10\times0\times\times1
    1010\times\times\times\times\times\times\times\times\times\times\times\times\times
    1011\times\times\times\times\times\times\times\times\times\times\times\times\times
    1100\times\times\times\times\times\times\times\times\times\times\times\times\times
    1101\times\times\times\times\times\times\times\times\times\times\times\times\times
    1110\times\times\times\times\times\times\times\times\times\times\times\times\times
    1111\times\times\times\times\times\times\times\times\times\times\times\times\times

    (4)根据状态激励表求出输出方程和激励方程组:

    J_{0}=1, K_{0}=1

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    000000
    010000
    11\times{\color{Red} \times }{\color{Red} \times }\times
    1001{\color{Red} \times }\times
    Y={Q_{3}}^{n}{Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    000000
    010010
    11\times\times{\color{Red} \times }\times
    100\times\times\times
    J_{3}={Q_{2}}^{n}{Q_{1}}^{n}{Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    00\times{\color{Red} \times }{\color{Red} \times }\times
    01\times{\color{Red} \times }{\color{Red} \times }\times
    11\times{\color{Red} \times }{\color{Red} \times }\times
    1001{\color{Red} \times }\times
    K_{3}={Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    000010
    01\times\times{\color{Red} \times }\times
    11\times\times{\color{Red} \times }\times
    1000{\color{Red} \times }\times
    J_{2}={Q_{1}}^{n}{Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    00\times\times{\color{Red} \times }\times
    010010
    11\times\times{\color{Red} \times }\times
    10\times\times{\color{Red} \times }\times
    K_{2}={Q_{1}}^{n}{Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    0001{\color{Red} \times }\times
    0101{\color{Red} \times }\times
    11\times\times\times\times
    1000\times\times
    J_{1}=\overline{​{Q_{3}}^{n}}{Q_{0}}^{n}

     

     {Q_{1}}^{n}{Q_{0}}^{n}00011110
    {Q_{3}}^{n}{Q_{2}}^{n}  
    00\times{\color{Red} \times }10
    01\times{\color{Red} \times }10
    11\times{\color{Red} \times }{\color{Red} \times }\times
    10\times{\color{Red} \times }{\color{Red} \times }\times
    K_{1}={Q_{0}}^{n}

    (5)检查电路自启动功能:

            由于电路在设计时未采用全编码, 所以要考虑无效状态次态的问题, 因此电路必须检查自启动功能.

    检查思路:

            将激励方程组代入状态特性方程组, 

    {Q_{3}}^{n+1}=J_{3}\overline{​{Q_{3}}^{n}}+\overline{K_{3}}{Q_{3}}^{n}=\overline{​{Q_{3}}^{n}}{Q_{2}}^{n}{Q_{1}}^{n}{Q_{0}}^{n}+{Q_{3}}^{n}\overline{​{Q_{0}}^{n}},

    {Q_{2}}^{n+1}=J_{2}\overline{​{Q_{2}}^{n}}+\overline{K_{2}}{Q_{2}}^{n}=\overline{​{Q_{2}}^{n}}{Q_{1}}^{n}{Q_{0}}^{n}+{Q_{2}}^{n}\overline{​{Q_{1}}^{n}{Q_{0}}^{n}}={Q_{2}}^{n}\oplus ({Q_{1}}^{n}{Q_{0}}^{n}),

    {Q_{1}}^{n+1}=J_{1}\overline{​{Q_{1}}^{n}}+\overline{K_{1}}{Q_{1}}^{n}=\overline{​{Q_{3}}^{n}}\cdot \overline{​{Q_{1}}^{n}}\cdot {Q_{0}}^{n}+{Q_{1}}^{n}\cdot \overline{​{Q_{0}}^{n}},

    {Q_{0}}^{n+1}=J_{0}\overline{​{Q_{0}}^{n}}+\overline{K_{0}}{Q_{0}}^{n}=\overline{​{Q_{0}}^{n}}+\overline{1} \cdot {Q_{0}}^{n}=\overline{​{Q_{0}}^{n}}.

            对于设计中的无效状态1010/1011/1100/1101/1110/1111代入状态特性方程组, 得出的次态分别为 1011/0100/1101/0100/1111/0000, 构成 1010->1011->0100, 1100->1101->0100, 1110->1111->0000, 由此可以看出, 

    所有的无效状态都可进入有效状态的循环, 则电路具备自启动功能.

    (6)绘制状态图:

     (7)设计心得:

            与设计同步八进制可逆加法计数器不同, 在设计同步十进制加法计数器时, 需考虑到无效状态的问题: 电路设计未采用全编码, 故会有一些无效状态. 

            在判断无效状态能否进入有效状态的循环时, 只需将激励方程组代入触发器的状态特性方程, 求出每一个无效状态对应的次态, 再判断这些无效状态的次态能否进入有效状态的循环即可.

            由于同步十进制加法计数器的状态转换关系比较明确, 故在设计时直接给出状态表. 在即将设计的110序列检测器中, 就需要先分析出原始状态表, 再对原始状态表进行等价状态化简, 之后对化简后的原始状态进行编码——最后才能得到110序列检测器的状态表. 

            从一开始的分析给定同步时序逻辑电路功能, 到后来的设计同步N进制计数器, 再到即将设计的110序列检测器, 我们可以发现分析难度是在递增的. 如果能设计出110序列检测器, 那么对于同步时序逻辑电路的学习就进入了一个新的层次.

            虽然设计同步十进制加法计数器难度不大, 但深刻理解该设计用例是十分重要的. 只有把该例子的设计流程捻熟于心, 才能进入同步时序逻辑电路设计下一阶段的学习.

     

    展开全文
  • 同步十进制加法计数器(JK)

    千次阅读 2019-10-28 10:56:17
  • 8421BCD码同步十进制加法计数器 图1为由4个JK触发器组成的8421BCD码同步十进制加法计数器电路仿真开始首先用清0开关将计数器设置为0000状态然后计数脉冲信号的作用计数器的状态按8421BCD码数的规律依次递增当...
  • 学会十进制加法计数器设计,为复杂时序逻辑电路的设计打基础。 实验预习: 掌握十进制加法计数器的设计原理; 同步、异步电路的实现; if语句的用法。 实验讲解1: D触发器和锁存器的VerilogHDL描述: module...

    目录

    实验目的:

    实验预习:

    实验讲解1:

    D触发器和锁存器的VerilogHDL描述:

    实验讲解2:

    D触发器的设计

    实验内容:十进制加法计数器设计

    实验总结


    实验目的:

    1. 熟悉QuartusⅡ软件的使用方法,掌握EDA流程;
    2. 掌握基本时序逻辑电路的设计方法;
    3. 学会十进制加法计数器设计,为复杂时序逻辑电路的设计打基础。

    实验预习:

    1. 掌握十进制加法计数器的设计原理;
    2. 同步、异步电路的实现;
    3. if语句的用法。

    实验讲解1:

    D触发器和锁存器的VerilogHDL描述:

    module D_ff(D,clk,q);    //D触发器
    input D,clk;
    output reg q;
    always@(posedge clk)
    q<=D;
    end
    endmodule
    
    module latchl(D,clk,q);    //锁存器
    input D,clk;
    output reg q;
    always@(D or clk)
    if(clk)
    q<=D;
    end
    endmodule
    
    

    锁存器与触发器的共同点:具有0 和1两个稳定状态,一旦状态确定,就能自行保持。一个锁存器/触发器能存储一位二进制码。

    锁存器与触发器的不同点:锁存器---对脉冲电平敏感的存储电路,在特定输入脉冲电平作用下改变状态。触发器---对脉冲边沿敏感的存储电路,在时钟脉冲的上升沿或下降沿的变化瞬间改变状态。

    语法点1:

    时序标志性描述posedge  clk:凡是边沿触发性质的时序元件必须使用posedge (negedge)  clk,而不用此表述产生的时序电路都是电平敏感性时序电路。其中posedge clk 表示上升沿触发,而negedge clk 表示下降沿触发。

    实验讲解2:

    D触发器的设计

    module d_ff(rst,D,clk,q);//异步
    input rst,D,clk;
    output reg q;
    always@ (posedge clk or posedge rst)
    begin 
    if(rst)
    q<=0;
    else 
    q<=D;
    end
    endmodule
    
     异步复位D触发器的仿真波形
    module d_fft(rst,D,clk,q);//同步
    input rst,D,clk;
    output reg q;
    always@ (posedge clk  )
    begin 
    if(rst)
    q<=0;
    else 
    q<=D;
    end
    endmodule
    
    同步复位D触发器的仿真波形

    语法点2:异步与同步

    异步:指独立于时钟控制的复位控制端。即在任何时刻,只要rst=1或0,触发器的输出端立刻被清0,与时钟的状态无关。

    使用的语句:

    always@(posedge clk or posedge rst)

    begin

          if(rst) q<=0;

          else  q<=D;

    end

    同步:不仅rst有效,且必须时钟上升沿到来,触发器的输出端才清0;

    使用的语句

    always@(posedge clk )

    begin

          if(rst) q<=0;

          else  q<=D;

    end

    Verilog的时钟过程描述注意要点:当敏感信号表中没有关键词posedge或negedge时,试图通过改变敏感信号的放置来改变逻辑功能是无效的。当敏感信号表中含有关键词posedge或negedge时,通过改变敏感信号的放置可以影响综合结果。

    语法点3:条件语句( if语句)

    条件语句就是根据判断条件是否成立,确定下一步的运算。if后面的条件表达式一般为逻辑表达式或关系表达式,且必须放在括号内。

    执行if语句时,首先计算表达式的值,若结果为0、x或z,按“假”处理;若结果为1,按“真”处理,并执行相应的语句。

    Verilog语言中有3种形式的if语句:

    格式1为不完整的条件语句,用于产生时序电路,如下所示:

    if (condition_expr)    true_statement;

    格式2为完整的条件语句,产生组合逻辑电路;特定情况产生时序电路,比如posedge CLK等表述的边沿敏感信号,如下所示:

    if (condition_expr)     true_statement;

    else   fault_ statement;

     格式3为多重嵌套式条件语句,可以产生比较丰富的条件描述,既可产生时序电路,也可产生组合电路。

    if (condition_expr1)         true_statement1;

    else if (condition_expr2)     true_statement2;

    else if (condition_expr3)     true_statement3;

           ……

    else default_statement;

    实验内容:十进制加法计数器设计

    实验设计要求:设计带异步复位,同步使能的十进制加法计数器。其中,RST为异步复位信号,EN为同步使能信号,CLK为时钟信号。CQ为计数输出,COUT为进位输出。

    十进制加法计数器设源程序:

    module cnt_10(rst,en,clk,q,cout);//十进制加法器
    input rst,en,clk;
    output reg[3:0] q;
    output reg cout;
    always@(posedge clk or negedge rst)
    begin
    if(~rst) begin q<=4'b0000; cout<=1'b0;end//是0就执行此行
    		else if(en)
    		if(q==4'b1001) begin q<=4'b0000;cout<=1'b1; end
    				else begin q<=q+1'b1; cout<=1'b0;end
    end
    endmodule

    语法点4:过程赋值语句(相当于VHDL中的变量赋值)

    过程赋值语句出现在initial和always块语句中,赋值符号是“=”,格式为:

                          赋值变量 = 表达式;

    在过程赋值语句中,赋值号“=”左边的赋值变量必须是reg(寄存器)型变量,其值在该语句结束即可得到。如果一个块语句中包含若干条过程赋值语句,那么这些过程赋值语句是按照语句编写的顺序由上至下一条一条地执行,前面的语句没有完成,后面的语句就不能执行,就象被阻塞了一样。因此,过程赋值语句也称为阻塞赋值语句。

    在Verilog程序的过程结构中,阻塞式赋值是一种理想化的数据传输,是立即发生的,不存在任何延时行为。

    在同一过程结构中,允许对同一目标变量多次赋值,即对于同一目标变量允许有多个驱动源。

    具有顺序赋值的特点,即过程中的阻塞式赋值语句的先后顺序位置将直接影响最后的结果或综合结果。

    语法点5:非阻塞赋值语句(相当于VHDL中的信号赋值)

    非阻塞赋值语句也是出现在initial和always块语句中,赋值符号是“<=”,格式为:

                      赋值变量 <= 表达式;

     在非阻塞赋值语句中,赋值号“<=”左边的赋值变量也必须是reg型变量,其值不象在过程赋值语句那样,语句结束时即刻得到,而在该块语句结束才可得到。

    建议:在时序逻辑电路的设计中,采用非阻塞型赋值语句。

    在Verilog程序的过程中,非阻塞赋值语句比较接近真实的电路赋值和输出,其有一个特殊的延时操作,而且在赋值过程中不影响其它同类语句的赋值操作。同阻塞式赋值一样,允许对同一目标信号多次赋值或驱动。Verilog规定,被赋值的目标变量接受最接近过程结束的那一个驱动源的数据。

    例如,在下面的块语句中包含4条赋值语句

    always       @(posedge clock)

    m = 3;

    n = 75;

    n <= m;

    r = n;

    语句执行结束后,r的值是75,而不是3,因为第3行是非阻塞赋值语句“n <= m”,该语句要等到本块语句结束时,n的值才能改变。

    实验任务1:

    学生实现十进制加法计数器的代码输入、综合、软件仿真;对软件仿真结果进行认真的分析,并通过软件仿真的结果来修改设计;

    实验任务2:

    学生根据十进制加法计数器的输入输出端口选择电路模式,并进行相应的引脚锁定、编程下载和硬件验证。

    【时钟由系统的clkB0或者B1输入,使能信号、复位信号则由按键输入,输出cout则由led灯显示,其余由数码管显示数值】

    实验总结

     

     

    展开全文
  • 进制计数器.zip

    2020-07-03 23:07:34
    这是我们数电实验题目: 使用74ls160和74ls161设计24进制计数器即: 用一片 74LS160 同步十进制计数器和一片 74LS161 同步二进制计数器,连接成二十四 进制的计时电路。输入信号为数字脉冲信号。
  • VHDL---基于状态机的十进制加法计数器

    千次阅读 多人点赞 2018-04-28 16:55:36
    代码工程由四部分构成:顶层文件、数码管显示元件、分频元件、基于状态机的加法计数器。 顶层文件: --数码管显示 --通过拨码开关控制CLK,EN,LOAD; --通过独立按键控制RST. --v1.0 使用拨码开关产生...
    状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。状态机简写为FSM(Finite State Machine),主要分为2大类:
    

    第一类,若输出只和状态有关而与输入无关,则称为Moore状态机;
    第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机。
    程序的状态转换图如下:
    程序的状态转换图
    代码工程由四部分构成:顶层文件、数码管显示元件、分频元件、基于状态机的加法计数器。
    顶层文件:

    --数码管显示
    
    --通过拨码开关控制CLK,EN,LOAD;
    --通过独立按键控制RST.
    
    --v1.0 使用拨码开关产生时钟信号,不稳定。
    --v1.1 时钟信号
    
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    entity led_sm is    
        port
        (   
            inCLK,RST_in: IN STD_LOGIC;
            data_hex7:out std_logic_vector(7 downto 0);--数码管段码输出
            com:out std_logic_vector(3 downto 0)--位码输出      
        );
    end led_sm;
    
    architecture Lin of led_sm is
    
        component led_change is
        port
        (
            data_in : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
            LED7S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
            com : out std_logic_vector(3 downto 0) -- 选通引脚
        );
        end component led_change;
    
        component CNT10 is  
        PORT 
        (
            CLK,RST:IN STD_LOGIC;  --
            DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
        );
        end component CNT10;
    
        --design the signal of the data
        signal dd :STD_LOGIC_VECTOR(3 DOWNTO 0);
        signal num:STD_LOGIC_VECTOR(3 DOWNTO 0); 
        signal jinwei:STD_LOGIC;
        signal data_num:std_logic_vector(3 downto 0);
    
        --Converted data
        signal data_sm:std_logic_vector(7 downto 0);
    
    begin
    
    part1:  --CNT10 process
        CNT10 port map
        (
            CLK =>inCLK,RST =>RST_in, -- 
            DOUT => num
        );
    
        data_num <= num;
    
    part2:  --the led-change process
        led_change port map
        (
            data_in => data_num,
            LED7S =>data_sm,
            com =>com
        );
        data_hex7<=data_sm;
    END Lin;    

    数码管显示元件:

    LIBRARY IEEE;
     USE IEEE.STD_LOGIC_1164.ALL;
     USE IEEE.STD_LOGIC_UNSIGNED.ALL;
     ENTITY led_change IS
        PORT (
            data_in : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
            LED7S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
            com : out std_logic_vector(3 downto 0) -- 选通引脚
            );
        END ;
    ARCHITECTURE one OF led_change IS
            TYPE states IS(SR0,SR1,SR2,SR3,SR4,SR5,SR6,SR7,SR8,SR9);
            SIGNAL LIN :states;
    BEGIN 
        com <= "1101"; --choose the shumaguan
        --引脚设置
        --com[3] PIN_141
        --com[2] PIN_142
        --com[1] PIN_144
        --com[0] PIN_6
    
        PROCESS (data_in) BEGIN 
            CASE data_in IS
            WHEN "0000" => LED7S <= X"03";
            WHEN "0001" => LED7S <= X"9F";
            WHEN "0010" => LED7S <= X"25";
            WHEN "0011" => LED7S <= X"0d";
            WHEN "0100" => LED7S <= X"99";
            WHEN "0101" => LED7S <= X"49";
            WHEN "0110" => LED7S <= X"41";
            WHEN "0111" => LED7S <= X"1F";
            WHEN "1000" => LED7S <= X"01";
            WHEN "1001" => LED7S <= X"09";
            when others=>LED7S<=X"FF";--支持0-9字符
            END CASE ;
        END PROCESS;
    END one;

    分频元件:

    --通用偶数分频器
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_arith.all;
    use ieee.std_logic_unsigned.all;
    
    entity  gen_div is
        generic(div_param:integer:=1);
        --分频因子,分频为2*div_param,默认2分频
        port
        (
            clk_in:in std_logic;--输入时钟
            bclk:out std_logic;--分频输出
            resetb:in std_logic--复位信号
        );
    end gen_div;
    
    architecture behave of gen_div is
    signal tmp:std_logic;--输出暂存寄存器
    signal cnt:integer range 0 to div_param:=0;--计数寄存器
    begin
    ------------------------------
        process(clk_in,resetb)
        begin
            if resetb='1' then --reset有效时,bclk始终是0
                cnt<=0;
                tmp<='0';
            elsif rising_edge(clk_in) then
                cnt<=cnt+1;
                if cnt=div_param-1 then
                    tmp<=not tmp;--取反信号
                    cnt<=0;
                end if;
            end if;
        end process;
        bclk<=tmp;--输出
    --------------------------------
    end behave;

    加法计数器:

    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    
    --v1.0 使用拨码开关产生时钟信号,不稳定。
    --v1.1 增加分频器,以此产生时钟信号
    
    ENTITY CNT10 IS
        PORT (CLK,RST:IN STD_LOGIC;  --
            DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
        END CNT10;
    
    ARCHITECTURE behav OF CNT10 IS
    ------------------------------
            TYPE states IS(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9);
            SIGNAL ST,NST :states :=s0;
    
    signal clk_tmp:std_logic;--半秒脉冲
    
        component gen_div is--分频元件调用声明
        generic(div_param:integer:=40000000);--20000000分频的,产生半秒脉冲
        port
        (
            clk_in:in std_logic;
            bclk:out std_logic;
            resetb:in std_logic
        );
        end component gen_div;
    
        BEGIN 
    
    gen_1s: --分频产生0.5s脉冲
            gen_div port map--分频元件例化
            (
                clk_in=>CLK,
                resetb=>not RST,
                bclk=>clk_tmp
            );
    
    
    
    REG:    PROCESS (clk_tmp,RST)
        BEGIN 
            IF RST='0' THEN ST <=s0; 
            ELSIF clk_tmp'EVENT AND clk_tmp ='1' THEN
            ST <= NST;
            END IF;
        END PROCESS REG;
    
    COM:    PROCESS(ST) 
            VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);
                BEGIN
                CASE ST IS
                WHEN s0 => Q :="0000"; DOUT <=Q; NST <=s1;
                WHEN s1 => Q :="0001"; DOUT <=Q; NST <=s2;
                WHEN s2 => Q :="0010"; DOUT <=Q; NST <=s3;
                WHEN s3 => Q :="0011"; DOUT <=Q; NST <=s4;
                WHEN s4 => Q :="0100"; DOUT <=Q; NST <=s5;
                WHEN s5 => Q :="0101"; DOUT <=Q; NST <=s6;
                WHEN s6 => Q :="0110"; DOUT <=Q; NST <=s7;
                WHEN s7 => Q :="0111"; DOUT <=Q; NST <=s8;
                WHEN s8 => Q :="1000"; DOUT <=Q; NST <=s9;
                WHEN s9 => Q :="1001"; DOUT <=Q; NST <=s0;
                END CASE;
            END PROCESS COM;
    END behav;  
    
    
    --PROCESS(clk_tmp,RST)
    --      VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);
    --BEGIN
    --      IF RST='0' THEN Q:=(OTHERS=>'0'); 
    --      ELSIF clk_tmp'EVENT AND clk_tmp ='1' THEN   
    --                  IF Q<9 THEN Q:=Q+1;
    --                  ELSE Q := (OTHERS =>'0');
    --                  END IF;
    --              END IF;
    --          DOUT <=Q;
    --      END PROCESS;
    --
    --  END behav;
    展开全文
  • 题目: 以一片74163(同步16进制加法计数器)和一片74154(4-16线译码器)设计节拍脉冲发生电路: 要求从12个输出端顺序、循环地输出等宽的负脉冲. 分析: 要使74154从12个输出端顺序、循环地输出等宽的负脉冲, 可先用...
  • 线上实验6进制加法计数器

    千次阅读 2020-08-05 19:24:50
    4) 不同芯片也可实现六十进制。 1.2 计数器设计组成 1) 用两个 74ls192芯片和一个与非门实现。 2) 当定时器递增到 59 时,定时器会自动返回到 00 显示,然 后继续计时。 3) 两个芯片间的级联 实验设备与器件...
  • 本文介绍用6 片CD4026 及0.8 英寸共阴极... INH=“0”时,时钟脉冲从CLOCK 端引入,时钟脉冲的上升沿使计数器翻转;INH =“1”时,计数器停止计数,显示的数字同时被保持。引脚 REST=“1”时,计数器复零,显示器显
  • 十进制计数器M=10,采取BCD编码方式从0000->1001,共有6个无效状态,检查自启动问题。可逆说明加法和减法两种模式都可以,需要增加一个控制端M=1时为加法计数 很复杂的原理图,看了就怀念Verilog 直接根据激励...
  • 进制计数器的设计 EDA
  • 十进制计数器与4位二进制计数器有些相似,但4位...8421BCD码十进制计数器如图所示该计数器是一个8421BCD码异步十进制加法计数器,由4个JK触发器和一个与非门构成,与非门的输出端接到触发器F1、F2的SD非端(置"1”端...
  • 使用两片74LS161和门电路设计一个六十进制计数器。 (1) 画出连线图,输出用七段数码管7SEG-BCD显示出来。 (2)74LS161的CP脉冲由信号源中的DCLOCK提供,要求七段数码管的显示将从00→01→02→03→04→05→06→07...
  • :计数器对输入脉冲进行计数,来一CP个脉冲,计数器状态变化一次。根据计数器循环长度M称之为M模计数器(M进制计数器),计数器状态编码,按二进制的递增或递减规律来编码,对应称加法计数器,减法计数器。
  • 一、实验目的1、学习用集成触发器构成计数器的方法2、掌握中规模集成计数器的使用及功能测试...按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计...
  • 今天小编要和大家分享的是八进制计数器,计数器相关信息,接下来我将从八进制计数器设计方案汇总(四款模拟电路原理实现过程),试用4位同步进制加法计数器74161采用置数法构成十进制计数器 二这几个方面来介绍。...
  • 同步集成电路计数器 || 74161 74163 74160 || 同步级联 异步级联 ||...1. 4位同步进制计数器7416174161的功能有4个:异步清零同步置数保持同步计数其逻辑图和功能表如图所示,(CLR非)是异步清零端(LD非)是同步置...
  • 也可称之为智能计数器,采用十进制数字显示被测信号频率表,被广泛应用于航天、航空、电子技术、测控等技术领域。通用计数器是一种具有多种测量功能,多种用途的电子计数器,它可以测量频率,周期,时...
  • 用VHDL语言实现十进制计数器,并用七段译码器显示
  • 10进制计数器Verilog编程

    万次阅读 2019-09-27 10:37:36
    计数器不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲序列以及进行数字运算等,...1.同步四位二进制加法计数器: 各触发器的驱动方程: T0 = 1; T1 = Q0 T2 = Q0Q1 T3 = Q0Q1Q2 2.四位10进制...
  • CD4017:十进制计数器/脉冲分配器 INH 为低电平时,计数器在时钟上升沿计数;反之,计数功能无效。CR 为高电平时,计数器清零。 Johnson 计数器,提供了快速操作、2 输入译码选通和无毛刺译码输出。防锁选通,保证了...
  • 74LS190是同步十进制加/减计数器(又称可逆计数器),漂亮的主板它依靠加/减控制端的控制来实 现加法计数和减法计数。CPUCO/BO:进位输出/借位输出端;CP:时钟输入端:CT:计数控制端(低电平有效);Do~D3:并行数据...
  • 进制集成计数器

    2021-01-19 16:53:27
    同步清零端为不但清零端为有效电平,而且必须有CP脉冲触发沿到来,才使计数器清零。 集成计数器一般都有置数端,置数端分为异步置数端和同步置数端。异步置数端为无论CP端处于什么状态,只要置数控制端(LD或LD‾\...
  • 例如:十进制计数器74160,其计数的模为10,计数方式为加1计数,从0000开始,每个时钟脉冲加1,直到1001,即十进制数9,然后再回到0000。4位二进制计数器74161或者74163,其计数的模为16,计数方式为加1计数,从状态...
  • 计算机组成原理位二进制计数器实验报告计算机组成原理实验一4位二进制计数器实验姓名:李云弟 学号:1205110115 网工1201【实验环境】1. Windows 2000 或 Windows XP2. QuartusII9.1 sp2、DE2-115计算机组成原理教学...
  • 低位的161通过置数法设计为十进制加法计数器,每十个CP向高位161进一。当高位161计数到0110(即6)时,对两片161同时清零,电路回到0状态。电路图如图5所示。异步连接方式实现60进制时,高位161的CP与低片译码电路相连...
  • 它与前面介绍过的3位二进制异步加法计 数器一样,是由3个JK触发器组成,其中J、K端都悬空(相当于J=1、K=1),两者的不同 之处在于,减法计数器是将前一个触发器的Q非端与一个触发器的CP端相连。电子时代计数器原理...
  • 一、CD4017功能概述CD4017是5位Johnson十进制计数器分频器,时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制,CD4017 提供了16 引线多层陶瓷双列直插(D)、熔封陶瓷双列直插(J)、塑料...
  • 时序逻辑电路设计(一):同步计数器 时序电路的考察主要涉及分析与设计两个...计数器的分类 所谓计数器,就是技术脉冲的驱动,一次进行加1或者减1计数的时序逻辑电路。总体来说,由上文时序逻辑电路的分析中可以...
  • 【Verilog HDL】24进制计数器

    千次阅读 2020-12-20 18:58:28
    文章目录24进制计数器设计要求【 1. 源代码 】顶层文件1. 分频器模块2. 控制模块3. 个位计数器模块4. 计数器模块5. 数码管模块【 2. 仿真图 】 24进制计数器设计要求 将4HZ信号分频得到的1HZ时钟信号作为计数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,215
精华内容 486
关键字:

同步十进制加法计数器在连续脉冲下的数据表格