vhdl怎么看编译错在哪
❶ vhdl编程中遇到编译的问题,各模块仿真成功,顶层设计出错,求高手指点,有哪些常出错点
就表面看报错提示的很清楚,你有一些变量调用错名了,导致编译认为你没定义。(如变量d)--> u1:adc_state port map (datain(7 downto 0)=>d(7 downto 0)。
而实际的错误确是,你的元件例化语法使用错了。你的子元件和顶层元件端口书写前后反了;应改为:
u1:adc_state port map (d(7 downto 0)=>datain(7 downto 0) ……后边同理。
改改试试吧!
❷ VHDL 代码 求指导哪错了
variable 定义的变量必须是在process中的,
process或者always框架中的赋值语句, 被赋值的一定要是寄存器型的变量!variable不是寄存器型的。 可以用signal代替
❸ VHDL程序
std_logic_vector type does not match integer literal这个错误是说std_logic_vector类型与整形不匹配 主要原因是因为你的q1<= q1+1这句 std_logic_vector不能直接做加法运算。需要先转换成整型,运算之后再转换回来,这需要调用conv_integer 和 conv_std_logic_vector这两个函数。
至于其他还有很多语法错误 不多赘述 我在程序中直接给你做了更改 注意if的匹配
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL; --添加一个库 使用它里面的函数
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY cnt315 IS
PORT(clk , clrn : IN STD_LOGIC;
q : out std_logic_vector(11 downto 0)); --定义十二位
END cnt315;
ARCHITECTURE one OF cnt315 IS
SIGNAL q1 : STD_LOGIC_VECTOR (3 downto 0);
SIGNAL q2 : STD_LOGIC_VECTOR (3 downto 0);
SIGNAL q3 : STD_LOGIC_VECTOR (3 downto 0);
BEGIN
PROCESS(clk,clrn)
--variable cnt : INTEGER RANGE 0 TO 315;不知道你设这个变量干嘛
begin
if(clrn = '1') then
q1<= "0000";
q2<= "0000";
q3<= "0000";
elsif(clk'EVENT AND clk = '1') then
if q1= "0100" and q2= "0001" and q3= "0011" then
q1<= "0000" ;
q2<= "0000" ;
q3<= "0000" ;
elsif q1="1001" then
q1<= "0000";
if q2 = "1001" then
q2<= "0000";
q3<= conv_logic_vector(conv_integer(q3) + 1,4); --conv_logic_vector(x,y) x是value y是size
else
q2<= conv_logic_vector(conv_integer(q2) + 1,4);
end if;
else
q1<= conv_logic_vector(conv_integer(q1) + 1,4);
end if;
q <= q3&q2&q1;
end if;
end process;
end one;
❹ 求VHDL的高手呐!!!!!!!请问这里哪里错了啊
VARIABLE CQI: STD_LOGIC_VECTOR(15 DOWNTO 0);
放到process里面,
ELSE CQI:=(OTHERS => NULL);句的NULL改成'0'。
没分你说个毛啊。
❺ VHDL程序查错
subprogram error;can’t interpret subprogram call 的意识是不能调用子程序。你的程序没有错误,可能是你某个程序包没打开。我在我的电脑中执行了你的程序。没有错误,可以正常编译。建议在程序的开始加上程序包。具体如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
❻ 帮忙看看这段VHDL程序哪里有错,编译了好久就是不行
报错原因发上来看看?
BCD_L,M,H在哪里定义的?。。
state为什么定义的st0,1,2,3,可是下面写的都是s0,1,2,3、、、
❼ Quartus II 写vhdl语言,最后编译时出现下面那个错误,求高手解释
错误:设计文本语法错误。设计文本包含标识符,该标志符不应为 ASSERT, CONSTANT, DEFINE, DESIGN, FUNCTION, OPTIONS, PARAMETERS, SUBDESIGN, 或者 TITLE 。
❽ VHDL编译出现错误 ,具体如下:
stop 没有定义 信号没有赋值给端口