精华内容
下载资源
问答
  • 2020-06-22 16:44:47
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    
    entity count100 IS
    port
    (
    	clk:in std_logic;
    	rco:out std_logic
    );
    end;
    
    architecture dataflow of count100 is
    SIGNAL RCO1:STD_logic;
    SIGNAL RCO2:STD_logic;
    SIGNAL RCOTEMP:STD_logic;
    SIGNAL RCOTEMP2:STD_logic;
    COMPONENT counter10 is
    port
    (clk,res,set: in std_logic;
    d:in std_logic_vector(3 downto 0);
    p,t:std_logic;
    c: out std_logic_vector(3 downto 0);
    cout:out std_logic;
    temp:buffer std_logic_vector(3 downto 0)
    );
    end COMPONENT;
    BEGIN
    
    RCO<=RCO1 AND RCO2;
    COUNT1: COUnter10 PORT MAP(clk=>clk,P=>'1',T=>'1',COUT=>RCO1,res=>'1',set=>'1',d=>"0000");
    COUNT2: COUnter10 PORT MAP(clk=>clk,P=>RCO1,T=>'1',COUT=>RCO2,res=>'1',set=>'1',d=>"0000");
    END;
    
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    
    entity count100 IS
    port
    (
    	clk:in std_logic;
    	rco:out std_logic
    );
    end;
    
    architecture dataflow of count100 is
    SIGNAL RCO1:STD_logic;
    SIGNAL RCO2:STD_logic;
    SIGNAL RCOTEMP:STD_logic;
    SIGNAL RCOTEMP2:STD_logic;
    COMPONENT counter10 is
    port
    (clk,res,set: in std_logic;
    d:in std_logic_vector(3 downto 0);
    p,t:std_logic;
    c: out std_logic_vector(3 downto 0);
    cout:out std_logic;
    temp:buffer std_logic_vector(3 downto 0)
    );
    end COMPONENT;
    BEGIN
    
    RCO<=RCO1 AND RCO2;
    COUNT1: COUnter10 PORT MAP(clk=>clk,P=>'1',T=>'1',COUT=>RCO1,res=>'1',set=>'1',d=>"0000");
    COUNT2: COUnter10 PORT MAP(clk=>clk,P=>RCO1,T=>'1',COUT=>RCO2,res=>'1',set=>'1',d=>"0000");
    END;
    
    更多相关内容
  • 十进制计数器设计报告 目录 六十进制计数器设计报告 1 一、 题目剖析 2 二、 设计思路 2 三、 设计过程 2 1 、 真值表 2 2 、 源代码分析 2 3 、 仿真分析 5 功能仿真 5 4 、 注意事项 6 四、 总结 6
  • 十进制计数器 硬件描述语言 VHDL Quartus 2
  • 基于VHDL和QuartusII的十进制可逆计数器
  • 十进制计数器VHDL

    2013-05-31 12:29:01
    通过VHDL,实现10位带使能计数器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT(CLK_IN: IN STD_LOGIC; COUT228 : OUT STD_LOGIC); --计数进位输出 END ...
  • 该文件是完整工程的代码,请用Quartus打开,还有该代码的数电EDA实验报告请看我上传的文件
  • 可编程硬件描述语言VHDL Quartus 六十进制计数器设计报告.rar
  • 十进制计数器的设计(vhdl

    千次阅读 2021-10-28 21:31:29
    在进行十进制计数器设计时,首先逢十进一即0,1,2,3,4,5,6,7,8,9,计数器进位1,然后重新计数。由此我们可以得到,每当时检测钟信号的上升沿时计数器计数一次,当计数器记到9时计数器输出进位。于是我们大致可以画出...

        在进行十进制计数器设计时,首先逢十进一即0,1,2,3,4,5,6,7,8,9,计数器进位1,然后重新计数。由此我们可以得到,每当时检测钟信号的上升沿时计数器计数一次,当计数器记到9时计数器输出进位。于是我们大致可以画出一个十进制计数器的示意图

    其中CLK代表时钟信号,COUT代表进位,CQ代表计数。

    在实际使用我们常常需要对计数器进行复位,同时控制计数器是否计数。这两个信号都为输入信号

    所以一个标准的十进制计数器应该为

     接下来编写代码

    具体思路大概为,定义一个数据暂存点,利用CQX<=CQX+1来进行计数,在再将CQX指向CQ。

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    entity jz10 is
    	port(CLK,RST,EN : in std_logic;
    	             CQ : out std_logic_vector(3 downto 0);--定义端口名
    				 COUT : out std_logic);
    	end jz10;
    architecture behav of jz10 is
    signal CQX : std_logic_vector(3 downto 0);--类似于一个在芯片内部的数据暂存点
    	begin
    	process(CLK,RST,EN)
    	begin
    		if RST ='1' then CQX<=(OTHERS=>'0');--计数器异步复位
    		elsif clk'event and CLK='1' then--检测时钟上升延
    			if EN='1' then--检测是否允许计数
    				if CQX<9 then--允许计数,同时检测是否小于9
    					CQX<=CQX+1;--计数
    						else CQX<=(OTHERS=>'0');--大于9计数值清零
    				end if;
    			end if;
    		end if;
    		if CQX=9 then COUT<='1';--进位
    			else COUT<='0';
    		end if;
    		end process;
    			CQ<=CQX;--将计数值指向输出端口
    	end behav;

     其中CQX<=CQX+1表示两个不同的时刻,右边为当前时刻,CQX若先要+1则需要等到下一个时钟上升沿。

     

      

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

    2019-12-02 10:57:29
    利用QuartusII中的模块编写的六进制计数器,采用74160芯片,与十进制计数器配合可应用于数字电子秒表的设计。
  • VHDL 语言 实现0000-9999的 计数,可控制 暂停|继续, 手动清零的 功能,,可实现已设定值,若计数 大于等于 设定值时 实现 LED灯 点亮的 功能
  • 其次设计了十进制计数电路,并用MAX+PLUSⅡ软件对电路进行了仿真;最后将该电路图下载到实验箱验证了其功能的正确性。0引言MAX+PLUSⅡ开发系统是易学易用的完全集成化的设计开发环境。目前已发行10.0版本。该软件与...
  • 首先用VHDL语言设计10进制计数器,要求电路具有复位端和使能端,仿真验证其正确性,并将其封装成一个元件; 用两个10进制计数器扩展成一个100进制计数器,注意两个10进制计数器间管脚的连接方式,画出其原理图并用...

    一、实验目的

    掌握一般性计数器的VHDL设计方法,熟悉程序文本和原理图结合方法设计电路。掌握CASE语句的基本使用方法。

    二、实验内容

    1. 首先用VHDL语言设计10进制计数器,要求电路具有复位端和使能端,仿真验证其正确性,并将其封装成一个元件;
    2. 用两个10进制计数器扩展成一个100进制计数器,注意两个10进制计数器间管脚的连接方式,画出其原理图并用QUARTUSⅡ软件仿真验证,仿真验证所设计电路的功能;
    3. 首先用CASE语句设计7段显示译码器电路,仿真验证其正确性,并将其封装成一个元件;用7段显示译码器将100进制计数器的两组4位二进制输出转换为10进制显示,画出其原理图并用QUARTUSⅡ软件仿真验证.
      在这里插入图片描述
      在这里插入图片描述

    三、实验设计

    1.首先用VHDL语言设计一个10进制计数器,该计数器具有复位端和使能端,因此需要使用条件语句实现其功能,并且应该是四位的输入输出。VHDL代码如下:

    Library ieee;
    Use ieee.Std_Logic_1164.All;
    Use ieee.Std_Logic_Unsigned.All;
    Entity count10 is
    	port(clk,rst,en,load: in Std_Logic;
    					data: in Std_Logic_Vector (3 downto 0);
    					dout: out Std_Logic_Vector (3 downto 0);
    					cout: out Std_Logic);
    End Entity count10;
    Architecture bhv of count10 is
    begin
    	process (clk,rst,en,load)
    		variable q: Std_Logic_Vector (3 downto 0);
    		begin
    			if rst='0' then q:=(others=>'0');
    			elsif clk 'event and clk='1' then
    				if en='1' then
    					if (load='0') then q:=data; else
    						if q<9 then q:=q+1;
    						else q:=(others=>'0');
    						end if;
    					end if;
    				end if;
    			end if;
    			if q="1001" then cout<='1';
    			else cout<='0';
    			end if;
    			dout<=q;
    	End process;
    End Architecture bhv;
    

    验证其正确性,仿真波形图如下:
    在这里插入图片描述
    2. 用两个10进制计数器扩展成一个100进制计数器,注意其引脚的连接方式。
    在这里插入图片描述
    仿真验证其正确性,波形图如下:
    在这里插入图片描述
    3. 用CASE语句设计7段显示译码器电路,根据不同数字对应显示不同数码管的情况,设计正确的对应关系。VHDL代码如下:

    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL ;
    use Ieee.std_logic_unsigned.all;
    entity led7 is
    	port (indata: in std_logic_vector(3 downto 0);
    		  odata: out std_logic_vector(6 downto 0));
    end entity led7;
    architecture bhv of led7 is
    	begin
    	process (indata)
    	begin
    		case (indata) is
    			when "0000" => odata<= "0111111" ;
    			when "0001" => odata<= "0001110" ;
    			when "0010" => odata<= "1011011" ;
    			when "0011" => odata<= "1001111" ;
    			when "0100" => odata<= "1100110" ;
    			when "0101" => odata<= "1101101" ;
    			when "0110" => odata<= "1111101" ;
    			when "0111" => odata<= "0000111" ;
    			when "1000" => odata<= "1111111" ;
    			when "1001" => odata<= "1101111" ;
    			when others => null;
    		end case;
    	end process;
    end architecture bhv;
    

    将其封装成一个元件。在VHDL描述页面,选file→create/update→create symbol files for current file,把编写的代码封装成一个元件。
    在这里插入图片描述

    用7段显示译码器将100进制计数器的两组4位二进制输出转换为10进制显示。原理图如下:
    在这里插入图片描述

    验证其正确性,仿真波形如下:
    在这里插入图片描述

    展开全文
  • 30进制计数器

    2018-06-20 21:03:31
    基于Multisim的30进制计数器,用了74ls90来实现,电路相对比较简单,适合新手学习
  • VHDL 语言编写的任意进制计数器,默认是十进制,将其中的九改成其他的数就会变成任意进制
  • VHDL 两个4位二进制计数器构成一个六十进制计数器,使用VHDL语言
  • 进制计数器

    2015-10-30 22:00:57
    使用Quartus ii 软件编写的二进制计数器,所使用的语言为Verilog.
  • 基于FPGA硬件开发板,利用QuartusII软件通过VHDL和原理图混合输入的方式实现60进制计数器;有代码
  • 10进制计数器VHDL代码

    2012-12-23 15:50:18
    10进制计数器VHDL代码 Library IEEE; Use IEEE.STD_LOGIC_1164.ALL; Use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter_10 is Port( reset : in std_logic; clock : in std_logic; num_out : out std_logic_vector...
  • VHDL设计----十进制计数器

    万次阅读 多人点赞 2019-10-07 02:23:56
    一、异步复位加法计数器 代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity CNT10 is port( CLK,RST,EN: in std_logic; DOUT : out std_logic_vec...

    一、异步复位加法计数器

     代码:

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    entity CNT10 is
        port(
            CLK,RST,EN: in std_logic;
            DOUT : out std_logic_vector (3 downto 0);
            COUT : OUT std_logic
        );
    end CNT10;
    architecture behav of CNT10 is
    begin
        process(CLK,RST,EN)
            variable Q : std_logic_vector (3 downto 0);
        begin
        if RST = '1' then Q := (others => '0');
        elsif CLK 'event and CLK = '1' then
                if EN = '1' then 
                    if Q < 9 then Q := Q + 1;
                    else Q := (others => '0');
                    end if;
                end if;
        end if;
        if Q = "1001" then COUT <= '1';
        else COUT <= '0'; 
        end if;
        DOUT <= Q;
        end process;
    end behav;

    仿真:

    RST信号与CLK信号无关,随时可以置零

     

    二、同步复位加法计数器

    代码:

     

    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.std_logic_unsigned.all;
    entity CNT10 is
        port(
            CLK,RST,EN: in std_logic;
            DOUT : out std_logic_vector (3 downto 0);
            COUT : OUT std_logic
        );
    end CNT10;
    architecture behav of CNT10 is
    begin
        process(CLK,RST,EN)
            variable Q : std_logic_vector (3 downto 0);
        begin
        if CLK 'event and CLK = '1' then
            if RST = '1' then Q := (others => '0');
            else
                if EN = '1' then 
                    if Q < 9 then Q := Q + 1;
                    else Q := (others => '0');
                    end if;
                end if;
            end if;
        end if;
        if Q = "1001" then COUT <= '1';
        else COUT <= '0'; 
        end if;
        DOUT <= Q;
        end process;
    end behav;

     

    仿真:

    RST信号只有等到CLK信号的下一个上升沿到时才能清零

     

    三、总结

     

    所谓“同步”是指与系统时钟同步。同步复位是指当复位信号有效时,并不立刻生效,而是要等到复位信号有效之后系统时钟的有效边沿到达时才会生效;
    而异步复位则是立刻生效的,只要复位信号有效,无论系统时钟是怎样的,系统都会立即被复位。
    在用VHDL描述复位信号时,在系统时钟有效边沿到达之后才判断同步复位是否有效;而对异步复位的判断则与系统时钟无关。

     

    同步复位:
    IF clock'event AND clock='1' THEN
        IF reset='1' THEN
            -- 复位系统
        ELSE
            -- 正常运作
        END IF;
    END IF;
    异步复位:
    IF reset='1' THEN
        -- 复位系统
    ELSIF clock'event AND clock='1' THEN
        -- 正常运作
    END IF;

     

    转载于:https://www.cnblogs.com/PythonFCG/p/8710898.html

    展开全文
  • 一、实验目的1、学习用集成触发器构成计数器的方法2、掌握中规模集成计数器的使用及功能测试方法3、运用集成计数计构成1/N分频器二、实验原理计数器是一个用以实现计数功能的时序...根据计数制的不同,分为二进制计...
  • 实验2有时钟输入的两位十进制计数器原理图输入设计 一实验目的 1掌握带有时钟输入的数字电路原理图输入设计方法 2.进一步掌握时序波形的真 3.了解VHDL初步的基本知识 二 实验原理与步骤 1.实验步骤见第一章第一节...
  • VHDL——异步清除十进制加法计数器

    千次阅读 2021-04-15 17:06:31
    library ieee; use ieee.std_logic_1164.all; entity adderT is port(clr : in std_logic; clk : in std_logic; cnt : buffer integer range 9 downto 0); end adderT; architecture behavior of ... if clr =
  • VHDL十计数器

    2022-06-08 20:21:12
    边沿计数器:请设计“模 10”计数器:对时钟 CLK 上升沿信号进行计数,输出是位宽 为 4 位的信号,每当计数到 10 时,便立即回复到初始状态,重新计数。
  • 设计一个 1 位十进制可逆计数、译码、显示电路。 1. 基本功能及指标要求 (1) 控制信号 upd==1 时计数器 0 -> 9 循环计数,upd==0 时,9 -> 0 循环计数; (2) 具有异步清零(clr)、同步置数(load)、同步使...
  • 24进制计数器

    2014-09-13 16:06:49
    这是基于VHDL语言设计的24进制计数器,通过对输入脉冲实现计数。
  • VHDL语言实现十进制计数器,并用七段译码器显示
  • 偶然间在网上看到网友请教关于十进制进位的问题,具体问题见: 帮忙解释一个VHDL语言描述10进制cnt10的问题  其中讲述了,里面陈述了SIGNAL定义的中间变量Q在累加到8时就开始进位,而不是累加到9时进位,为此我...
  • vhdl4位十进制计算器

    2017-03-20 21:52:14
    四位十进制计算器设计 vhdl 键盘输入,LED数码管输出
  • 同步集成电路计数器 || 74161 74163 74160 || 同步级联 异步级联 ||...1. 4位同步二进制计数器7416174161的功能有4个:异步清零同步置数保持同步计数其逻辑图和功能表如下图所示,(CLR非)是异步清零端(LD非)是同步置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 555
精华内容 222
关键字:

vhdl十进制计数器