電子工程網
標題: 勇敢的芯伴你玩轉Altera FPGA連載28: 內里本質探索——器件結構 下 [打印本頁]
作者: rousong1989 時間: 2017-11-30 22:18
標題: 勇敢的芯伴你玩轉Altera FPGA連載28: 內里本質探索——器件結構 下
勇敢的芯伴你玩轉Altera FPGA連載28: 內里本質探索——器件結構 下特權同學,版權所有
配套例程和更多資料下載鏈接:
http://pan.baidu.com/s/1i5LMUUD
說了這么多理論,估計大伙都有些頭大了。下面舉個例子,讓大家看看一個簡單的邏輯功能是如何用這個正常模式下的LEs來實現的。有如下一段Verilog代碼:
module ex0(
clk,rst_n,
ain,bin,cin,dout
);
input clk;
input rst_n;
input ain,bin,cin;
output reg dout;
always @(posedge clk or negedge rst_n)
if(!rst_n) dout <= 1'b0;
else dout <= (ain & bin) |cin;
endmodule
看不懂不要緊,咱還沒開始學語法呢。這個電路中,輸入信號ain、bin和cin,復位信號rst_n,時鐘信號clk,輸出信號dout。輸出信號dout在復位信號rst_n有效時輸出為0,在撤銷復位(rst_n = 1)后每個時鐘上升沿鎖存當前的最新值,這個最新值為當前輸入信號ain與bin再或cin的結果。其邏輯功能如圖3.24所示,是一個典型的時序邏輯,這個電路中有我們前面提到的與門、或門和寄存器等基本組件。
圖3.24 邏輯功能視圖
再看經過Quartus II工具的“翻譯”后,如圖3.25所示,前面這段邏輯被映射到了Cyclone IV的LEs中。和圖3.23相比較,可以確認這是LEs的正常模式,圖中高亮部分是被“編程”開啟功能的電路實現。不要感到稀奇,這個原本要實現與門、或門等邏輯功能的電路卻不是用與門、或門來實現的,而是我們前面提到的LUT在這里扮演了很重要的角色。有人可能又要納悶了LUT到底為何物?有那么神通廣大么?別說,還真那么回事。就拿4輸入的LUT來說,其實它里面就相當于一個16bit的存儲器,或者你也可以理解LUT里面存放著4個輸入信號的真值表,輸入信號通過這個真值表便可得到期望的結果,就如我們這個實例一樣。
圖3.25 LEs中的邏輯實現
| 歡迎光臨 電子工程網 (http://m.4huy16.com/) |
Powered by Discuz! X3.4 |