我試圖模擬一個目的地控制升降控制器n
地板和m
電梯。因此,從每一層樓,用戶可以進入目的地樓層去獲取電梯號碼作爲回報。所以要模擬這種電梯控制器,我需要有變量in
端口(這將等於層數),每個類型的整數。我試圖搜索谷歌,但找不到任何有用的東西。有人可以建議我如何做到以上? 在此先感謝。實體中「in」端口的數量是多少?
2
A
回答
0
你總是可以做這樣的事情:
entity controller is generic (
N : integer;
M : integer
); port (
Floors : in std_logic_vector(N-1 downto 0);
Lifts : in std_logic_vector(M-1 downto 0)
);
end controller;
你可以找到這個here的一些例子。
或許:
package foo is
type integer_array is array (integer range <>) of integer;
end package;
entity controller is generic (
N : integer;
M : integer
); port (
Floors : in foo.integer_array(N-1 downto 0);
Lifts : in foo.integer_array(M-1 downto 0)
);
end controller;
2
在VHDL你可以使用不受約束數組作爲港口:
entity myDevice is
port (floors : in std_logic_vector;
lifts : in std_logic_vector
);
end entity myDevice;
在制定過程中的大小來確定端口的大小連接的信號。如果你需要知道你的架構端口的大小,只需使用'length
,'range
或其他任何適當的屬性:
architecture RTL of myDevice is
begin
pr_control : process(all) is
begin
-- Code, code, code...
for n in lifts'range loop
process_lift(n);
end loop;
-- More code ...
end process pr_controll;
end architecture RTL;
相關問題
- 1. 少量實體vs大量實體 - 這有多少個對象?
- 2. Google雲端sql:每個實例的應用數量是多少?
- 3. 空載體的容量是多少?
- 4. 很多數據量很少的端口,或者一個端口有很多數據?
- 5. Erlang系統中節點的最大(實際)數量是多少
- 6. 在MySQL中傳遞給IN()的項目的最大數量是多少
- 7. Simmechanics中物理保護端口代表的物理量是多少?
- 8. 測量的事件數量是多少?
- 9. 我的不同數據存儲實體的大小是多少?
- 10. 實體SQL IN /多集的問題
- 11. 構建CPU所需的最小晶體管數量是多少?
- 12. HTTP/1.1中的實體的年齡是多少
- 13. FIONBIO的Winsocks定義的實際數量是多少?
- 14. 實體數據源其中NOT IN
- 15. 實體框架多對多+數量
- 16. VHDL實體端口與組件端口的類型不匹配
- 17. UNNotificationActions的最大數量是多少?
- 18. SQL Server:UNION的數量限制是多少?
- 19. 主機和端口的葡萄實體
- 20. 玉的產量是多少?
- 21. android和ios有多少個端口號?
- 22. 實體中的多對多實體(symfony2)
- 23. 爲什麼netstat報告的開放端口數量少於lsof
- 24. TCP服務器所需的套接字端口的最小數目是多少?
- 25. 多查詢中查詢的最大數量是多少?
- 26. Spy ++中「Previous Window」的常量是多少?
- 27. javafx 2.2中choicebox的容量是多少?
- 28. AM_MEDIA_TYPE中的樣本量是多少?
- 29. Java類應具有的最大實例變量數量是多少?
- 30. 實體不匹配組件端口
如果我想整型數組,而不是std_logic_vector即每個N和M值不是0/1而是整數? – Aryabhatt
好吧,就像往常一樣,你需要在另一個包中創建整數向量。但之後就像以前一樣。查看編輯。 –
我根據你的建議寫了如下程序:'LIBRARY ieee; USE ieee.std_logic_1164.ALL; --USE ieee.std_logic_unsigned.all; USE ieee.numeric_std.ALL; 包foo是 類型integer_array是整數的陣列(整數範圍<>); 封裝; use foo.all; 實體控制器是通用的( N:整數; L:整數 );端口( 地面:在foo.integer_array(N-1 DOWNTO 0); 升降機:在foo.integer_array(M-1 DOWNTO 0) ); 結束控制器;'。但是,這給予以下錯誤:'lift.vhdl:11:5:沒有聲明 「foo」 的 lift.vhdl:17:17:沒有聲明 「foo」 的 ghdl:編譯error' – Aryabhatt