色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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
    +關注

    關注

    1629

    文章

    21754

    瀏覽量

    604234
  • Xilinx
    +關注

    關注

    71

    文章

    2168

    瀏覽量

    121672
  • 仿真
    +關注

    關注

    50

    文章

    4099

    瀏覽量

    133718
  • 時鐘
    +關注

    關注

    11

    文章

    1736

    瀏覽量

    131577
收藏 人收藏

    評論

    相關推薦

    XILINX FPGA IPClocking Wizard詳解

    鎖相環基本上是每一個fpga工程必不可少的模塊,之前文檔xilinx 7 系列FPGA時鐘資源對xilinx fpga的底層時鐘資源做過說明
    發表于 06-12 17:42 ?5728次閱讀
    <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.1w次閱讀
    <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 ?2834次閱讀
    <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 ?1953次閱讀
    <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 ?2045次閱讀
    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 ?2647次閱讀
    <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 ?7997次閱讀

    XILINX FPGA IPFIFO Generator例化仿真

    上文XILINX FPGA IPFIFO對XILINX FIFO Generator
    的頭像 發表于 09-07 18:31 ?1984次閱讀
    <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>
    主站蜘蛛池模板: 女子扒开腿让男生桶爽| 被两根巨大同时进去高H| 精品久久久久久久久免费影院| 亚洲欧美国产视频| 久久久久夜| 国产成人无码AV麻豆| 亚洲AV无码一区二区三区牛牛| 久久黄色网| 国产99对白在线播放| 亚洲乱亚洲乱妇在线观看| 免费在线观看的毛片| 国产精品香蕉视频在线| 伊人久久大香线蕉资源| 色网址在线观看| 久久久久久极精品久久久| 成人国产AV精品久久久久| 亚洲视频一区| 色呦呦导航| 美国一级黄色| 国产在线亚洲精品观| 成人国产亚洲欧美成人综合网| 亚洲精品国产高清不卡在线| 亲胸摸下面激烈免费网站| 狠狠色狠色综合曰曰| 调教玩弄奶头乳夹开乳震动器| 在线 日韩 欧美 国产 社区| 我与恶魔的h生活ova| 芒果影院网站在线观看| 饥渴的40岁熟妇完整版在线| 国产福利高清在线视频| a免费视频| 中文免费视频| 伊人久久中文| 野花韩国高清完整版在线| 小小水蜜桃视频高清在线播放| 肉肉高潮液体高干文H| 日本高清天码一区在线播放| 欧美GV肉片视频免费观看| 毛片手机在线看| 麻美ゆま夫の目の前で犯| 久久免费看少妇高潮A片2012|