色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Xilinx FPGA IP之Block Memory Generator仿真

CHANBAEK ? 來源: FPGA自學筆記分享 ? 作者: FPGA自學筆記分享 ? 2023-11-14 18:24 ? 次閱讀

上文對BMG ip的基本情況進行了簡單的描述,本文通過例化仿真來實際使用功能一下這個IP。

首先使用簡單雙端口BRAM實現一個簡單的跨時鐘域操作:將16bit的a時鐘域的數據跨到b時鐘域,b時鐘頻率是a時鐘頻率的一半,為了操作方便,直接將b數據位寬擴展到32bit(這樣就不用增加控制信息,數據流是滿的)。BMG IP輸入輸出位寬比支持:1:32, 1:16, 1:8, 1:4, 1:2, 1:1, 2:1, 4:1, 8:1, 16:1, 32:1.位寬變換時BMG的AB端口數據映射關系如下:

圖片

例化一個簡單的ip,設置如下。這里選擇簡單雙端口模式的本地接口,采用面積最小原則,端口A為16bit,深度為16,ram大小就是16*16bit,控制信號就使用ENA。對于端口B,將位寬設置為32bit,此時深度自動變換為8,使用寫優先模式,同樣使能ENB端口作為控制端口。

圖片

圖片

圖片

這里對續寫模式再做一個簡單的說明,支持WRITE_FIRST, READ_FIRST或NO_CHANGE三種模式,這三種模式的讀寫時序如下圖所示。

圖片

圖片

圖片

WRITE_FIRST模式下,寫優先級最高,同一地址,一旦寫入,數據直接會透傳到輸出端。READ_FIRST模式,數據輸出端口會鎖存輸出數據,有數據寫入時,輸出數據是上一次的數據。NO_CHANGE模式下,在寫使能拉高后,輸出將保持開始拉高時刻的數據,保持不變。注意這三種模式針對的是單端口,即端口A或者B。

編寫一個簡單的仿真測試代碼如下:

// ============================================================
// File Name: tb_blk_mem_gen_sdp
// VERSION  : V1.0
// DATA     : 2023/8/5
// Author   : FPGA干貨分享
// ============================================================
// 功能:xilinx blk_mem_gen_sdp ip 代碼仿真
//       使用簡單雙端口實現一個簡單的跨時鐘域
// delay : 
// ============================================================




`timescale 1ns/100ps
module tb_blk_mem_gen_sdp ;


reg             clka   = 'd0 ;
reg             ena    = 'd1 ; 
reg  [0 : 0]    wea    = 'd1 ; 
reg  [3 : 0]    addra  = 'd0 ;
reg  [15 : 0]   dina   = 'd0 ;
reg             clkb   = 'd0 ;
reg             enb    = 'd1 ; 
reg  [2 : 0]    addrb  = 'd0 ;
wire [31 : 0]   doutb        ;




reg [2:0]   S_addr_a_flag   ='d0 ;
reg         S_a_flag        ='d0 ;
reg [2:0]   S_a_flag_2_b    ='d0 ;
reg         S_b_flag        ='d0 ;


reg [2:0]   S_clk_cnt8      ='d3   ;


always #1 clka = ~clka;
always #2 clkb = ~clkb;




//----------- clk_a  ---// 
always @(posedge clka)
    if(ena && wea)
        begin
            addra <= addra + 'd1;
            dina  <= dina + 'd1;
        end


always @(posedge clka)
    S_addr_a_flag[0] <= (addra == 4'd10);

always @(posedge clka)
    S_addr_a_flag[2:1] <= S_addr_a_flag[1:0] ; 


always @(posedge clka)
    S_a_flag <= |S_addr_a_flag ;


//----------- clk_b  ---// 
always @(posedge clkb)
    S_a_flag_2_b <= {S_a_flag_2_b[1:0],S_a_flag} ;


always @(posedge clkb)
    S_b_flag <= (!S_a_flag_2_b[2])&& S_a_flag_2_b[1] ;

always @(posedge clkb)
    if((S_clk_cnt8 > 3'd2)&&S_b_flag)
        S_clk_cnt8 <= 3'd2;
    else 
        S_clk_cnt8 <= S_clk_cnt8 + 'd1;




always @(posedge clkb)
    if(S_clk_cnt8 == 3'd1)
        addrb <= 'd0;
    else 
        addrb <= addrb + 'd1;




//----------- Begin Cut here for INSTANTIATION Template ---// 
blk_mem_gen_sdp blk_mem_gen_sdp (
  .clka     (clka       ), // input wire clka   
  .ena      (ena        ), // input wire ena     
  .wea      (wea        ), // input wire [0 : 0] wea     
  .addra    (addra      ), // input wire [3 : 0] addra 
  .dina     (dina       ), // input wire [15 : 0] dina   
  .clkb     (clkb       ), // input wire clkb   
  .enb      (enb        ), // input wire enb     
  .addrb    (addrb      ), // input wire [2 : 0] addrb 
  .doutb    (doutb      )  // output wire [31 : 0] doutb 
);


endmodule

仿真結果如下:clkb時鐘頻率是clka時鐘頻率的一半,dataa數據位寬16bit,datab數據位寬32bit,輸入輸出均為滿速率,同時在代碼中增加了防抖保護措施,防止跨時鐘域中因為出現時鐘抖動而產生的數據異常問題。

圖片

以上就是Xilinx Block Memory Generator(BMG) IP的仿真。

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

    關注

    1630

    文章

    21784

    瀏覽量

    605034
  • Xilinx
    +關注

    關注

    71

    文章

    2170

    瀏覽量

    121877
  • 仿真
    +關注

    關注

    50

    文章

    4121

    瀏覽量

    133851
  • 時鐘
    +關注

    關注

    11

    文章

    1745

    瀏覽量

    131665
收藏 人收藏

    評論

    相關推薦

    XILINX FPGA IPClocking Wizard詳解

    鎖相環基本上是每一個fpga工程必不可少的模塊,之前文檔xilinx 7 系列FPGA時鐘資源對xilinx fpga的底層時鐘資源做過說明
    發表于 06-12 17:42 ?5887次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>Clocking Wizard詳解

    XILINX FPGA IPMMCM PLL DRP時鐘動態重配詳解

    上文XILINX FPGA IPClocking Wizard詳解說到時鐘IP的支持動態重配的,本節介紹通過DRP進行MMCM PLL的重
    發表于 06-12 18:24 ?1.2w次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>MMCM PLL DRP時鐘動態重配詳解

    Xilinx FPGA IPBlock Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一個先進的內存構造器,它使用Xilinx
    的頭像 發表于 11-14 17:49 ?2920次閱讀
    <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'>Block</b> <b class='flag-5'>Memory</b> <b class='flag-5'>Generator</b>功能概述

    Xilinx FPGA IPBlock Memory Generator AXI接口說明

    之前的文章對Block Memory Generator的原生接口做了說明和仿真,本文對AXI接口進行說明。
    的頭像 發表于 11-14 18:25 ?2048次閱讀
    <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'>Block</b> <b class='flag-5'>Memory</b> <b class='flag-5'>Generator</b> AXI接口說明

    Distributed Memory Generator IP核簡介

    Distributed Memory Generator IP 核采用 LUT RAM 資源創建各種不同的存儲器結構。IP可用來創建只讀存儲器 (ROM)、單端口隨機存取存儲器 (RA
    的頭像 發表于 11-17 17:00 ?2090次閱讀
    Distributed <b class='flag-5'>Memory</b> <b class='flag-5'>Generator</b> <b class='flag-5'>IP</b>核簡介

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互連以及其他AXI4系統外設上生成特定序列(流量)。它根據IP的編程和選擇的操作模式生成各種類型的AXI事務。是一個比較好用的AXI4協議測
    的頭像 發表于 11-23 16:03 ?2729次閱讀
    <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無痛入門,海量教程免費下載

    -- 波形發生器IP核CORDIC(正弦波)仿真Lesson77 特權Xilinx FPGA SF-SP6入門指南 -- 波形發生器
    發表于 07-22 11:49

    Xilinx FPGA入門連載44:FPGA片內ROM實例ROM配置

    `Xilinx FPGA入門連載44:FPGA片內ROM實例ROM配置特權同學,版權所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm 1
    發表于 01-08 13:12

    Xilinx FPGA入門連載48:FPGA片內RAM實例RAM配置

    `Xilinx FPGA入門連載48:FPGA片內RAM實例RAM配置特權同學,版權所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm 1
    發表于 01-22 13:39

    xilinx FPGA的FFT IP核的調用

    有沒有大神可以提供xilinx FPGA的FFT IP核的調用的verilog 的參考程序,最近在學習FFT的IP核的使用,但是仿真結果有問
    發表于 12-25 17:05

    ARM embedded memory ip的產生,couldn't run spreadsheet generator to fetch results

    如題,在Linux下,產生memory,使用的是ARM的 memory IP 工具,無法產生,提示:couldn't run spreadsheet generator to fetc
    發表于 08-15 15:56

    Xilinx FPGA片內ROM實例ROM配置

    Xilinx FPGA入門連載44:FPGA片內ROM實例ROM配置特權同學,版權所有配套例程和更多資料下載鏈接:http://pan.baidu.com/s/1jGjAhEm 1
    發表于 01-09 16:02

    創建Block RAM IP不起作用

    在我的一個FPGA類中,我被要求使用coregen創建一個blcok ram(8dx16w),單端口ram IP。我在Windows XP,Service Pack 3上使用Xilinx ISE
    發表于 06-05 13:39

    FPGA開發算法開發System Generator

    的對應關系: System generator 安裝之后會在Simulin模塊庫中添加一些Xilinx FPGA專用的模塊庫,包括Basic Element,Communication,Control
    發表于 11-17 14:29 ?8022次閱讀

    XILINX FPGA IPFIFO Generator例化仿真

    上文XILINX FPGA IPFIFO對XILINX FIFO Generator
    的頭像 發表于 09-07 18:31 ?2015次閱讀
    <b class='flag-5'>XILINX</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>IP</b><b class='flag-5'>之</b>FIFO <b class='flag-5'>Generator</b>例化<b class='flag-5'>仿真</b>
    主站蜘蛛池模板: 色综合久久88色综合天天提莫 | 久久99精品国产自在自线| 久久久无码精品亚洲A片猫咪 | 亚洲伊人色综合久久天天伊人| 97国产在线观看| 国产真实夫妇交换视频| 欧美人与善交大片| 在野外被男人躁了一夜动图| 成人在线视频免费| 久青草国产97香蕉在线视频| 添加一点爱与你电视剧免费观看| 最新国产三级在线不卡视频| 国产乱子影视频上线免费观看| 男欢女爱免费视频| 一区二区三区四区国产| 国产精品在线手机视频| 青柠在线观看免费完整版| 在线 国产 欧美 亚洲 天堂| 国产自拍视频在线一区| 视频在线免费观看| 特级毛片内射WWW无码| 99久久久A片无码国产精| 久久久久久天天夜夜天天 | 精品亚洲国产成AV人片传媒| 无限资源在线完整高清观看1| ebc5恐怖5a26房间| 麻婆豆腐传媒视频免费| 影视先锋男人无码在线| 激情内射亚洲一区二区三区 | 人人草人人草| 69丰满少妇AV无码区| 久久久久久88色偷偷| 一本久道久久综合婷婷五月| 国产精品无码视频一区二区| 日韩欧美一区二区三区免费看| 99re久久这里只有精品| 免费亚洲视频| old胖老太fat bbw青年| 奇米精品一区二区三区在线观看| 99久久久国产精品免费调教| 女人精69xxxxx舒心|