當我綜合使用Yosys和阿拉克尼-PNR一個空的電路,我得到一些不規則位:瞭解比特流iCE40 I/O磚
.io_tile 6 17
IoCtrl IE_1
.io_tile 6 0
IoCtrl REN_0
IoCtrl REN_1
這也是我能對其他文件的一部分生成到目前爲止。由於未使用的I/O瓦片具有兩個IE位設置,我讀這爲:
- 爲IE/REN塊6 17 0,輸入緩衝器被啓用
- 爲IE/REN塊6 0 0,輸入緩衝器使能,並且上拉電阻被禁用
- 爲IE/REN塊6 0 1,輸入緩衝器被啓用和上拉電阻器被禁用
然而,根據文檔,沒有IE/REN塊6 17 0. 這些位的含義是什麼?如果塊6 17 0的IE位由於該塊不存在而未被置位,爲什麼其他不存在的塊的位未被置位?其他IE/REN塊似乎對應於I/O塊6 0 1和7 0 0.這些塊做了什麼,以及爲什麼它們總是被配置爲輸入?
SB_IO
的technology library條目沒有提及IE位。它與PIN_TYPE參數設置有什麼關係?
當我使用I/O引腳作爲輸入時,REN位被置位(禁止上拉電阻)。這表明上拉電阻主要用於保持未使用的引腳懸空,而不是爲有條件連接的輸入(例如按鈕)提供上拉電阻。這個假設是否正確?爲此目的使用內部上拉電阻可以嗎?
技術庫說以下內容:
defparam IO_PIN_INST.PULLUP = 1'b0;
// By default, the IO will have NO pull up.
// This parameter is used only on bank 0, 1,
// and 2. Ignored when it is placed at bank 3
這是否意味着銀行3沒有上拉電阻,或者僅僅是他們不能用Verilog重新啓用可以?如果我手動清除ASCII碼流中的那一位會發生什麼? (我會試試這個,但是iCEstick評估板沒有在第3組上打開任何引腳 - 這是巧合 - 我不確定是否還想要硬件。)
當我使用I/O引腳作爲輸出,IE位不被清除,但輸入引腳功能被設置爲PIN_INPUT。這有什麼影響,爲什麼這樣做?
根據'chipdb-1k.txt',I/O塊6 0 1和7 0 0不是未連接的;它們分別連接到TCE144引腳49(GBIN5/PIO2_01)和50(GBIN4/PIO2_02),它們不在iCEstick上使用。 - 第3排上的上拉電阻怎麼樣?爲什麼在輸出引腳上輸入引腳功能設置爲PIN_INPUT(「IOB_ PINTYPE_0」),IE位有什麼作用? –
rlutz
問題是關於IE/REN位而不是IO塊。沒有1:1的關係。請參見chipdb文件中的.ieren。另外:我不能回答「爲什麼」的問題:我沒有設計芯片。你必須問萊迪思。 – CliffordVienna