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

请问大虾,在MAX+PLUS(10.0)里是不是不支持此语句q(i)

支持啊!!
建议用信号试一下,不要把输出口的值进行操作
在for-loop循环语句里,你的i值如果为0话,q(i-1)就变成了q(-1)了,自然就会有那种问题出现了。 你可以用别的语句来实现(循环左移<<),或者改成下面这样: PROCESS(a,b,nclr,clock) BEGIN IF nclr= '0' THEN q <= "00000000"; ELSE IF clock'EVENT AND clock = '1' THEN FOR i IN 1 to 7 LOOP q(i) <= q(i-1); end loop; q(0) <= (a AND b); END IF; END IF; END PROCESS;

请问大虾,在MAX+PLUS(10.0)里是不是不支持此语句q(i)

请问大虾,在MAX+PLUS(10.0)里是不是不支持此语句q(i) <= q(i-1);?具体请见程序 library IEEE; use IEEE.Std_logic_1164.all; ENTITY SHIFT164 IS PORT(a, b, nclr, clock : IN BIT; q : BUFFER BIT_VECTOR(0 TO 7)); END SHIFT164; ARCHITECTURE version1 OF SHIFT164 IS BEGIN PROCESS(a,b,nclr,clock) BEGIN IF nclr??= '0' THEN q <= "00000000"; ELSE IF clock'EVENT AND clock = '1' THEN FOR i IN q'RANGE LOOP IF i = 0 THEN q(i) <= (a AND b); ELSE q(i) <= q(i-1); END IF; END LOOP; END IF; END IF; END PROCESS; END version1; 在验证时总是出错index value(-1)is out of the bounds for VHDL object 'q[o-7]'
支持该语句!这是一个最常用的循环语句!
我是天堂的使者,向我倾诉吧
返回列表