首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

程序错在哪儿,该怎么改呢?

程序错在哪儿,该怎么改呢?

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jia IS PORT( CLK,A :IN STD_LOGIC; DATA:IN STD_LOGIC_Vector (7 downto 0); q: out STD_LOGIC_Vector (7 downto 0); b :OUT STD_LOGIC); END jia; ARCHITECTURE rtl OF jia IS signal arf : std_logic_Vector(7 downto 0); BEGIN PROCESS(CLK,A) Begin IF(CLK'EVENT AND CLK='1')THEN IF (A'EVENT AND A='1') then arf<= DATA; --A的上升沿来到后将DATA的值赋给arf end if; arf <= arf-1; --每个clk时钟arf递减1 q<=arf; END IF; END PROCESS; b<='1' WHEN(arf = 0) else '0'; --当arf为零时输出一个高电平 END rtl; 编译提示ignored unnecessary input pin'A'
IF(CLK'EVENT AND CLK='1')THEN IF (A'EVENT AND A='1') then 以上两条语句逻辑上有错 应改为: if clk'event and clk='1' then arf <=arf-1; end if if a'event and a='1' then if clk='1' then arf <= data; end if; end if;
请大家多关照!!!
返回列表