女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

Xilinx原語IBUFDS、OBUFDS的使用及仿真

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀

1、介紹
IBUFDS、和OBUFDS都是差分信號緩沖器,用于不同電平接口之間的緩沖和轉換。IBUFDS 用于差分輸入,OBUFDS用于差分輸出。

2、IBUFDS
2.1、理論
IBUFDS是差分輸入緩沖器,支持低壓差分信號(如LVCMOS、LVDS等)。在IBUFDS中,一個電平接口用兩個獨特的電平接口(I和IB)表示。一個可以認為是主信號,另一個可以認為是從信號。

IBUFDS原語示意圖如下所示:

poYBAGIMo8CAALk3AAEdiqFyBeM912.png

端口說明如下表:

pYYBAGIMo8KABdfrAABz27Hr64s722.jpg

信號真值表如下:

pYYBAGIMo8OAWS7NAAB_UX4wMsI250.jpg

2.2、仿真
打開VIvado--Tools--Language Templates,搜索“IBUFDS”,可以找到Xilinx提供的模板如下:

IBUFDS #(
.DIFF_TERM("FALSE"), // Differential Termination
.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
) IBUFDS_inst (
.O(O), // Buffer output
.I(I), // Diff_p buffer input (connect directly to top-level port)
.IB(IB) // Diff_n buffer input (connect directly to top-level port)
);

DIFF_TERM、IBUF_LOW_PWR分別指定差分終端和性能模式,IOSTANDARD指定你需要輸出的電平標準。

接下來例化一個IBUFDS原語進行測試,Verilog代碼如下:

//------------------------------------------------------------------------
//--IBUFDS測試模塊
//------------------------------------------------------------------------
//----------------------------------------------------
module IBUFDS_test(
input clk , //時鐘,50M
input rst_n , //復位,低電平有效
input data_p , //輸入數據,差分+
input data_n , //輸入數據,差分-

output out
);
//----------------------------------------------------
IBUFDS #(
.DIFF_TERM ("FALSE") , // Differential Termination
.IBUF_LOW_PWR ("TRUE") , // Low power="TRUE", Highest
.IOSTANDARD ("DEFAULT") // 選擇I/O電平標準,這里選擇默認
)
IBUFDS_inst (
.O (out) , // 輸出
.I (data_p) , // 差分輸入+(需要直接連接到頂層端口)
.IB (data_n) // 差分輸入-(需要直接連接到頂層端口)
);

endmodule

每隔20ns分別隨機生成2個1位2進制數據作為差分輸入,觀察輸出,Testbench如下:

//------------------------------------------------
//--IBUFDS原語仿真
//------------------------------------------------
`timescale 1ns/1ns //時間單位/精度
//----------------------------------------------------
module tb_IBUFDS_test();

reg clk ;
reg rst_n ;
reg data_p ;
reg data_n ;

wire out ;
//----------------------------------------------------
IBUFDS_test IBUFDS_test_inst(
.clk (clk) ,
.rst_n (rst_n) ,
.data_p (data_p) ,
.data_n (data_n) ,

.out (out)
);
//----------------------------------------------------
initial begin
clk = 1'b1; //初始時鐘為1
rst_n data_p data_n #60 //60個時鐘周期后
rst_n end
//----------------------------------------------------------
always #10 clk = ~clk; //系統時鐘周期20ns

always #20 data_p always #20 data_n

endmodule

仿真結果如下:

poYBAGIMo8WAVpdHAABSPSP73JI139.png

每隔20ns,2個差分輸入端口分別隨機生成2個1位2進制數據;輸出輸入符合上述的真值表。

3、OBUFDS
3.1、理論
OBUFDS 是一個差分輸出緩沖器,用于將來自 FPGA 內部邏輯的信號轉換成差分信號輸出,支持 TMDS、LVDS等電平標準。它的輸出用O和OB兩個獨立接口表示。一個可以認為是主信號,另一個可以認為是從信號。

OBUFDS原語示意圖如下所示:

pYYBAGIMo8eAbDmlAAB2RftdfvY623.png

端口說明如下表:

pYYBAGIMo8iAURjGAABz9h5PcJg152.jpg

信號真值表如下:

poYBAGIMo8qACBjeAABWnDTlHRQ858.jpg

可以看出,輸出+端與輸入一致,輸出-端與輸入相反。

3.2、仿真
打開VIvado--Tools--Language Templates,搜索“OBUFDS”,可以找到Xilinx提供的模板如下:

OBUFDS #(
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFDS_inst (
.O(O), // Diff_p output (connect directly to top-level port)
.OB(OB), // Diff_n output (connect directly to top-level port)
.I(I) // Buffer input
);

其中IOSTANDARD指定你需要輸出的差分電平標準,SLEW根據你的要求輸出FAST或者SLOW。

接下來例化一個OBUFDS原語進行測試,Verilog代碼如下:

//------------------------------------------------------------------------
//--OBUFDS測試模塊
//------------------------------------------------------------------------
//----------------------------------------------------
module OBUFDS_test(
input clk , //時鐘,50M
input rst_n , //復位,低電平有效
input data , //輸入數據

output out_p , //輸出數據,差分+
output out_n //輸出數據,差分-
);
//----------------------------------------------------
OBUFDS #(
.IOSTANDARD ("DEFAULT") , // 選擇I/O電平標準,這里選擇默認
.SLEW ("SLOW") // 選擇輸出速率,這里選擇SLOW
)
OBUFDS_inst (
.O (out_p) , // 差分輸出+(需要直接連接到頂層端口)
.OB (out_n) , // 差分輸出-(需要直接連接到頂層端口)
.I (data) // 輸入
);

endmodule

每隔20ns隨機生成一個1位2進制數據,觀察差分輸出,Testbench如下:

//------------------------------------------------
//--OBUFDS原語仿真
//------------------------------------------------
`timescale 1ns/1ns //時間單位/精度
//----------------------------------------------------
module tb_OBUFDS_test();
reg clk ;
reg rst_n ;
reg data ;

wire out_p ;
wire out_n ;
//----------------------------------------------------
OBUFDS_test OBUFDS_test_inst(
.clk (clk),
.rst_n (rst_n),
.data (data),

.out_p (out_p),
.out_n (out_n)
);
//----------------------------------------------------
initial begin
clk = 1'b1; //初始時鐘為1
rst_n data #60 //60個時鐘周期后
rst_n end
//----------------------------------------------------------
always #10 clk = ~clk; //系統時鐘周期20ns
always #20 data

endmodule

仿真結果如下:

pYYBAGIMo8yAeXMTAABKljcqjio357.png

每隔20ns,data隨機生成0或者1,out_p與輸入一致,out_n與輸入相反;差分輸出信號符合上述的真值表。

審核編輯:符乾江

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

    關注

    73

    文章

    2181

    瀏覽量

    124207
  • 仿真
    +關注

    關注

    51

    文章

    4230

    瀏覽量

    135242
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一個 LogiCORE IP 核,用于在 FPGA 中實現高效的移位寄存器(Shift Register)。該 IP 核利用
    的頭像 發表于 05-14 09:36 ?119次閱讀

    《聊一聊ZXDoc》之CAN總線仿真、面板仿真

    ZXDoc支持CAN總線仿真、面板仿真功能,通過虛擬化通信環境,提前驗證、優化和保障系統可靠性,降低開發成本與風險,面板仿真還使其畫面實物化,便于操作和理解,仿真功能已成為ECU研發和
    的頭像 發表于 05-09 11:30 ?172次閱讀
    《聊一聊ZXDoc》之CAN總線<b class='flag-5'>仿真</b>、面板<b class='flag-5'>仿真</b>

    ad9467沒有數據的輸出是怎么回事?

    ;// 用于時鐘觸發的寄存器信號 wire adc_dco_ibuf_s;// 時鐘信號 regadc_dco_reg; // IBUFDS: 將差分輸入信號轉換為單端信號 IBUFDS i_dco
    發表于 04-28 07:52

    ISERDESE2原語端口及參數介紹

    前面在講解HDMI接口之前,講解過IDDR、ODDR、OSERDESE2、IBUF等原語,之后一直有讀者在問什么時候更新ISERDESE2這個原語。前文講解過這些原語都在HDMI或者RGMII中使用過,但是ISERDESE2這個
    的頭像 發表于 03-17 10:52 ?975次閱讀
    ISERDESE2<b class='flag-5'>原語</b>端口及參數介紹

    DLPLCRC410EVM參考appsfpga代碼時,沒有找到obufds這個模塊,怎么回事?

    在參考appsfpga 代碼時,沒有找到obufds這個模塊,請問這個是TI提供嗎,還是和xlinx有關,這一塊有點不太清楚,希望有人能幫忙解答一下,謝謝
    發表于 02-26 06:46

    基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南

    電子發燒友網站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發實戰指南.pdf》資料免費下載
    發表于 12-10 15:31 ?32次下載

    調試Xilinx Zynq + ADS58C48,ADC使用的是LVDS模式,ADC不能正常工作怎么解決?

    我正在調試Xilinx Zynq + ADS58C48,ADC使用的是LVDS模式,ADC不能正常工作。有以下幾點問題: 1)通過Xilinx FPGA差分原語輸給ADC一個10MHz的差分時
    發表于 12-10 07:34

    采用Xilinx FPGA的AFE79xx SPI啟動指南

    電子發燒友網站提供《采用Xilinx FPGA的AFE79xx SPI啟動指南.pdf》資料免費下載
    發表于 11-15 15:28 ?0次下載
    采用<b class='flag-5'>Xilinx</b> FPGA的AFE79xx SPI啟動指南

    Xilinx 7系列FPGA PCIe Gen3的應用接口及特性

    Xilinx7系列FPGA集成了新一代PCI Express集成塊,支持8.0Gb/s數據速率的PCI Express 3.0。本文介紹了7系列FPGA PCIe Gen3的應用接口及一些特性。
    的頭像 發表于 11-05 15:45 ?2581次閱讀
    <b class='flag-5'>Xilinx</b> 7系列FPGA PCIe Gen3的應用接口及特性

    如何申請xilinx IP核的license

    在使用FPGA的時候,有些IP核是需要申請后才能使用的,本文介紹如何申請xilinx IP核的license。
    的頭像 發表于 10-25 16:48 ?1091次閱讀
    如何申請<b class='flag-5'>xilinx</b> IP核的license

    Xilinx ZYNQ 7000系列SoC的功能特性

    本文介紹下Xilinx ZYNQ 7000系列SoC的功能特性、資源特性、封裝兼容性以及如何訂購器件。
    的頭像 發表于 10-24 15:04 ?2364次閱讀
    <b class='flag-5'>Xilinx</b> ZYNQ 7000系列SoC的功能特性

    Xilinx? Zynq?UltraScale?系列多處理器中的VCCINT_VCU軌供電

    電子發燒友網站提供《為Xilinx? Zynq?UltraScale?系列多處理器中的VCCINT_VCU軌供電.pdf》資料免費下載
    發表于 09-25 10:54 ?0次下載
    為<b class='flag-5'>Xilinx</b>? Zynq?UltraScale?系列多處理器中的VCCINT_VCU軌供電

    如何在ModelSim中添加Xilinx仿真

    今天給大俠帶來在FPGA設計應用中如何在ModelSim中添加Xilinx仿真庫,話不多說,上貨。 注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Program
    發表于 07-03 18:16

    快速開箱即用體驗 AMD / Xilinx Kria? KD240驅動器入門套件

    快速開箱即用體驗 AMD / Xilinx Kria? KD240驅動器入門套件
    的頭像 發表于 06-22 10:26 ?8450次閱讀
    快速開箱即用體驗 AMD / <b class='flag-5'>Xilinx</b> Kria? KD240驅動器入門套件

    FPGA | Xilinx ISE14.7 LVDS應用

    號的收發:OBUFDS(差分輸出BUF),IBUFDS(差分輸入BUF)。 注意在分配引腳時,只需要分配SIGNAL_P的引腳,SIGNAL_N會自動連接到相應差分對引腳上;若沒有使用差分信號原語
    發表于 06-13 16:28