A. VHDL 程序編譯報錯!急!
兩個地方,一個是rst='1',要加單引號,因為rst是std_logic型,而不是整型,還有一個是在process括弧裡面應該加上個c,還有就是c<=(others=>'0');這裡面的0也應該是用單引號!!!
B. 關於VHDL的錯誤
process(in1,in2,in3,in4.sel) 這裡面的"點"應該是「逗號」 估計是你抄錯了吧
C. vhdl 分頻器程序報錯
從報錯提示上看,是鍵入了非法字元。在輸入符號時,要注意不要在全形(漢字)狀態,要保證輸入的是半形字元。
D. VHDL語法錯誤怎麼改
你寫的代碼使用了 Verilog 語言,不是 VHDL 語言;
使用 Verilog 語言描述需要在工程里添加 Verilog 代碼文件而不是 VHDL 代碼文件;
可以嘗試將 .vhd 文件後綴重命名為 .v 文件後綴,重新嘗試編譯工程;
如果編譯不通過,請根據給出的錯誤信息修正代碼;
E. VHDL編譯錯誤 Error (10465)
你已經在埠聲明中聲明了埠goal_speed,就不能再將其聲明為常數了。
另外,賦值語句並無規定要將雙引號去掉。是否使用雙引號,要看你的賦值類型,字元串文字才需要用雙引號將其括在其中。
F. VHDL 編譯報錯!急!在線等……
你是想寫一個分頻程序吧,,錯誤蠻多的,variable只能用在進程中,不能在兩個進程裡面同時對一個信號,或者變數賦值,下面是我幫你修改的程序;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cf is
port(clk,trigger:in std_logic;
delclk:out std_logic);
end cf;
architecture behave of cf is
begin
process(clk,trigger)
variable count:integer range 0 to 100;
begin
if trigger='1' then
count:=0;delclk<='0';
elsif clk'event and clk='1' then
if count=100 then
count:=0;
delclk<='1';
else count:=count+1;
delclk<='0';
end if;
end if;
end process;
end behave;
G. vhdl編譯出錯
就是說你在你的DESIGN中已經將pn定義為一個信號或者一個邏輯IO口了,這個檢查下有沒重復命名的變數就行
至於"inst"檢測出重復,這是你畫一個.bdf文件經常會出現的問題,只需要你把.bdf文件中的所有使用元件重新命名就行,特別是名字為inst,inst0,inst1這幾個元件,後面多加幾個數,就能解決問題
H. vhdl編譯錯誤呀Error (10482): VHDL error at light.vhd(40): object "t" is used but not declared
t沒有定義。
注意第一個process中雖然定義了一個t,但是它是局部變數,而在40行的需要再定義一次t。
I. VHDL程序編譯出錯,報錯can't determine definition of operator ""+"" -- found 0 possible definitions
修改後的code如下:
1:將你程序中的bit_vector改為 std_logic_vector,USE IEEE.STD_LOGIC_UNSIGNED.ALL以及USE IEEE.STD_LOGIC_SIGNED.ALL可以使得「+」兩方具有不同的數據類型,但不支持bit_vector。
2:USE IEEE.STD_LOGIC_UNSIGNED.ALL以及USE IEEE.STD_LOGIC_SIGNED.ALL用一個就可以了,刪除了USE IEEE.STD_LOGIC_SIGNED.ALL。
請採納!!
library IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_ARITH.all;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDERCTL IS
PORT( in1 : in std_logic_vector(2 downto 0);
in2 : in std_logic_vector(2 downto 0);
cntl : in std_logic;
pout : out std_logic_vector(2 downto 0));
END entity ADDERCTL;
ARCHITECTURE FUNC OF ADDERCTL IS
BEGIN
PROCESS(cntl)
BEGIN
if (cntl='1') then pout<=in1+in2;
end if;
end process;
end ARCHITECTURE FUNC;