网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 技术信息 > 正文
  • RSS
  • 用元件例化完成数码扫描显示电路设计源程序
    http://www.ic72.com 发布时间:2007/4/29 10:32:21
    1、本题目中将要用到的元件:
    --************************************************--
    --***********十进制计数器(count10.vhd)************--
    --************************************************--
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_ARITH.ALL;
    USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    --************************************************--
    ENTITY COUNT10 IS
    PORT(CLK,CLR,ENA:IN STD_LOGIC;
    QOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
    );
    END COUNT10;
    --************************************************--
    ARCHITECTURE BEHAV OF COUNT10 IS
    BEGIN
    PROCESS(CLK,CLR,ENA)
    VARIABLE TMP:INTEGER RANGE 0 TO 10;
    BEGIN
    IF CLR='1' THEN
    TMP:=0;
    ELSIF CLK'EVENT AND CLK='1' THEN
    IF ENA='1' THEN
    TMP:=TMP+1;
    IF TMP=10 THEN
    TMP:=0;
    END IF;
    END IF;
    END IF;
    QOUT<=CONV_STD_LOGIC_VECTOR(TMP,4);
    END PROCESS;
    END BEHAV;
    ==================================
    --************************************************--
    --**********扫描信号发生器(count8.vhd)**********--
    --************************************************--
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_ARITH.ALL;
    USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    --************************************************--
    ENTITY COUNT8 IS
    PORT(CLK:IN STD_LOGIC;
    QOUT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
    );
    END COUNT8;
    --************************************************--
    ARCHITECTURE BEHAV OF COUNT8 IS
    signal TMP:INTEGER RANGE 0 TO 10;
    BEGIN
    PROCESS(CLK)
    BEGIN
    IF CLK'EVENT AND CLK='1' THEN
    TMP<=TMP+1;
    IF TMP=8 THEN
    TMP<=0;
    END IF;
    END IF;
    QOUT<=CONV_STD_LOGIC_VECTOR(TMP,3);
    END PROCESS;
    END BEHAV;
    ================================
    --************************************************--
    --************七段译码器(deled.vhd)*************--
    --************************************************--
    library ieee;
    use ieee.std_logic_1164.all;
    --************************************************--
    entity deled is
    port(
    datain:in std_logic_vector(3 downto 0);
    qout:out std_logic_vector(6 downto 0)
    );
    end deled;
    --************************************************--
    architecture func of deled is
    begin
    process(datain)
    begin
    if datain= "0000" then qout<="1111110";
    elsif datain= "0001" then qout<="0110000";
    elsif datain= "0010" then qout<="1101101";
    elsif datain= "0011" then qout<="1111001";
    elsif datain= "0100" then qout<="0110011";
    elsif datain= "0101" then qout<="1011011";
    elsif datain= "0110" then qout<="1011111";
    elsif datain= "0111" then qout<="1110000";
    elsif datain= "1000" then qout<="1111111";
    elsif datain= "1001" then qout<="1111011";
    else null;
    end if;
    end process;
    end func;
    --====================================
    --===========顶层文件描述=============
    --====================================
    --************************************************--
    --***********scan.vhd************--
    --************************************************--
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    --************************************************--
    ENTITY SCAN IS
    PORT(CLKK,CLK_SEL,CLRR,ENAA:IN STD_LOGIC;
    SELOUT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
    QOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
    );
    END SCAN;
    --************************************************--
    ARCHITECTURE BEHAV OF SCAN IS
    --************************************************--
    --***************定义第一个元件*******************--
    COMPONENT COUNT10 --定义第一个元件:十进制计数器的调用;
    PORT(CLK,CLR,ENA:IN STD_LOGIC;
    QOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
    );
    END COMPONENT;
    --************************************************--
    --***************定义第二个元件*******************--
    COMPONENT COUNT8 --定义第二个元件:扫描信号发生器的调用;
    PORT(CLK:IN STD_LOGIC;
    QOUT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
    );
    END COMPONENT;
    --************************************************--
    --***************定义第三个元件*******************--
    COMPONENT DELED --定义第三个元件:七段通用译码器的调用;
    port(
    datain:in std_logic_vector(3 downto 0);
    qout:out std_logic_vector(6 downto 0)
    );
    END COMPONENT;
    --************************************************--
    --*******************定义信号*********************--
    SIGNAL S1:STD_LOGIC_VECTOR(3 DOWNTO 0);
    --************************************************--
    --****************元件例化体开始******************--
    BEGIN
    U1:COUNT10 PORT MAP(CLKK,CLRR,ENAA,S1); --例化第一个元件;
    U2:DELED PORT MAP(S1,QOUT); --例化第二个元件;
    U3:COUNT8 PORT MAP(CLK_SEL,SELOUT); --例化第三个元件;
    END BEHAV;
    --************************************************--
    --*****************程序结束××*******************--
    --************************************************--



    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质