集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1274|回复: 1

求大神解答~~~~~~

[复制链接]
chenhaoyumax 发表于 2011-5-18 16:09:34 | 显示全部楼层 |阅读模式
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_signed.ALL;

ENTITY disp  IS
       PORT(din               :IN    integer RANGE 20 DOWNTO 0;
            clk               :IN    std_logic;
            rst               :IN    std_logic;
            led_buy_inner     :IN    std_logic;
            led_cancel_inner  :IN    std_logic;
            led_buy           :OUT   std_logic;
            led_cancel        :OUT   std_logic;
            led1              :OUT   std_logic_vector(6 DOWNTO 0);
            led2              :OUT   std_logic_vector(6 DOWNTO 0));
END disp;


ARCHITECTURE Behavioral OF disp IS
       SIGNAL  din10,din1        : std_logic_vector(3 DOWNTO 0);
       SIGNAL  counter           : std_logic_vector (3 DOWNTO 0);
       SIGNAL  led_ok_flag       : std_logic;
       SIGNAL  led_cancel_flag   : std_logic;
       SIGNAL  led_ok_inner      : std_logic;
       COMPONENT disp7
             PORT (din : IN std_logic_vector(3 DOWNTO 0);
                   led : OUT std_logic_vector(6 DOWNTO 0));
       END COMPONENT;
BEGIN
       uut1:disp7 PORT MAP(
            din => din10,
            led => led1);

       uut2:disp7 PORT MAP(
           din => din1,
           led => led2);

PROCESS(din)
BEGIN
     din1 <=conv_std_logic_vector((din mod 10),4);
     din10 <=conv_std_logic_vector(((din-(din mod 10))/10),4);
END PROCESS;

PROCESS(clk)
BEGIN
     IF (rising_edge(clk)) THEN
         IF (led_ok_flag ='1' OR led_cancel_flag ='1') THEN
             counter <=counter+1;
         ELSE
             counter <=(OTHERS =>'0');
         END IF;
     END IF;
     

     IF (rst='1') THEN
         led_ok_flag <='0';
         led_cancel_flag <='0';
         counter <=(OTHERS =>'0');
     ELSE
        IF (rising_edge(led_ok_inner)) THEN
            led_ok_flag <='1';
        ELSIF (counter ="111111111111") THEN
            led_ok_flag <='0';

        END IF;
        IF (rising_edge(led_cancel_inner)) THEN
            led_cancel_flag <='1';
        ELSIF (counter ="111111111111") THEN
            led_cancel_flag <='0';
        END IF;
        IF (counter(10) ='1') THEN
            IF (led_ok_flag ='1') THEN
                led_buy <='1';
            END IF;
            IF (led_cancel_flag ='1') THEN
                led_cancel <='1';
            END IF;
       END IF;
    END IF;
  END PROCESS;
END Behavioral;
显示的错误为66行附近的错误,新手上路真是不知道该怎么办,求各位路过大侠解答~~~~~~~
至芯兴洪 发表于 2011-5-21 20:02:33 | 显示全部楼层
66行是哪行,我数了数你的代码不过70行
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-17 17:25 , Processed in 0.071616 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表