求大侠解答~~~~~~~~
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处错误。。。。。。,实力有限,拜求解答~~ 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;
注意计数器的定义位子和方式
再试试看 回复 2# 至芯兴洪
呵呵,谢谢了,能给下您的qq么,我现在是在毕业设计阶段,想多请教您几个问题~ 我编译了,没有错误啊, 回复 4# zzzdaizi
你是直接复制我的程序然后仿真没有错误的么? 回复 5# chenhaoyumax
就是直接复制的,不过这块赋值的时候i< =i+1;clk <=i; 中间好像多了个空格 回复 6# zzzdaizi
呵呵,是的饿,就是这里出现问题啦。很感谢
能联系您下么~~~~ 回复 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;
错误提醒都不懂什么意思~~ 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;
语法上没错误了,不过不知道你想实现啥! 回复 9# wangjinzeng
你还在么,能加我q么~331652998~
页:
[1]
2