我是VHDL的新手,嘗試將地圖端口映射到地面。端口映射到VHDL地面
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity msPC4 is
Port (b : in STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC;
reset : in STD_LOGIC;
a : out STD_LOGIC_VECTOR (3 downto 0);
co : out STD_LOGIC);
end msPC4;
architecture Structure of msPC4 is
component msdff4
Port (d : in STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (3 downto 0));
end component;
component msFA4bit
Port (a : in STD_LOGIC_VECTOR (3 downto 0);
b : in STD_LOGIC_VECTOR (3 downto 0);
ci : in STD_LOGIC;
s : out STD_LOGIC_VECTOR (3 downto 0);
co : out STD_LOGIC);
end component;
component ms21mux4
Port (d1 : in STD_LOGIC_VECTOR (3 downto 0);
d0 : in STD_LOGIC_VECTOR (3 downto 0);
s : in STD_LOGIC;
z : out STD_LOGIC_VECTOR (3 downto 0));
end component;
signal w0, w1, w2, w3: STD_LOGIC_VECTOR (3 downto 0);
signal w4 : STD_LOGIC;
w4 <= '0';
w3 <= '0000';
begin
gmsPC4g1: msdff4 port map (w1,clk,w2);
gmsPC4g2: msFA4bit port map (w2,b,w4,w0,co);
gmsPC4g3: ms21mux4 port map (w0,w3,clk,w1);
a <= w2;
end Structure;
所以,如果你會注意到,我有3個組件,一些信號來連接一切等。
我真正想要的是將信號w3和w4設置爲接地(儘管與邏輯低電平相連),但無論出於何種原因,我無法爲我的生活找出我應該如何做這個。
FWIW我是EE,所以我更習慣於從硬件端看到這一點。另外,這個項目特別是有與端口映射,而不是行爲的東西。對於那個很抱歉。
編輯:錯誤在w3設置爲'0',w4設置爲'0000'的行被拋出。雙引號不能解決這個錯誤。將其移入內部並不能解決錯誤。在開始集內我得到一個「意外的TICK」,並在開始集之外我得到一個「意外標識符」。它真的不想讓我決定某件事的價值。
他們沒有教導聲明和聲明之間的區別嗎? –
您不能在架構和開始之間分配值。 – Paebbels
因爲矢量文字必須放在雙引號之間,而不是蜱('「0000」',而不是''0000''),所以出現非預期的勾號。意外的標識符,因爲這兩個賦值必須放在體系結構體中(在'begin'之後),而不是在體系結構聲明中(在'begin'之前)。您隨機嘗試了幾種解決方案,但不是全部:您在開始後忘記了組合雙引號。如果你試圖用這個隨機策略來解決你的所有問題,在學習VHDL之前需要花時間。書籍和課程可能更有效率。 –