网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

用元件例化完成数码扫描显示电路设计源程序

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;
--************************************************--
--*****************程序结束××*******************--
--************************************************--


热门搜索:TLM825GF UL800CB-15 2839648 SBB830 TR-6FM SBB1002-1 4SPDX 2811271 TLP725 IS-1000 2804623 2920120 PDU1220 2320335 6SPDX TRAVELER3USB BT137S-600D118 TLP606B 2839211 TLP808TEL PS3612 48VDCSPLITTER 2866666 N060-004 B20-8000-PCB
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质