在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

vLUT表:寫 讀地址輸入、數據輸出 入這里面包括

FPGA之家 ? 來源:陳年麗 ? 2019-07-13 09:24 ? 次閱讀

最近的項目邏輯資源不夠,因為應用需求,要一組256個四輸入的模塊,后來改吧改吧,改成了一組165個6輸入的模塊,解決了需求問題,為什么啊,因為四輸入的那個模塊浪費xilinx的資源了,xilinx的LUT是六輸入的,xilinx在7系列前的LUT還是五輸入的,現在都變成了六輸入(其實是兩個五輸入共享連接線)。

具體應用不說了,來看看關于LUT表這件事。

LUT表是最基本的邏輯單元,入門書籍必有的內容,基本原理這里不說了。

一般的,有SLICEM和SLICEL兩種,M代表存儲,L代表邏輯,好記吧。

L的功能M也能實現,M比L更復雜,所以我們直接去看SLICEM。

圖上面時直接從工具里面截的,這里面包括了:

6位讀地址輸入(A1-A6)

8位寫地址輸入(WA1-WA7)

時鐘(CLK)

寫使能(WEN)

數據輸入(DI1)

數據輸出(O6)

移位寄存器輸出(MC31)

除此之外,由于DI2輸入線和O5輸出的存在,這片LUT還可以被配置為32-depth,2-bit-data-wide的RAM

為什么寫是8位,讀是6位呢?有疑惑就看datasheet或者user guide啊,翻出UG474,里面有張圖,看了就明白了:

拿一個SLICEM的四個LUT搭一個256的單口RAM,看到了吧,寫地址8位直接用,讀地址用6位,然后高兩bit,一個給F7MUX,一個給F8MUX,相當于做了兩級二選一。

還有一個重點要說的是移位寄存器,移位寄存器用的最多的地方就是做delay 了。

下面是簡單的兩段代碼:

always @(posedge clk )begin

shift_r <= {shift_r[62:0],rxp} ;

end

always @(posedge clk )begin

txp <= shift_r[63];

end

大概的意思就是將rxp輸入延遲64個時鐘周期,然后輸出。在很多文檔里面都說過了,LUT單元是可以直接生成移位寄存器的,當然必須是SLICEM里面的LUT的,我們看看最后生成的結果是啥樣的:

有點不好看啊,我倆簡單解釋一下:

1.紅線代表LTU讀地址輸入,讀地址代表了移位寄存器輸出的位數,寫31就是延遲32位,可見所有的地址都被連接在一個高電平上,5h11111=31,一般情況下,是A[5:1]表征地址,A[0]固定為高

2.青色是時鐘,這對于SLICEL來說是沒有的,因為有了時鐘,才可能同步操作;

3.藍色是需要移位的數據,程序里面的rxp,直接輸入到了LUT-B的數據DI1口

4.黃色從LUT-B的MC31輸出的結果,一個LUT可以作為32位的移位寄存器,因為需要移位64次, 所以需要兩個LUT級聯才能完成完整的移位結果

5.白色是最后的輸出,注意是從O6輸出的,即級聯之后64位移位后的結果,再過一級FF之后,就是txp 。

這種寫法比較簡單直觀,也有一些同學想要規范,那我們調用一下官方的原語試試:

SRL16E #(

.INIT(16'h0000), // Initial contents of shift register

.IS_CLK_INVERTED(1'b0) // Optional inversion for CLK

)

SRL16E_inst (

.Q(SRL10_r), // 1-bit output: SRL Data

.CE(1), // 1-bit input: Clock enable

.CLK(clk), // 1-bit input: Clock

.D(rxp ), // 1-bit input: SRL Data

// Depth Selection inputs: A0-A3 select SRL depth

.A0(0),

.A1(1),

.A2(0),

.A3(1) //0x1010= 10

);

這是一個經典的16位寄存器的小模塊,看看布線后成啥樣:

1.紅線代表LTU讀地址輸入,讀地址代表了移位寄存器輸出,一般情況下,是A[5:1]表征地址,但是我們看到黃色線代表的數據激怒的是DI2,也就是用了兩個5輸入LUT中的一個,所以真實的地址是4‘h1010 = 10,也就是移位10+1次,A[0]固定為高

2.青色是時鐘;

3.黃色是輸入,rxp ,注意是從DI2口輸入的

4.白色是最后的輸出,注意是從O6輸出的,即10位移位后的結果,也就是SRL10_r。

7系列因為LUT表地址位增加,因此還支持32位移位的原語,我們來看看:

SRLC32E #(

.INIT(32'h00000000), // Initial contents of shift register

.IS_CLK_INVERTED(1'b0) // Optional inversion for CLK

)

SRLC32E_inst (

.Q(SRL20_r), // 1-bit output: SRL Data

.Q31(SRL31_r), // 1-bit output: SRL Cascade Data

.A(5'd20), // 5-bit input: Selects SRL depth

.CE(1), // 1-bit input: Clock enable

.CLK(clk), // 1-bit input: Clock

.D(rxp ) // 1-bit input: SRL Data

);

看看會是怎樣布線的:

1.紅線代表LTU讀地址輸入,讀地址代表了移位寄存器輸出,一般情況下,是A[5:1]表征地址,是5‘h10100 = 20,也就是移位20次,A[0]固定為高

2.青色是時鐘;

3.黃色是輸入,rxp ,注意是從DI1口輸入的

4.白色時最后的輸出,注意是從O6輸出的,即20+1位移位后的結果,也就是SRL20_r。

5.咖啡色是32位移位后的結果,也就是SRL31_r

這個移位跟信號實際delay的關系,還要看個仿真才能看明白:

圖要放大看,rxp_r信號delay了11個時鐘節拍(計數器從750到761)得到信號SRL10_r,delay了21個時鐘節拍得到了信號SRL20_r,delay了32個時鐘節拍得到信號SRL31_r。

也就是delay的時鐘節拍N,與配置的LUT地址A之間的關系為:

N = A + 1

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 移位寄存器
    +關注

    關注

    3

    文章

    258

    瀏覽量

    22294

原文標題:二大爺聊FPGA(8).LUT與移位寄存器

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview基于的簡單的循環采集數據包括命令及報警功

    (Resource Name)、比特率(Baud Rate)、命令輸入欄(Write String)及其開關控件、命令輸出欄(Read String)及其開關控件、關閉采集函數開關
    發表于 12-05 12:14

    I2C 隨機 地址的問題

    I2C 隨機 操作過程 開始--發送器件地址)--ack--發送字節地址--ack--開始--發送器件地址
    發表于 12-05 08:59

    零基礎學FPGA(十一)初江湖之i2c通信

    位,這里要送地址,即1010_0000;下面我來解釋一下上圖的代碼為什么這樣(1)首先在SCL在低電平期間屬于數據穩定期,我們可以向
    發表于 04-07 17:09

    FIFO使能問題

    , wr, rst, clk; //,復位,時鐘output [7:0] dataout;//數據輸出output full, empty;//滿,空wire [7:0] dat
    發表于 10-07 15:02

    電池管理器件的/操作

    電池管理器件的/操作 Dallas Semiconductor 的電池管理IC 采用相同的通信協議和相同的存儲器地址不同類型的存儲器可以分別進行/
    發表于 04-12 08:50 ?21次下載

    Linux下flash操作、擦除步驟

    的一段區域。 需要注意的是,在對NOR FLASH進行讀寫數據時,需要參考對應的datasheet,例如這里選用的NOR FLASH、擦除步驟如下: 通過上面的表格就知道進行相應
    發表于 06-30 09:49 ?1.5w次閱讀
    Linux下flash操作<b class='flag-5'>讀</b>、<b class='flag-5'>寫</b>、擦除步驟

    如何使用寄存器級&控制基于PXI平臺的FPGA

    如何使用寄存器級&控制基于PXI平臺的FPGA
    發表于 10-16 15:20 ?14次下載
    如何使用寄存器級<b class='flag-5'>讀</b>&<b class='flag-5'>寫</b>控制基于PXI平臺的FPGA

    MCS-51單片機指令系統“-改-”指令

    單片機首先將欲修改的寄存器的內容回ALU,對相應位進行修改,然后再整個寫回原來的寄存器地址,完成該功能的指令就叫做“-改-”指令。
    發表于 11-23 13:38 ?1706次閱讀

    利用VHDL語言和格雷碼對地址進行編碼的異步FIFO的設計

    信號包括異步的時鐘(wr_clk)和時鐘(rd_clk)、與時鐘同步的寫有效(wren)和數據
    的頭像 發表于 08-02 08:10 ?2253次閱讀
    利用VHDL語言和格雷碼對<b class='flag-5'>地址</b>進行編碼的異步FIFO的設計

    具有/遙測功能的μ模塊調節器

    具有/遙測功能的μ模塊調節器
    發表于 04-30 11:18 ?3次下載
    具有<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>遙測功能的μ模塊調節器

    PIC何謂-修改-,導致的問題及其解決之道

    何謂-修改-,導致的問題及其解決之道: 只要PICmicro的命令,所處理的FILE (暫存器,內存,和I/O的統稱),其最終的值,和命令處理前的值有關,那么,這種命令便是所謂的-修改-
    發表于 11-16 15:51 ?2次下載
    PIC何謂<b class='flag-5'>讀</b>-修改-<b class='flag-5'>寫</b>,導致的問題及其解決之道

    單片機里面“”32bit地址“”與所指向的“8bit數據“的關系

    單片機里面“”地址“”與所指向的"數據"的關系單片機里面“”地址“”與所指向的"數據"的關系對于
    發表于 11-18 20:06 ?10次下載
    單片機<b class='flag-5'>里面</b>“”32bit<b class='flag-5'>地址</b>“”與所指向的“8bit<b class='flag-5'>數據</b>“的關系

    車載ECU嵌入式設備的診斷測試–

    本篇講述UDS中的服務,讀寫服務幾乎是工程師日常使用最為頻繁的服務,特別是服務。
    的頭像 發表于 10-28 15:43 ?949次閱讀
    車載ECU嵌入式設備的診斷測試–<b class='flag-5'>讀</b>和<b class='flag-5'>寫</b>

    優化數據庫性能使用LSI MegaRAID CacheCade Pro 2.0/緩存軟件

    電子發燒友網站提供《優化數據庫性能使用LSI MegaRAID CacheCade Pro 2.0/緩存軟件.pdf》資料免費下載
    發表于 08-10 17:38 ?0次下載
    優化<b class='flag-5'>數據</b>庫性能使用LSI MegaRAID CacheCade Pro 2.0<b class='flag-5'>讀</b>/<b class='flag-5'>寫</b>緩存軟件

    為什么異步fifo中地址同步在時鐘域時序分析不通過?

    只考慮了地址的同步,而未考慮其他相關的電路。例如,當地址同步到時鐘域時,需要同時將指針和
    的頭像 發表于 10-18 15:23 ?773次閱讀
    主站蜘蛛池模板: 手机在线完整视频免费观看| 性猛交xxxx乱大交孕妇| xvideos国产| 99草视频| 天天干天天操天天射| 日韩一级视频| 久久草在线视频播放| 1024手机在线观看你懂的| 成人最新午夜免费视频| 轻点灬大ji巴太粗太大了小说| 国产在线精品观看| 亚洲人成电影综合网站色| 天堂网2017| 欧美xxxx色视频在线观看免费| 黄www片| 666精品国产精品亚洲| 手机看片福利盒子久久青| 放荡的俄罗斯美女bd| 亚洲狼色专区| 亚洲影视大全| 欧美三级中文字幕hd| 给我免费播放片黄色| 天天爆操| 欧美黑人巨大xxxx猛交| 国产1卡2卡三卡四卡网站| 深爱五月综合网| 狠狠色噜噜狠狠狠狠奇米777| 亚洲dv| 国产xxxx极品bbw视色| 啪啪网站色大全免费| 天堂网www中文在线资源| 久久国内精品视频| 天天爽夜爽免费精品视频| 91极品女神嫩模在线播放| 亚州一级毛片在线| 婷婷综合 在线| 久久国产精品99久久久久久老狼| 亚洲福利视频网站| 性欧美处| 亚洲人在线| 狠狠色噜噜狠狠狠狠|