导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→菜鸟学VHD,请高手指点,我的程序能优化吗(节省资源)[9992000]

 *第44332篇: 菜鸟学VHD,请高手指点,我的程序能优化吗(节省资源)

  
楼 主:9992000 2006年11月10日16:29
 菜鸟学VHD,请高手指点,我的程序能优化吗(节省资源)
这是一个双16位计数器(二个输入时钟,二个门控,),再用二根选择线分4次读出数据,程序编译了一下,发现很占用资源(我用的是EPM3604),高手们看看能精简吗?谢谢了
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY DubleCnt16 IS 
PORT( 
    clk1,CLK2,GATE1,GATE2,CLR,RD,CS : IN Std_logic; 
    DS : in std_logic_vector(1 downto 0);
    McuDataBus: out std_logic_vector(7 downto 0)
 );
END DubleCnt16;

ARCHITECTURE using_std_logic OF DubleCnt16 IS

SIGNAL    COUNT1,COUNT2 : Std_logic_vector(15 DOWNTO 0);

BEGIN
    PROCESS(CLR,CLK1,GATE1,CLK2,GATE2)
    BEGIN
      IF CLR = '1' THEN
         COUNT1   <= (OTHERS =>   '0');
       ELSIF falling_edge(clk1) AND GATE1= '1' then
--         IF COUNT1   < "1111111111111111" then
           COUNT1   <= COUNT1 +1;
--          end if;
  END IF;
      IF CLR = '1' THEN
         COUNT2   <= (OTHERS =>   '0');
     ELSIF falling_edge(clk2) AND GATE2= '1' then
--         IF COUNT2   < "1111111111111111" then
           COUNT2   <= COUNT2 +1;
--          end if;
       END IF;
    END PROCESS;

    process (COUNT1,COUNT2,DS)
    begin
 IF RD = '0' AND CS = '0' THEN
       IF DS = "00" THEN
           McuDataBus   <= COUNT1(7 DOWNTO 0); 
       ELSIF DS = "01" THEN
            McuDataBus   <= COUNT1(15 DOWNTO 8); 
       ELSIF DS = "10" THEN
            McuDataBus   <= COUNT2(7 DOWNTO 0); 
       ELSIF DS = "11" THEN
            McuDataBus   <= COUNT2(15 DOWNTO 8); 
  END IF;
 ELSE
  McuDataBus   <= (OTHERS =>   'Z');
 END IF; 
 END PROCESS;

END using_std_logic;

  
2楼:9992000 2006年11月12日13:28
 高手都哪里去了
高手都哪里去了,请多多指点啊

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:求助!!电冰箱液晶显示控制器设计!!!

[下一篇主题]:AT91SAM7X256开发板!