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

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

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

3天內不再提示

XILINX FPGA IP之FIFO Generator例化仿真

CHANBAEK ? 來源: FPGA自學筆記分享 ? 作者: FPGA自學筆記分享 ? 2023-09-07 18:31 ? 次閱讀

上文XILINX FPGA IP之FIFO對XILINX FIFO Generator IP的特性和內部處理流程進行了簡要的說明,本文通過實際例子對該IP的使用進行進一步的說明。本例子例化一個讀數據位寬是寫數據位寬兩倍的FIFO,然后使用讀時鐘頻率:寫時鐘頻率=2:3,進行簡單的FIFO跨時鐘域操作。

首先了解一下FIFO讀寫位寬不一致時數據的擺放方式:

讀數據位寬是寫數據位寬的4倍的情況下的寫如何讀出數據擺放方式如下:

圖片

寫數據位寬是讀數據位寬的4倍的情況下的寫如何讀出數據擺放方式如下:

圖片

然后,開始例化IP,生成一個FIFO,使用BRAM搭建,兩個獨立時鐘:

圖片

寫位寬18bit,讀位寬36bit,讀寫數據位寬比為1:2.

圖片

例化的總結為:

圖片

例化的端口為:

//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
fifo_generator_0 your_instance_name (
  .rst(rst),                      // input wire rst
  .wr_clk(wr_clk),                // input wire wr_clk
  .rd_clk(rd_clk),                // input wire rd_clk
  .din(din),                      // input wire [17 : 0] din
  .wr_en(wr_en),                  // input wire wr_en
  .rd_en(rd_en),                  // input wire rd_en
  .dout(dout),                    // output wire [35 : 0] dout
  .full(full),                    // output wire full
  .almost_full(almost_full),      // output wire almost_full
  .empty(empty),                  // output wire empty
  .almost_empty(almost_empty),    // output wire almost_empty
  .rd_data_count(rd_data_count),  // output wire [7 : 0] rd_data_count
  .wr_data_count(wr_data_count),  // output wire [8 : 0] wr_data_count
  .wr_rst_busy(wr_rst_busy),      // output wire wr_rst_busy
  .rd_rst_busy(rd_rst_busy)      // output wire rd_rst_busy
);

根據這個端口,編寫tb,如下。設置讀寫時鐘頻率比為2:3。寫側:復位釋放后,即拉高寫使能,寫入自加數,直到1000后停止寫入。讀側:只要非空就開始一直讀取數據。

// ============================================================
// File Name: tb_fifo_generator
// VERSION  : V1.0
// DATA     : 2023/7/23
// Author   : FPGA干貨分享
// ============================================================
// 功能:xilinx fifo_generator ip 代碼仿真
// delay : 
// ============================================================




`timescale 1ns/100ps
module tb_fifo_generator ;


reg                 rst              ='d1  ;
reg                 wr_clk           ='d1  ;
reg                 rd_clk           ='d1  ;
reg      [17 : 0]   din              ='d1  ;
reg                 wr_en            ='d0  ;
reg                 rd_en            ='d0  ;
wire     [35 : 0]   dout               ;
wire                full               ;
wire                almost_full        ;
wire                empty              ;
wire                almost_empty       ;
wire [7 : 0]        rd_data_count      ;
wire [8 : 0]        wr_data_count      ;
wire                wr_rst_busy        ;
wire                rd_rst_busy        ;


initial
    begin
        rst = 1'b1;
        #1000;
        rst = 1'b0;
    end


always #2 wr_clk = ~wr_clk;
always #3 rd_clk = ~rd_clk;


// ==================wr_clk======================//


always @(posedge wr_clk )
    if(din >= 'd1000)
        wr_en <= 1'b0;
    else if(~wr_rst_busy&&~rst)
        wr_en <= 1'b1;
    else
        wr_en <= 1'b0;


always @(posedge wr_clk)
    if(wr_en)
        din <= din + 1'b1;
    else
        din <= din;


// ==================rd_clk======================//
always @(posedge rd_clk)
    rd_en <= (!empty)&&(!rd_rst_busy);








//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG
fifo_generator_0 fifo_generator_0 (    
  .rst              (rst            ), // input wire rst
  .wr_clk           (wr_clk         ), // input wire wr_clk
  .rd_clk           (rd_clk         ), // input wire rd_clk
  .din              (din            ), // input wire [17 : 0] din
  .wr_en            (wr_en          ), // input wire wr_en
  .rd_en            (rd_en          ), // input wire rd_en
  .dout             (dout           ), // output wire [35 : 0] dout
  .full             (full           ), // output wire full
  .almost_full      (almost_full    ), // output wire almost_full
  .empty            (empty          ), // output wire empty
  .almost_empty     (almost_empty   ), // output wire almost_empty
  .rd_data_count    (rd_data_count  ), // output wire [7 : 0] rd_data_count
  .wr_data_count    (wr_data_count  ), // output wire [8 : 0] wr_data_count
  .wr_rst_busy      (wr_rst_busy    ), // output wire wr_rst_busy
  .rd_rst_busy      (rd_rst_busy    )  // output wire rd_rst_busy
);


endmodule

仿真結果如下:

圖片

圖片

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

    關注

    1629

    文章

    21736

    瀏覽量

    603420
  • Xilinx
    +關注

    關注

    71

    文章

    2167

    瀏覽量

    121429
  • 仿真
    +關注

    關注

    50

    文章

    4082

    瀏覽量

    133613
  • fifo
    +關注

    關注

    3

    文章

    388

    瀏覽量

    43682
  • 時鐘域
    +關注

    關注

    0

    文章

    52

    瀏覽量

    9536
收藏 人收藏

    評論

    相關推薦

    Xilinx FPGA IPBlock Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一個先進的內存構造器,它使用Xilinx fpga中的嵌入式塊RAM資源生成面積和 性能優化的內存。
    的頭像 發表于 11-14 17:49 ?2779次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>Block Memory <b class='flag-5'>Generator</b>功能概述

    Xilinx FPGA IPBlock Memory Generator仿真

    上文對BMG ip的基本情況進行了簡單的描述,本文通過仿真來實際使用功能一下這個IP
    的頭像 發表于 11-14 18:24 ?1802次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>Block Memory <b class='flag-5'>Generator</b><b class='flag-5'>仿真</b>

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互連以及其他AXI4系統外設上生成特定序列(流量)。它根據IP的編程和選擇的操作模式生成各種類型的AXI事務。是一個比較好用的AXI4協議測
    的頭像 發表于 11-23 16:03 ?2588次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>AXI Traffic <b class='flag-5'>Generator</b>

    Xilinx FPGA無痛入門,海量教程免費下載

    入門指南 -- FPGA片內FIFO實例FIFO配置Lesson55 特權Xilinx FPGA
    發表于 07-22 11:49

    Xilinx FPGA入門連載51:FPGA片內FIFO實例之功能概述

    實例內部系統功能框圖如圖所示。我們通過IP一個FIFO,定時寫入數據,然后再讀出所有數據。通過ISE集成的在線邏輯分析儀chipscope,我們可以觀察
    發表于 02-26 10:26

    Xilinx FPGA入門連載52:FPGA片內FIFO實例FIFO配置

    Xilinx FPGA入門連載52:FPGA片內FIFO實例FIFO配置特權同學,版權所有配套
    發表于 02-29 13:35

    Xilinx FPGA入門連載52:FPGA片內FIFO實例FIFO配置

    Xilinx FPGA入門連載52:FPGA片內FIFO實例FIFO配置特權同學,版權所有配套
    發表于 02-29 13:35

    Xilinx FPGA入門連載56:FPGA片內異步FIFO實例FIFO配置

    `Xilinx FPGA入門連載56:FPGA片內異步FIFO實例FIFO配置特權同學,版權所
    發表于 03-09 10:49

    FPGA連載62:電子點菜單FIFO說明

    `FPGA連載62:電子點菜單FIFO說明特權同學,版權所有配套例程和更多資料下載鏈接
    發表于 12-26 17:22

    【正點原子FPGA連載】第十三章IPFIFO實驗-領航者ZYNQFPGA開發指南

    圖所示。圖 13.4.12 “fifo_generator _0_synth_1”run在其Out-of-Context綜合的過程中,我們就可以進行RTL編碼了。首先打開IP核的
    發表于 09-23 17:27

    FPGA零基礎學習:IP CORE FIFO設計

    ,點擊Yes。 · 頂層設計頂層負責調用fifo_my,文件在ip core -> fifo_my ->
    發表于 03-15 16:19

    利用XILINX提供的FIFO IP進行讀寫測試

    FIFOFPGA應用當中非常重要的模塊,廣泛用于數據的緩存,跨時鐘域數據處理等。學好FIFOFPGA的關鍵,靈活運用好FIFO是一個
    的頭像 發表于 02-08 17:08 ?3149次閱讀
    利用<b class='flag-5'>XILINX</b>提供的<b class='flag-5'>FIFO</b> <b class='flag-5'>IP</b>進行讀寫測試

    XILINX FPGA IPDDS Compiler_ip仿真

    之前的文章對dds ip 的結構、精度、參數、接口進行了詳細的說明,本文通過仿真對該IP的實際使用進行演示。本文
    的頭像 發表于 09-07 18:31 ?2289次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>DDS Compiler_<b class='flag-5'>ip</b><b class='flag-5'>例</b><b class='flag-5'>化</b><b class='flag-5'>仿真</b>

    XILINX FPGA IPFIFO Generator

    在數字設計中,fifo是數據操作任務所需的普遍結構,如跨時鐘域、低延遲內存緩沖和總線寬度轉換。
    的頭像 發表于 09-07 18:31 ?1285次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b><b class='flag-5'>FIFO</b> <b class='flag-5'>Generator</b>

    FIFO GeneratorXilinx官方手冊

    FIFO作為FPGA崗位求職過程中最常被問到的基礎知識點,也是項目中最常被使用到的IP,其意義是非常重要的。本文基于對FIFO Generator
    的頭像 發表于 11-12 10:46 ?412次閱讀
    <b class='flag-5'>FIFO</b> <b class='flag-5'>Generator</b>的<b class='flag-5'>Xilinx</b>官方手冊
    主站蜘蛛池模板: 特级黄一级播放| 好吊操免费视频| aaaa大片| 91精品久久久久含羞草| 最近2018中文字幕免费看手机| 欧美综合精品一区二区三区| 在线理论视频| 91国内在线| 日本理论在线观看被窝网| 亚洲精品午夜视频| 4438x成人全国最大| 日本久久久| 天天色天天综合网| 欧美呜巴又大粗又长| 欧美午夜电影| 欧美午夜视频一区二区| 床上激情四射| 韩国一级网站| 亚洲啪啪| 日本h片在线观看| 人人草人人| 伊人狠狠丁香婷婷综合色| 国产一级真人毛爱做毛片| nxgx欧美| 日韩三级一区| 日本免费黄色录像| 一区二区影院| 成年黄网站免费大全毛片| 69xxxx欧美老师| 欧美三级黄视频| 加勒比啪啪| 色综合天天色| 欧美黄色片免费观看| 亚洲欧美日韩综合一区| 97久久人人| 国产精品高清免费网站| 国产高清片| 色视频免费观看高清完整| 久久6免费视频| 男人女人的免费视频网站| 欧美日韩一级视频|