chenhaoyumax 发表于 2011-5-18 16:12:23

求大侠解答~~~~~~~~

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_signed.ALL;

ENTITY f_div IS
       PORT (clk_in    :INstd_logic;
             clk       :OUT std_logic);
END f_div;

ARCHITECTURE Behavioral OF f_div IS
BEGIN
      PROCESS(clk_in)
             VARIABLE i: std_logic_vector(9 DOWNTO 0): =(OTHERS =>'0');
      BEGIN
             IF (rising_edge(clk_in)) THEN
               i: =i+1;
               clk <=i(9);
             END IF;
      END PROCESS;
END Behavioral;

文中有5处错误。。。。。。,实力有限,拜求解答~~

至芯兴洪 发表于 2011-5-21 20:00:13

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_signed.ALL;

ENTITY f_div IS
       PORT (clk_in    :INstd_logic;
             clk       :OUT std_logic);
END f_div;

ARCHITECTURE Behavioral OF f_div IS
               signal i: integer range 0 to 9;
BEGIN
      PROCESS(clk_in)
      BEGIN
             IF (rising_edge(clk_in)) THEN
               i< =i+1;
               clk <=i;
             END IF;
      END PROCESS;
END Behavioral;
注意计数器的定义位子和方式

再试试看

chenhaoyumax 发表于 2011-5-24 16:32:21

回复 2# 至芯兴洪


   呵呵,谢谢了,能给下您的qq么,我现在是在毕业设计阶段,想多请教您几个问题~

zzzdaizi 发表于 2011-5-24 22:38:33

我编译了,没有错误啊,

chenhaoyumax 发表于 2011-5-25 16:12:52

回复 4# zzzdaizi


    你是直接复制我的程序然后仿真没有错误的么?

zzzdaizi 发表于 2011-5-25 21:25:36

回复 5# chenhaoyumax


    就是直接复制的,不过这块赋值的时候i< =i+1;clk <=i; 中间好像多了个空格

chenhaoyumax 发表于 2011-5-26 10:14:34

回复 6# zzzdaizi


    呵呵,是的饿,就是这里出现问题啦。很感谢
   能联系您下么~~~~

chenhaoyumax 发表于 2011-5-26 15:54:40

回复 7# chenhaoyumax


    帮我再看下这个吧~~~呵呵
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_signed.ALL;

ENTITY sum_cash IS
       PORT(clk               :IN    std_logic;
            rst               :IN    std_logic;
            C10               :IN    std_logic;
            C50               :IN    std_logic;
            C100            :IN    std_logic;
            lock_out_entry    :IN    std_logic;
            clear             :IN    std_logic;
            RC10            :IN    std_logic;
            RC50            :IN    std_logic;
            RC100             :IN    std_logic;
            sum               :OUT   integer RANGE 0 TO 20;
            sum_10            :INOUT integer RANGE -10 TO 15;
            sum_50            :INOUT integer RANGE -10 TO 15;
            sum_100         :INOUT integer RANGE -10 TO 15);
END sum_cash;

ARCHITECTURE Behavioral OF sum_cash IS
BEGIN
   sum_cash:PROCESS(rst,clk)
         VARIABLE x : integer RANGE 0 TO 20;
   BEGIN
          x := sum_10+5*sum_50+10*sum_100;
          IF (x<21) THEN
            sum <=x;
          ELSE
            sum<=20;
          END IF;
          IF (rst='1') THEN
            sum_10 <=0;
            sum_50 <=0;
            sum_100 <=0;
          ELSE
             IF (clear='1') THEN
               sum_10 <= 0;
               sum_50 <= 0;
               sum_100 <= 0;
               sum <= 0;
             END IF;
          IF (rising_edge(clk)) THEN
            IF (lock_out_entry ='0') THEN
                  IF (C10='1') THEN
                      sum_10 <=sum_10 + 1;   
                  END IF;
                  IF (C50='1') THEN
                      sum_50 <=sum_50 + 1;   
                  END IF;
                  IF (C100='1') THEN
                      sum_100 <=sum_100 + 1;   
                  END IF;
            ELSE   
                  IF (RC10='1') THEN                           
                      sum_10 <=sum_10-1;
                  END IF;
                  IF (RC50='1') THEN         
                      sum_50 <=sum_50-1;
                  END IF;
                  IF(RC100='1')THEN      
                      sum_100 <=sum_100-1;
                  END IF;
            END IF;
         END IF;
   END IF;
    END PROCESS;
END Behavioral;

错误提醒都不懂什么意思~~

wangjinzeng 发表于 2011-5-30 14:46:02

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_signed.ALL;

ENTITY sum_cash IS
       PORT(clk               :IN    std_logic;
            rst               :IN    std_logic;
            C10               :IN    std_logic;
            C50               :IN    std_logic;
            C100            :IN    std_logic;
            lock_out_entry    :IN    std_logic;
            clear             :IN    std_logic;
            RC10            :IN    std_logic;
            RC50            :IN    std_logic;
            RC100             :IN    std_logic;
            sum               :OUT   integer RANGE 0 TO 20;
            sum_10            :INOUT integer RANGE -10 TO 15;
            sum_50            :INOUT integer RANGE -10 TO 15;
            sum_100         :INOUT integer RANGE -10 TO 15);
END sum_cash;

ARCHITECTURE Behavioral OF sum_cash IS
         signal x : integer RANGE 0 TO 20;

BEGIN

         x<= sum_10+5*sum_50+10*sum_100;

   sum_cashROCESS:process (rst,clk,x,clear)
   BEGIN
          IF (x<21) THEN
            sum <=x;
          ELSE
            sum<=20;
          END IF;
          IF (rst='1') THEN
            sum_10 <=0;
            sum_50 <=0;
            sum_100 <=0;
          ELSE
             IF (clear='1') THEN
               sum_10 <= 0;
               sum_50 <= 0;
               sum_100 <= 0;
             --END IF;
             else
                          IF (clk'event and clk='1') THEN
                                  IF (lock_out_entry ='0') THEN
                                          IF (C10='1') THEN
                                                  sum_10 <=sum_10 + 1;   
                                          END IF;
                                          IF (C50='1') THEN
                                                  sum_50 <=sum_50 + 1;   
                                          END IF;
                                          IF (C100='1') THEN
                                                  sum_100 <=sum_100 + 1;   
                                          END IF;
                                  ELSE   
                                          IF (RC10='1') THEN                           
                                                  sum_10 <=sum_10-1;
                                          END IF;
                                          IF (RC50='1') THEN         
                                                  sum_50 <=sum_50-1;
                                          END IF;
                                          IF(RC100='1')THEN      
                                                  sum_100 <=sum_100-1;
                                          END IF;
                                  END IF;
                       END IF;
                END IF;
                end if;
    END PROCESS ;
END Behavioral;
语法上没错误了,不过不知道你想实现啥!

chenhaoyumax 发表于 2011-5-30 17:23:53

回复 9# wangjinzeng


    你还在么,能加我q么~331652998~
页: [1] 2
查看完整版本: 求大侠解答~~~~~~~~