精华内容
下载资源
问答
  • 4、设计实现四位二进制减法计数器(缺0000 0001 0010) 工作计划与进度安排: 第一周 熟悉Multisim环境及QuartusⅡ环境,练习数字系统设计方法, 包括采用触发器设计和超高速硬件描述语言设计,体会自上而 下、...
  • 四位二进制减法计数器 电子计数器电路仿真
  • 用T'触发器74LS76构成的异步二进制减法计数器实验电路multisim源文件,multisim10及以上版本可以正常打开仿真,是教材上的电路,可以直接仿真,方便大家学习。
  • 带异步复位和计数使能控制的8位二进制减法计数器设计 带异步复位和计数使能控制的8位二进制减法计数器设计
  • 数电课程设计-四位二进制减法计数器目录:一.课程设目的 1 二.课设题目实现框图 1 2 三.实现过程 1 3 1.VHDL 1 13 1.1建立工程 1 13 1.2VHDL源程序 6 3 1.3编译及仿真过程 8 3 1.4引脚锁定及下载 11 3 ...
  • 通过课程设计锻炼动手能力和思维能力检测实际操作能力以及所学知识。 增强对所学知识的认识,加深电路的理解,使所学知识形成一个串联网巩固知新。扩展知识面。使自己对所学知识有一个总括的把握。
  • module jianfaqi( RST,//复位端 CLK,//时钟输入端 Q,//计数输出端  );  input RST;  input CLK;    output reg [2:0]Q;    always @( posedge CLK or negedge RST )  begin   if (RST==0)  ...

    module jianfaqi(
    RST,//复位端
    CLK,//时钟输入端
    Q,//计数输出端
        );
        input RST;
        input CLK;
        
        output reg [2:0]Q;
        
        always @( posedge CLK or negedge RST )
        begin 
            if (RST==0)
                Q <= 3'b000;
            else
                Q <= Q - 1'b1;
        end
    endmodule

    仿真的时序图:

    展开全文
  • 同歩二进制加法计数器3位同步二进制加法计数器如图所示。3位同步二进制加法计数器计数器是一个3位同步二进制加法计数器,它由3个JK触发器和一个与门组成。与 异步计数器不同的是,它将计数脉冲同时送到每个触发器...

    同歩二进制加法计数器

    3位同步二进制加法计数器如图所示。

    7d661fbfd01732e5a8f628c0b4f1e0eb.png

    3位同步二进制加法计数器

    该计数器是一个3位同步二进制加法计数器,它由3个JK触发器和一个与门组成。与 异步计数器不同的是,它将计数脉冲同时送到每个触发器的CP端,计数脉冲到来时,各个触发器同时工作,这种形式的计数器成为同步计数器。

    334acc1598e5bf3003ab684de58a90ae.png

    数字计数器

    计数器的工作过程分为两步。

    第一步:计数器复位清零。

    在工作前应先对计数器进行复位清零。在复位控制端送一个负脉冲到各触发器Rd端, 触发器状态都变为“0",即Q2Q1Q0=000 。

    第二步:计数器开始计数。

    当第1个时钟脉冲的下降沿到来时,3个触发器同时工作。在时钟脉冲下降沿到来时, 触发器F。的J=K=1 (J、K悬空为“1”),触发器F0状态翻转,由“0”变为“1”;在时钟脉冲下降沿到来时,触发器F1的J=K=Q0=0 (注:在时钟脉冲下降沿刚到来时,触发器F0状态 还未变为“1”),触发器F1状态保持不变,仍为“0”;在时钟脉冲下降沿到来时,触发器F2 的

    J=K=Q0*Q1=0*0=0 (注:在时钟脉冲下降沿刚到来时,触发器F0、F1状态还未变化,均 为“0”),触发器F2状态保持不变,仍为“0”。第1个时钟脉冲过后,计数器的Q2Q1Q=OO1.

    83592d6d7c91c9e8d6189450988b5a70.png

    数字芯片

    同理,当第37个时钟脉冲下降沿到来时,计数器状态依次变为011、100, 101、110、 111;当再来一个时钟脉冲时,计数器状态又变为000。

    从上面的分析可以看出,同步计数器的各个触发器在时钟脉冲的控制下同时工作,计数速度快。如果将图中的Q0 Q1改接到Q0非 Q1非上,就可以构成同步二进制减法计数器。

    展开全文
  •  本文使用VHDL语言设计10进制减法计数器,附带清零和置数功能。将项目分为分频器、计数器、数码管三个部分,采用元器件例化的方式,自顶向下设计。 目录一、代码1.1 顶层文件1.2 分频器1.3 计数器1.4 数码管、...

     本文使用VHDL语言设计10进制减法计数器,附带清零和置数功能。将项目分为分频器、计数器、数码管三个部分,采用元器件例化的方式,自顶向下设计。

    一、代码

    1.1 顶层文件

     顶层文件将三个模块元器件例化和元器件映射。

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    entity CNT10 is
        port(
              CLK,RST,EN: in std_logic;
    		  data_hex : out std_logic_vector(7 downto 0);
              DOUT : out std_logic_vector (3 downto 0);
              COUT : OUT std_logic;
    		  DINT : in std_logic_vector(3 downto 0);
    		  DCON : in std_logic;
    		  Dtest : out std_logic;
    		  DtestMORE : out std_logic_vector(3 downto 0)
        );
    end CNT10;
    architecture behav of CNT10 is
    	
    	component digital is		
    	port(
    		data : IN std_logic_vector(3 downto 0);
    		show : OUT std_logic_vector(7 downto 0);
    		com : OUT std_logic_vector(3 downto 0)
    	);
    	end component digital;
    	
    	component Counter1 is
    	port(
    		clk : IN std_logic;
    		en : IN std_logic;
    		out1 : out std_logic
    	);
    	end component Counter1;
    	
    	component count10 is
    	port(
    		signal clk,rst,en : in std_logic;
    		signal DCON : in std_logic;
    		signal DINT : in std_logic_vector(3 downto 0);
    		signal q : inout std_logic_vector(3 downto 0)
    	);
    	end component count10;
    
    
    signal clk1 : std_logic;
    signal data_sum : std_logic_vector(7 downto 0);
    signal data_get : std_logic_vector(3 downto 0);
    signal cq10 : std_logic_vector(3 downto 0) := (others => '0');
    
    begin
     
    part1:
    	 Counter1 port map
    	 (
    		clk => CLK,
    		en => EN,
    		out1 => clk1
    	 );
    	 
    part2:
    	count10 port map
    	(
    		clk => clk1,
    		rst => RST,
    		en => EN,
    		DCON => DCON,
    		DINT => DINT,
    		q => cq10
    	);
    	
    part3:	 
    	 digital port map
    	 (
    		data => data_get,
    		show => data_sum,
    		com => DOUT
    	 );
    	 
    	 Dtest <= clk1;
    	 DtestMORE <= cq10;
    	 data_hex <= data_sum;
    	 data_get <= cq10;
    	 
    end behav;
    

    1.2 分频器

     分频器用于将clk时钟信号放大相应倍数,否则由于时钟频率太高,计数值的减少效果看不出。out1为分频后的clk信号。

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use ieee.std_logic_unsigned.all;
    entity Counter1 is
    port
    (
    	clk : in std_logic;
    	en : in std_logic;
    	out1 : out std_logic
    );
    end Counter1;
    
    architecture Behavioral of Counter1 is
    signal cp : std_logic_vector(25 downto 0) :=(others => '0');	
    signal clk1 : std_logic := '0';
    begin
    	process(clk)
    		begin
    		if clk 'event and clk = '1' then
    				if en = '1' then
    					if cp = "10111110101111000010000000" then
    						cp <= "00000000000000000000000000";
    						clk1 <= not clk1;
    					else
    						cp <= cp + 1;
    					end if;
    					out1 <= clk1;
    				end if;
    			end if;
    	end process;
    end Behavioral;
    

    1.3 计数器

     计数器实现从9倒数到0,每秒倒数一次。rst为清零端,DCON为置数端,置数的数据为DINT。

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use ieee.std_Logic_unsigned.all;
    
    
    entity count10 is
    port(
    	signal clk,rst,en : in std_logic;
    	signal DCON : in std_logic;
    	signal DINT : in std_logic_vector(3 downto 0);
    	signal q : out std_logic_vector(3 downto 0)
    );
    end count10;
    
    architecture Behavioral of count10 is
    	signal cq10 : std_logic_vector(3 downto 0) := (others => '0');
    begin
    	process(clk,rst,en)
    	begin
    		if rst = '1' then -- 清零
    			cq10 <= "0000";	
    		elsif clk'event and clk = '1' then
                if en = '1' then
    					if DCON = '1'   then	--置数
    						cq10 <= DINT;
    					elsif cq10 = "0000" then
    						cq10 <= "1001";
    					else 
    						cq10 <= cq10 - '1';
    					end if;
                end if;
    		end if;
    	end process;
    	q <= cq10;
    end Behavioral;
    

    1.4 数码管

     数码管将计数器输出的值转译为数码管的段码而输出。

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    entity digital is
    port(
      data : IN std_logic_vector(3 downto 0);
      show : OUT std_logic_vector(7 downto 0);
      com : OUT std_logic_vector(3 downto 0)
    );
    end digital;
    architecture Behavioral of digital is
    
    begin
    	com <="1110";	--- 选中四个数码管中的最低位
    	
    	process(data)
    	begin
    	  case data is
    	     WHEN "0000" => show <= "11000000";
    		 WHEN "0001" => show <= "11111001";
    		 WHEN "0010" => show <= "10100100";
    		 WHEN "0011" => show <= "10110000";
    		 WHEN "0100" => show <= "10011001";
    		 WHEN "0101" => show <= "10010010";
    		 WHEN "0110" => show <= "10000010";
    		 WHEN "0111" => show <= "11111000";
    		 WHEN "1000" => show <= "10000000";
    		 WHEN "1001" => show <= "10010000";
    		 when others => show <= "11111111";
    	  end case;
        end process;
    end Behavioral;
    

    二、仿真

    创建VHDL Test Bench文件,在代码中begin后加入使能EN<=‘1’;代码。(注意仿真时需要将分频器、计数器赋初值,否则仿真将无数据。当然下载到器件上时却不需要初值,因为板子的高低电平有初值,而仿真却需要人为设定。)
    ps:仿真时请修改分频器cp的值,否则无法仿真出。
    在这里插入图片描述
     从仿真波形可以看出从9开始计数到0并循环不断。仿真时分频器设置为2倍频,从dtest参数可以看出,dtest参数的值为分频器的输出(看前面1.1顶层文件)。而dtestmore和data_hex的值对应于数码管所对应的值。


    最后,如果需要完整工程的可以去下载:FPGA-VHDL实现十进制减法计数器

    展开全文
  • 贵州大学实验报告学院: 专业: 班级姓名学号实验组实验时间指导教师成绩实验项目名称4位二进制减法计数器实验目的了解二进制减法计数器的设计,进一步了解,熟悉和掌握quartusII的使用方法学习verilog HDL的...

    贵州大学实验报告

    学院: 专业: 班级

    姓名学号实验组实验时间指导教师成绩实验项目名称4位二进制加减法计数器实验目的了解二进制加减法计数器的设计,进一步了解,熟悉和掌握quartusII的使用方法

    学习verilog HDL的编程方法

    学会使用vector wave功能仿真实验仪器软件:Altera QuartusII9.0集成开发环境实验原理计数器是数字系统中用得较多的基本逻辑器件,它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。

    计数器的种类很多,按脉冲方式可以分为同步计数器和异步计数器,按进制可以分为二进制计数器和非二进制计数器;按计数过程数字的增减,可分为加计数器减计数器和可逆计数器。

    实验设计的是一个4位二进制加减法计数器,该计数器可以通过一个控制信号决定计数器时加计数还是减计数,另外,该寄存器还有一个清零输入,低电平有效。还有一个load装载数据的信号输入,用于预置数据,还有一个C的输出,用于计数器的级联。

    4位二进制加减法计数器功能表

    R CLK LoadUp down

    状态

    L x x

    H x L

    H ↑ H

    H ↑ H

    X

    X

    0

    1

    置零

    置数

    减法

    加法

    设计原理框图

    从原理图中可见,需要有1bit装载位(load)、1bit清零位(clr)、方向控制位up_down和4bit数据选择位DIN[3..0]。装载位我们采用SW0,清零位采用SW1,方向控制位为SW2。

    SW3-SW6作为数据输入端,LED1-LED4显示数据的输出,LED5为溢出标志位。实验内容编写一个带预置输入,清零输入,可加可减计数器的verilog代码或VHDL代码并仿真,编译下载验证

    module counter4(load,clr,c,DOUT,clk,up_down,DIN);//定义模块

    input load;//定义输入信号

    input clk;//

    wire load;//定义线网型

    input clr;//

    wire clr;//

    input up_down;//

    wire up_down;//

    input [3:0]DIN;//定义4位二进制输入信号

    wire [3:0]DIN;// 定义4位二进制线网型信号

    output c;//定义输出信号

    reg c;//定义寄存器类型信号

    output [3:0]DOUT;//

    wire [3:0]DOUT;

    reg [3:0]data_r;

    assign DOUT=data_r;

    always@(posedge clk or posedge clr or posedge load)//检测clk,clr,load的上升沿

    begin

    if(clr)//当clr=1的时候进行下面的运行程序

    data_r<=0;//将data_r置零

    else if(load) //当load=1的时候进行下面的运行程序

    data_r<=DIN;//将DIN的值赋给data_r

    else begin if(up_down)//load=0的时候进行下面的操作

    begin

    if(data_r==4'b1111)begin///当data_r==4'b1111的时候进行下面的运行程序

    data_r<=4'b0000;

    c=1;

    end

    else begin//当data_r不等于4'b1111的时候进行下面的运行程序

    data_r<=data_r+1;//进行加法计数

    c=0;

    end

    end

    else

    begin

    if(data_r==4'b0000)begin//当data_r==4'b0000的时候进行下面的运行程序

    data_r<=4'b1111;

    c=1;

    end

    else begin//当data_r不等于4'b1111的时候进行下面的运行程序

    data_r<=data_r-1;//进行减法计数

    c=0;

    end

    end

    end

    end

    endmodule//结束模块

    实验数据

    如图为波形仿真结果,当clr为1的时候,输出结果为0000;当clr为0,load为1时,输出结果为输入数据DIN的值,当up_down为1时,加法进位,进行加1运算,当data_r达到1111时,data_r变为0000,级零信号c为1;当up_down为0时,减法进位,进行减1运算,当data_r达

    展开全文
  • 题:分析该时序逻辑电路的功能, 写出电路的驱动方程、状态方程和输出方程, 画出电路... 第步, 根据驱动方程求状态方程. 第三步, 根据状态方程绘制状态表. 第四步, 根据状态表绘制状态图. 第五步, 根据...
  • 同歩二进制加法计数器3位同步二进制加法计数器如图所示。3位同步二进制加法计数器计数器是一个3位同步二进制加法计数器,它由3个JK触发器和一个与门组成。与 异步计数器不同的是,它将计数脉冲同时送到每个触发器...
  • 基于触发器的三位二进制同步减法计数器无效态000/110 1 课程设计的目的与作用 ...三位二进制减法计数器(无效态: 000 011) 3设计过程 3.1 三位二进制减法计数器(无效态: 000 011) 3.1. 1 状态转换图 3...
  • 同歩二进制加法计数器3位同步二进制加法计数器如图所示。3位同步二进制加法计数器计数器是一个3位同步二进制加法计数器,它由3个JK触发器和一个与门组成。与 异步计数器不同的是,它将计数脉冲同时送到每个触发器...
  • Verilog HDL 之 4位二进制减法计数器 一、原理  计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。  计数器的种类很多。按脉冲方式可以分为同步...
  • 同步四位二进制计数器逻辑图

    千次阅读 2021-01-15 10:21:28
    同步四位二进制加法计数器逻辑电路图如下: 同步四位二进制减法计数器逻辑电路图如下:
  • 异步四位二进制加法计数器逻辑电路图如下: 异步四位二进制减法计数器逻辑电路图如下:
  • Verilog HDL 之 4位二进制减法计数器 一、原理  计数器是数字系统中用的较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时等功能。 计数器的种类很多。按脉冲方式可以分为同步计数器...
  • Verilog HDL 之 十进制加减法计数器 一、原理  上面的一个实验我们介绍了二进制计数器, 这个实验我们介绍非二进制计数器。在非二进制计数器中我们最常用的就是十进制计数器。下面设计一个8421码十进制计数器为例 ...
  • Verilog HDL 之 十进制加减法计数器 一、原理  上面的一个实验我们介绍了二进制计数器, 这个实验我们介绍非二进制计数器。在非二进制计数器中我们最常用的就是十进制计数器。下面设计一个8421码十进制计数器为例...
  • 逻辑符号功能表 C/B段输出进位或借位,所以14->15输出1,1->0输出1。而0->15输出0,15->0输出0 由此看出,计数范围为0000~1111,即0~15
  • 数字电路实验(05)二进制计数器设计 2020-5-29 一....1.1.实验目的 认识二进制同步计数器的定义、工作状态及信号波形; 熟悉基于JK触发器实现二进制同步计数器的构成规则。...Ji=Ki=Q0•Q1•…....减法计数器
  • 异步二进制减法计数器如图1-1所示减法计数器的结构原理1-1减法计数器的结构原理该计数器是一个3位二进制异步减法计数器,它与前面介绍过的3位二进制异步加法计 数器一样,是由3个JK触发器组成,其中J、K端都悬空...
  • :计数器对输入脉冲进行计数,来一CP个脉冲,计数器状态变化一次。根据计数器循环长度M称之为M模计数器(M进制计数器),计数器状态编码,按二进制的递增或递减规律来编码,对应称加法计数器,减法计数器
  • 题:分析该时序逻辑电路 的功能, 写出电路的驱动方程、状态方程和输出方程, 画出电路的状态转换图和时序图. ... 第步, 根据驱动方程求状态方程. 第三步, 根据状态方程绘制状态表. 第四...
  • 未计数前,将输出QD,QC,QB,QA,置成103)按计数增减分:加法计数器,减法计数器,加减法计数器. 7.3.1 异步计数器 一,异步可以3个JK触发器构成3级二进制计数器,并利用反馈复位法跳过状态(111)构成7进制计数器。因为帧缓存...
  • (1) 学习同步十进制计数器的原理和设计方法,理解它与二进制计数器的区别 (2) 掌握灵活运用Verilog HDL语言进行各种描述与建模的技巧和方法 2. 实验要求: (1) 使用合适的方法来编程实现规定特性的十进制同步减法...
  • 计数器是一个用以实现...根据计数制的不同,分为二进制计数器、十进制计数器和任意进制计数器。根据计数器的增减趋势,又分为加法、减法和可逆计数器。还有可预制数和可变程序功能计数器等等。目前,无论是TTL还是...
  • 1.异步二进制加法计数器 2.异步二进制减法计数器 3.D触发器组成异步计数器 4.其它进制异步计数器 5.同步计数器 6.集成计数器
  • Mutisim课程设计

    2013-06-30 08:58:28
    减法计数器 1.了解数字系统设计原理及方法。2.熟悉Xillinx ISE仿真环境及VHDL下载。3. 熟悉Mutisim仿真环境。4设计实现(四位二进制减法计数器(缺0011,0100,0101,0110))。

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

二进制减法计数器