我在頂層端口聲明中定義了幾個三態(inout)std_logic端口引腳。我有一個專用的內部組件需要利用這些,但它的端口被定義爲有一個ind std_logic_vector(不是我的代碼,我無法更改),我需要將std_logic連接到std_logic_vector以使它快樂。VHDL:Concat inout std_logic into std_logic_vector信號
問題是:我不知道如何做到這一點。
我認爲ALIAS是正確的路由,但顯然在定義別名時不能使用連接運算符。
然後我想我只是用std_logic_vector內部信號:
mySignal <= inOutBit2 & inOutBit1 & inOutBit0; --Input route
componentPort => mySignal, --Component use
inOutBit2 <= mySignal(2);
inOutBit1 <= mySignal(1);
inOutBit0 <= mySignal(0); --Output route
但這不能合成,因爲它認爲inOutBitn具有多個驅動程序。
有什麼我可以做得到這個綜合?我知道我可以聲明我的頂級inout端口是std_logic_vector,但這是次優的,因爲我們有一個定義良好的端口標籤約定。
你不能使用'mySignal(0)<= inOutBit0'等而不是第一行嗎? – sinelaw
對於標準的VHDL信號,分配向量的每一位或使用連接來分配1行中的整個向量並沒有區別。或者你是否說過在端口上有區別? – jerp
我的錯誤;你是對的。你可以添加更多的代碼(定義)和綜合錯誤/錯誤的結果? – sinelaw