CycloneIII內部資源概述 目錄CycloneIII內部資源概述Logic Elements and Logic Array Blocks(邏輯元件和邏輯陣列塊)LELABLAB InterconnectsMemory Blocks(記憶體塊)Memory modeClocking modeEm ...
CycloneIII內部資源概述
目錄
本人使用的Altera DE0使用的主控晶元為EP3C16F484C6,由上圖可知包含15408個邏輯單元,56個M9K,56個18×18乘法器,4個PLL等資源。
Logic Elements and Logic Array Blocks(邏輯元件和邏輯陣列塊)
LE
LE是FPGA中最小的邏輯單元,可以提供高效邏輯使用的高級功能。LE的結構如下圖所示:
- LUT:用於完成用戶需要的邏輯功能,CycloneIII的查找表是4輸入1輸出,可以完成任何4輸入1輸出的組合邏輯
- Programmable Register:可以配置成D觸發器、T觸發器、JK觸發器等,每個寄存器包含4個輸入信號,數據信號、時鐘信號、時鐘使能、複位信號。
LE有兩種工作模式:
- Normal mode:適合於一般的邏輯運算
- Arithmetic mode:適用於實現加法器、計數器、累加器、比較器等
LAB
每個LAB都由以下元素組成:
- 16個LE
- LAB控制信號
- LE轉移鏈
- 寄存器鏈
- 本地互聯
本地互聯用於在同一LAB內的LE之間傳遞信號;寄存器鏈用於將一個LE的輸出傳遞到相鄰的LE中。
LAB結構如圖所示:
LAB Interconnects
LAB本地互連由同一LAB中的列和行互連和LE輸出驅動。相鄰的LAB、鎖相環、M9K RAM塊和從左到右的嵌入式乘法器也可以通過直接鏈路連接驅動LAB的本地互連。直接鏈接連接功能最大限度地減少了行和列互連的使用,提供更高的性能和靈活性。每個LE可以通過快速本地和直接鏈路互連驅動多達48個LE。
直接連接如下圖所示:
Memory Blocks(記憶體塊)
嵌入式記憶體結構由M9K記憶體塊組成,可以配置記憶體塊以提供各種記憶體功能,例如RAM,移位寄存器,ROM和FIFO等。
M9K的記憶體單位是9k bit,並不是9k byte,並且9k中有1k的空間用於校驗等功能,實際可用空間為8kbit
Memory mode
Clocking mode
當使用Read or Write模式,如果對同一個地址進行讀寫操作,則輸出的讀數據是未知的。如果要使輸出的數據是一個確定的信號,則需要使用single-clock模式或者IO-clock模式並且在MegaWizard Plug-In Manager中選擇合適的讀寫操作。
讀寫時違反記憶體塊輸入寄存器的建立和保持時間可能會導致記憶體內容的損壞
非同步清零只在讀地址寄存器、輸出寄存器和輸出鎖存器上可用
Memory mode 和 Clocking mode的關係如下圖所示:
Embedded Multipliers and Digital Signal Processing Support(嵌入式乘法器和數字信號處理支持)
乘法器結構
- 輸入的數據既可以先發送到輸入寄存器也可以直接輸入到乘法器,兩個輸入信號相互獨立,例如:A信號可以通過寄存器將輸入發送到乘法器,同時B信號可以直接發送到乘法器。
- 根據乘法器的位寬和操作模式,單個乘法器可以並行的執行一次或兩次乘法運算。
- 兩個輸入信號如果都是無符號數,則輸出數據也是無符號數;其中任何一個是有符號數的話,輸出結果就是有符號數。