一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

IBUFDS原語示意圖如下所示:

poYBAGIMo8CAALk3AAEdiqFyBeM912.png

端口說明如下表:

pYYBAGIMo8KABdfrAABz27Hr64s722.jpg

信號(hào)真值表如下:

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指定你需要輸出的電平標(biāo)準(zhǔn)。

接下來例化一個(gè)IBUFDS原語進(jìn)行測(cè)試,Verilog代碼如下:

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

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

endmodule

每隔20ns分別隨機(jī)生成2個(gè)1位2進(jìn)制數(shù)據(jù)作為差分輸入,觀察輸出,Testbench如下:

//------------------------------------------------
//--IBUFDS原語仿真
//------------------------------------------------
`timescale 1ns/1ns //時(shí)間單位/精度
//----------------------------------------------------
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; //初始時(shí)鐘為1
rst_n data_p data_n #60 //60個(gè)時(shí)鐘周期后
rst_n end
//----------------------------------------------------------
always #10 clk = ~clk; //系統(tǒng)時(shí)鐘周期20ns

always #20 data_p always #20 data_n

endmodule

仿真結(jié)果如下:

poYBAGIMo8WAVpdHAABSPSP73JI139.png

每隔20ns,2個(gè)差分輸入端口分別隨機(jī)生成2個(gè)1位2進(jìn)制數(shù)據(jù);輸出輸入符合上述的真值表。

3、OBUFDS
3.1、理論
OBUFDS 是一個(gè)差分輸出緩沖器,用于將來自 FPGA 內(nèi)部邏輯的信號(hào)轉(zhuǎn)換成差分信號(hào)輸出,支持 TMDS、LVDS等電平標(biāo)準(zhǔn)。它的輸出用O和OB兩個(gè)獨(dú)立接口表示。一個(gè)可以認(rèn)為是主信號(hào),另一個(gè)可以認(rèn)為是從信號(hào)。

OBUFDS原語示意圖如下所示:

pYYBAGIMo8eAbDmlAAB2RftdfvY623.png

端口說明如下表:

pYYBAGIMo8iAURjGAABz9h5PcJg152.jpg

信號(hào)真值表如下:

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指定你需要輸出的差分電平標(biāo)準(zhǔn),SLEW根據(jù)你的要求輸出FAST或者SLOW。

接下來例化一個(gè)OBUFDS原語進(jìn)行測(cè)試,Verilog代碼如下:

//------------------------------------------------------------------------
//--OBUFDS測(cè)試模塊
//------------------------------------------------------------------------
//----------------------------------------------------
module OBUFDS_test(
input clk , //時(shí)鐘,50M
input rst_n , //復(fù)位,低電平有效
input data , //輸入數(shù)據(jù)

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

endmodule

每隔20ns隨機(jī)生成一個(gè)1位2進(jìn)制數(shù)據(jù),觀察差分輸出,Testbench如下:

//------------------------------------------------
//--OBUFDS原語仿真
//------------------------------------------------
`timescale 1ns/1ns //時(shí)間單位/精度
//----------------------------------------------------
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; //初始時(shí)鐘為1
rst_n data #60 //60個(gè)時(shí)鐘周期后
rst_n end
//----------------------------------------------------------
always #10 clk = ~clk; //系統(tǒng)時(shí)鐘周期20ns
always #20 data

endmodule

仿真結(jié)果如下:

pYYBAGIMo8yAeXMTAABKljcqjio357.png

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

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2184

    瀏覽量

    125203
  • 仿真
    +關(guān)注

    關(guān)注

    52

    文章

    4269

    瀏覽量

    135731
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    詳解ADC電路的靜態(tài)仿真和動(dòng)態(tài)仿真

    ADC電路主要存在靜態(tài)仿真和動(dòng)態(tài)仿真兩類仿真,針對(duì)兩種不同的仿真,我們存在不同的輸入信號(hào)和不同的數(shù)據(jù)采樣,因此靜態(tài)仿真和動(dòng)態(tài)
    的頭像 發(fā)表于 06-05 10:19 ?776次閱讀
    詳解ADC電路的靜態(tài)<b class='flag-5'>仿真</b>和動(dòng)態(tài)<b class='flag-5'>仿真</b>

    基于AD9613與Xilinx MPSoC平臺(tái)的高速AD/DA案例分享

    本文主要介紹基于Xilinx UltraScale+MPSoC XCZU7EV的高速AD采集與高速DA輸出案例
    的頭像 發(fā)表于 06-03 14:22 ?227次閱讀
    基于AD9613與<b class='flag-5'>Xilinx</b> MPSoC平臺(tái)的高速AD/DA案例分享

    XILINX XCZU67DR FPGA完整原理圖

    電子發(fā)燒友網(wǎng)站提供《XILINX XCZU67DR FPGA完整原理圖.pdf》資料免費(fèi)下載
    發(fā)表于 05-30 15:29 ?0次下載

    Xilinx Shift RAM IP概述和主要功能

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

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

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

    ad9467沒有數(shù)據(jù)的輸出是怎么回事?

    ;// 用于時(shí)鐘觸發(fā)的寄存器信號(hào) wire adc_dco_ibuf_s;// 時(shí)鐘信號(hào) regadc_dco_reg; // IBUFDS: 將差分輸入信號(hào)轉(zhuǎn)換為單端信號(hào) IBUFDS i_dco
    發(fā)表于 04-28 07:52

    ISERDESE2原語端口及參數(shù)介紹

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

    DLPLCRC410EVM參考appsfpga代碼時(shí),沒有找到obufds這個(gè)模塊,怎么回事?

    在參考appsfpga 代碼時(shí),沒有找到obufds這個(gè)模塊,請(qǐng)問這個(gè)是TI提供嗎,還是和xlinx有關(guān),這一塊有點(diǎn)不太清楚,希望有人能幫忙解答一下,謝謝
    發(fā)表于 02-26 06:46

    基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實(shí)戰(zhàn)指南

    電子發(fā)燒友網(wǎng)站提供《基于Xilinx ZYNQ7000 FPGA嵌入式開發(fā)實(shí)戰(zhàn)指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-10 15:31 ?37次下載

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

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

    采用Xilinx FPGA的AFE79xx SPI啟動(dòng)指南

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

    Xilinx 7系列FPGA PCIe Gen3的應(yīng)用接口及特性

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

    如何申請(qǐng)xilinx IP核的license

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

    Xilinx ZYNQ 7000系列SoC的功能特性

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

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

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