日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基础002_V7-CLB

發布時間:2023/12/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础002_V7-CLB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、綜述

參考ug474.pdf:

7系列中,一個CLB包含兩個slice: 每個CLB的資源: CLB可配置的主要功能:

二、主要功能

LUT是基本單元,例如選擇器assign muxout =? (sel) ? din_0: din_1;   A-shift register 每個Slice對應4個LUT,而每個LUT可配32bit的移位寄存器: 對應指令: always @(posedge clk)srl <= {srl[31:0],din}; assign dout = srl[20];

   

當添加復位信號:

always@ (posedge clk)if(rst)srl <= 32'd0;elsesrl <= {srl[31:0],din]}; assign dout = srl[20]

  

  為什么結構不一致?因為LUT沒有同步復位控制輸入端,因此綜合器無法將代碼綜合成有LUT實現的結構,因此寫代碼需要根據相應結構編寫。

每個Slice可擴展為128bit的移位寄存器:   B-Distributed RAM 每個LUT為6選1,或2個5選1,其中SLICEM掛distributed RAM以及Shift Registers,關于Distributed RAM可實現的功能:

以下列舉了一些適用于分布式RAM的情況:

  1. 深度小于64-bit
  2. 在深度大于64-bit小于128-bit情況下,有時延要求并需要異步輸出(其clock-to-out時間小,并且布線比Block RAM自由)
  3. 數據寬度小于16-bit
(個人觀點:這里配置RAM調用FPGA內部邏輯資源,而Block RAM blocks內部的RAM只能作為RAM使用,因此在時序沒有要求,且固定RAM容量有剩余的情況下,不建議配置CLB中的RAM,固定RAM容量不夠,可用CLB配置作為補充)。

  C-Multiplexer

  CLB還有一個重要功能:多路復用器(multiplexer)。

在一個Slice中包含有三個多路復用器:F7MUXA、F7MUXB和F8MUX。其中F7MUXA組合LUT A和LUT B成為7輸入LUT,F7MUXB組合LUT C和LUT D成為7輸入LUT,而F8MUX組合1個Slice中的4個LUT成為8輸入LUT。

因此通過F7MUXA、F7MUXB和F8MUX的搭配,1個Slice可以實現4:1、8:1和16:1多路復用器,

  • 一個LUT實現4:1多路復用器
  • 2個LUT實現8:1多路復用器
  • 4個LUT實現16:1多路復用器

如圖1、2、3所示:

?  D-Carry logic

?每個slice有4bits,每個bit包含一個多路復用和一個專用異或門XOR(用于加/減運算):?

每個SLICE的Carry logic圖:

三、原語

具體可參考ug953.pdf,原語列表:

查看CLB相關的原語用法:

?即可按需要進行調用,例如每個LUT對應32bit的shift register logic,查看原語:

移位計算方法:

接口說明:

模板調用:

測試:

module CLB_SRL(clk,rst,din,dout); input clk,rst; input din; output dout; // SRLC32E: 32-bit variable length cascadable shift register LUT (Mapped to a SliceM LUT6) // with clock enable // 7 Series // Xilinx HDL Libraries Guide, version 2015.2 SRLC32E #( .INIT(32'h00000000) // Initial Value of Shift Register ) SRLC32E_inst ( .Q(dout), // SRL data output .Q31(1'b0), // SRL cascade output pin .A(32'h00010100), // 5-bit shift depth select input .CE(1'b1), // Clock enable input .CLK(clk), // Clock input .D(din) // SRL data input ); // End of SRLC32E_inst instantiationendmodule

  綜合之后的線路圖:

總結

以上是生活随笔為你收集整理的基础002_V7-CLB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。