VHDL中loop语句的问题,急求!!!!!!!!!!!!!!!!!1

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity jifenqi is
port (clk:in std_logic;
rst,d1,d2,d3,d4:in std_logic;--按键

enled,shuma,en:out std_logic_vector(7 downto 0);
beer:out std_logic--蜂鸣器 );
end entity;
architecture beh of jifenqi is
type data is array (0 to 9) of std_logic_vector(7 downto 0);
signal count :integer range 0 to 99;
constant mystore:data:=("11000000","11111001","10100100","10110000","10011001","10010010","10000010","11111000","10000000","10010000");
signal qq:integer range 0 to 49999999;
signal jie:integer range 1 to 4;
signal miao,fen:integer range 0 to 60;
signal djs:integer range 0 to 24;
begin
process(clk,rst)
begin
if(rst='0')then jie<=1;
djs<=24;
enled<="11111111";
en<="00000000";
shuma<=mystore(0);
shuma<=mystore(0);
elsif(clk'event and clk='1') then
en<="11111111";
qq<=qq+1;
if(qq=49999999)then
qq<=0;
miao<=miao+1;
if(miao=60)then
miao<=0;
fen<=fen+1;
djs<=djs-1;
if(djs=0)then
djs<=24;
end if;
if(fen=12) then
fen<=0;
beer<='0';
if(miao=10) then
beer<='1';
end if; jie<=jie+1;
if(jie=5)then
enled<="11111111";
end if;
end if;
end if;
end if;
end if;
if( d1='0')then
count<=count+1;
w:loop
count<=count;
exit w when count>10;
end loop w; 这是我写的VHDL程序,综合时总是报错 loop must
terminate at or before 10000 iterations

你这个程序怎么看都像是C写法,硬件描述语言完全不是这么用的。。。如果是希望count增加到10就产生一个信号的话可以直接写成

if( d1='0')then
if(count=10)then
count<=(others=>'0');
temp<='1';
else
count<=count+1;
temp<='0';
end if;
end if;
温馨提示:内容为网友见解,仅供参考
无其他回答

VHDL中loop语句的问题,急求!!!1
temp<='1';else count<=count+1;temp<='0';end if;end if;

VHDL LOOP循环问题
因为loop中计数值的数据类型必须是“变量”。应该把num_r,num_g,num_b的数据类型改为变量。虽然可能楼主看不到。

【vhdl】while loop循环语句的问题
VHDL综合器不支持无法事先确定循环次数的LOOP语句。因此,while loop循环语句不可综合。如果你用的开发环境是编译与综合集成在一起的话,则不要用while loop循环语句。改成FOR num IN ? DOWNTO 0 LOOP的形式。

vhdl中for loop的问题
在每个clk的上升沿,如果ena='1'的话,for循环体都会被仿真4次,Q(3)~Q(0)都会被赋值为'1'。

vhdl中loop语句
你这不对,感觉逻辑很混乱,要不你说说你想要实现啥功能,我再帮你看看 比如说在进程里面你一开始就让 LL<="0000";结果就是每执行一次它就会被置0,那们后面的操作就没法进行了,还有对Q1的赋值也一样

关于VHDL元件例化语句port map语法报错的问题
VHDL里面的循环只能用在process里面吧,因为loop循环是顺序语句,顺序语句是用在进程里面的 你可以在toubi中设一个使能端口,然后在进程里面循环,通过控制使能端口来控制toubi的使用,,,

vhdl中while-loop语句实现奇偶校验时其中有条语句如何解释tmp:=tmp...
假设当i=1的时候,a(1)=1,则有temp:=temp xor a(1):=1 xor 1:=0;此时temp=0;当i=2的时候,a(2)=1,则有temp:=temp xor a(2):=0 xor 1:=1;此时temp=1;……依次类推。

有关VHDL里的for语句,为啥我在modelsim编译出现如下错误
for...loop语句是顺序语句,不能直接出现在结构体中。你需要将顺序语句放到进程语句中才行!

关于VHDL元件例化语句port map语法报错的问题
十进制计数、器蜂鸣报警模块、译码器模块、数据选择模块、六进制计数器。。。我是想说,这些计数器和模块FPGA元件库中是没有的,这些计数器和模块你必须先设计,即设计文件或实体,再将这些预先设计好的设计实体定义为一个元件,然后才例化

在VHDL中,语句”FOR I IN 0 TO 7 LOOP ”定义循环次数为几次。_百度...
8次

相似回答