vhdl程序有个问题。求大神

Lux_an 2016-04-11 01:08:11
原程序中PROCESS(K,CLK,CLR) 这句为PROCESS(K),编译之后 错误是:unsupported feature error:non-locally-static attribute names are not supporte
改为PROCESS(K,CLK,CLR),错误为vhdl unsupported feature error:channel of width >=32 is not supported

已疯。求大神
程序如下。功能是表决器
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY BJQ IS
PORT(CLK,CLR:IN STD_LOGIC; ----CLK为系统时钟,CLR为复位按
K:IN STD_LOGIC_VECTOR(6 DOWNTO 0); ----拨动开关输入表决
Result:OUT STD_LOGIC; ----显示表决是否通过
LEDAG,LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); ----LEDAG为七段数码管, 用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。
END ENTITY BJQ;
ARCHITECTURE one OF BJQ IS
BEGIN
PROCESS(K,CLK,CLR)
VARIABLE shu:INTEGER; ----定义变量shu来统计同意的个数
BEGIN
IF (CLR='1') THEN ----不复位,即正常工作
LED<=K; ----将指示灯和投票人对应,即记名投票
shu:=0;
IF CLK'EVENT AND CLK='1' THEN
IF K(0)='1' THEN
shu:=shu+1;
END IF;
IF K(1)='1' THEN
shu:=shu+1;
END IF;
IF K(2)='1' THEN
shu:=shu+1;
END IF;
IF K(3)='1' THEN
shu:=shu+1;
END IF;
IF K(4)='1' THEN
shu:=shu+1;
END IF;
IF K(5)='1' THEN
shu:=shu+1;
END IF;
IF K(6)='1' THEN
shu:=shu+1;
END IF;
CASE shu iS ----指示灯显示投票结果,数码管显示同意人数
WHEN 0 =>LEDAG<="0111111";
WHEN 1 =>LEDAG<="0000110";
WHEN 2 =>LEDAG<="1011011";
WHEN 3 =>LEDAG<="1001111";
WHEN 4 =>LEDAG<="1100110";
WHEN 5 =>LEDAG<="1101101";
WHEN 6 =>LEDAG<="1111101";
WHEN 7 =>LEDAG<="0100111";
WHEN others =>LEDAG<="0000000";
END CASE;
END IF;
ELSE -----启动复位功能,同时复位指示灯和数码管
Result<='0';
LEDAG<="0111111";
LED<="0000000";
END IF;
END PROCESS;
END ARCHITECTURE one;
...全文
381 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly 100% 2016-04-12
  • 打赏
  • 举报
回复
shu 你没定义范围
Lux_an 2016-04-11
  • 打赏
  • 举报
回复
顶。。。大神在哪里

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧