91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Xilinx ISE14.7 LVDS的應(yīng)用

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2024-05-07 17:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天給大俠帶來 Xilinx ISE14.7 LVDS應(yīng)用,話不多說,上貨。

最近項(xiàng)目需要用到差分信號(hào)傳輸,于是看了一下FPGA上差分信號(hào)的使用。Xilinx FPGA中,主要通過原語實(shí)現(xiàn)差分信號(hào)的收發(fā):OBUFDS(差分輸出BUF),IBUFDS(差分輸入BUF)。

注意在分配引腳時(shí),只需要分配SIGNAL_P的引腳,SIGNAL_N會(huì)自動(dòng)連接到相應(yīng)差分對引腳上;若沒有使用差分信號(hào)原語,則在引腳電平上沒有LVDS的選項(xiàng)(IO Planning PlanAhead)。

測試代碼:

module lvds_test(   sys_clk,
                    sys_rst,
                    
                    signal_in_p,
                    signal_in_n,
                    signal_out_p,
                    signal_out_n,
                    
                    led_signal
                );


  input sys_clk,sys_rst;
  input signal_in_p,signal_in_n;
  output signal_out_p,signal_out_n;
  output led_signal;


  wire signal_out_temp;
  reg[31:0] clk_cnt;


  always @ (posedge sys_clk) begin
      if(!sys_rst) clk_cnt <= 32'd0;
      else begin
          if(clk_cnt == 32'd10_000_000) clk_cnt <= 32'd0;
          else clk_cnt <= clk_cnt+1'b1;
      end
  end
  
  assign signal_out=(clk_cnt >= 32'd5_000_000) ? 1 : 0;
  
  OBUFDS signal_out_diff(    .O(signal_out_p),
                                  .OB(signal_out_n),
                                  .I(signal_out)
                              );
  
  IBUFDS signal_in_diff(    .O(led_signal),
                                  .I(signal_in_p),
                                  .IB(signal_in_n)
                              );
  
endmodule

約束文件:

NET "signal_out_p" IOSTANDARD = LVDS_33;


NET "signal_out_p" LOC = U16;


NET "sys_clk" IOSTANDARD = LVCMOS33;
NET "sys_rst" IOSTANDARD = LVCMOS33;


NET "led_signal" LOC = D18;


NET "led_signal" IOSTANDARD = LVCMOS33;
#Created by Constraints Editor (xc6slx45t-csg324-3) - 2016/06/06
NET "sys_clk" TNM_NET = "sys_clk";
TIMESPEC TS_sys_clk = PERIOD "sys_clk" 50 MHz HIGH 50 %;




NET "signal_in_p" LOC = T12;
NET "signal_in_n" LOC = V12;
NET "sys_clk" LOC = G8;
NET "sys_rst" LOC = U3;


# PlanAhead Generated IO constraints 


NET "signal_in_p" IOSTANDARD = LVDS_33;

約束文件IO Planning PlanAhead產(chǎn)生,原語的使用可參考:E:XilinxISE14.7ISE_DSISEdocusenglishisehelpspartan6里面提供了所用器件的原語。

同時(shí),Xilinx器件內(nèi)部信號(hào)內(nèi)部還提供了100歐姆電阻匹配,可參考Spartan-6 FPGASelectIO Resources(UG381)

補(bǔ)充:

若要實(shí)現(xiàn)高速通信的場合,可以利用FPGA內(nèi)部自帶的SelectIO資源,利用ISERDESE2、 OSERDESE2,實(shí)現(xiàn)串-并,并-串的轉(zhuǎn)換,理論速度可達(dá)到750Mbs,

參考資料:Spartan-6 FPGA Data Sheet: DC and Switching Characteristics(UG162)

794516ea-0a77-11ef-a297-92fbcf53809c.png

通信框圖:

79552558-0a77-11ef-a297-92fbcf53809c.png

因?yàn)榇修D(zhuǎn)成并行的時(shí)候,輸出的數(shù)據(jù)無法判斷哪個(gè) Bit 是高位,哪個(gè) bit 是低位,因此,對于 ISERDESE2 可以利用bitslip 信號(hào)來重新對齊串行數(shù)據(jù)以獲得正確的字節(jié)數(shù)據(jù);代碼實(shí)現(xiàn)時(shí),也需要先進(jìn)行數(shù)據(jù)對齊,才能進(jìn)行數(shù)據(jù)的正常接收。

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
module lvds_test(
  input clk_50m,//全局時(shí)鐘
  input rstn, //復(fù)位
  
  input clk_in_from_pin_p,         //lvds時(shí)鐘輸出P
  input clk_in_from_pin_n,         //lvds時(shí)鐘輸入N
  input data_in_from_pin_p,        //lvds輸入數(shù)據(jù)P
  input data_in_from_pin_n,        //lvds輸入數(shù)據(jù)N
  
  output clk_out_to_pin_p,         //lvds時(shí)鐘輸出P
  output clk_out_to_pin_n,         //lvds時(shí)鐘輸出N
  output data_out_to_pin_p,        //lvds輸出數(shù)據(jù)P
  output data_out_to_pin_n         //lvds輸出數(shù)據(jù)N  
    );




wire clk_div_out_1;      //低速時(shí)鐘1,串行發(fā)送時(shí)鐘的8分頻
wire clk_div_out_2;      //低速時(shí)鐘2,串行接收時(shí)鐘的8分頻


wire [7:0] datain;       //LVDS輸入的8位并行數(shù)據(jù)


//產(chǎn)生LVDS發(fā)送的測試數(shù)據(jù),0~FF
reg [7:0] dataout;
always @(posedge clk_div_out_1) begin
   if (~rstn) 
     dataout <= 0;
   else if (dataout == 8'hff)
     dataout <= 0;
    else 
     dataout <= dataout + 1'b1;    
 end


//產(chǎn)生BITSLIP信號(hào),用于修改串轉(zhuǎn)并的Bit的起始位置
wire [7:0] data_delay;
reg BITSLIP=1'b0;
reg slip_check;
reg equal=1'b0;
assign data_delay=datain;


always @(posedge clk_div_out_2)
begin
        if (~rstn) 
             slip_check <= 1'b0;
        else if(data_delay==8'h80)      //當(dāng)串轉(zhuǎn)并的輸入的數(shù)據(jù)為0x80的時(shí)候,檢測開始
              slip_check <= 1'b1;      
        else
              slip_check <= 1'b0;        
end


always @(posedge clk_div_out_2)
begin
        if (~rstn) begin
              BITSLIP <= 1'b0;
           equal<=1'b0;        
        end      
        else if((slip_check==1'b1) && (equal==1'b0))
          if (data_delay ==8'h81) begin  //如果檢測到數(shù)據(jù)0x80后面的下一個(gè)時(shí)鐘的數(shù)據(jù)為0x81時(shí)
             BITSLIP <= 1'b0;            //BITSLIP不為高
           equal<=1'b1;                   //數(shù)據(jù)正確信號(hào)為高          
        end
          else begin
             BITSLIP <= 1'b1;           //BITSLIP產(chǎn)生一個(gè)高脈沖,改變串轉(zhuǎn)并的數(shù)據(jù)排列
           equal<=1'b0;                  //數(shù)據(jù)正確信號(hào)為低
        end     
        else begin
             BITSLIP <= 1'b0;
           equal<=equal;    
      end              
end
          
//并轉(zhuǎn)串,8位數(shù)據(jù)dataout轉(zhuǎn)換成串行數(shù)據(jù),并通過lvds差分信號(hào)輸出
p_to_s p_to_s_inst
   (
  // From the device out to the system
    .DATA_OUT_FROM_DEVICE(dataout), //Input pins
    .DATA_OUT_TO_PINS_P(data_out_to_pin_p), //Output pins
    .DATA_OUT_TO_PINS_N(data_out_to_pin_n), //Output pins
    .CLK_TO_PINS_P(clk_out_to_pin_p), //Output pins
    .CLK_TO_PINS_N(clk_out_to_pin_n), //Output pins


    .CLK_IN(clk_50m),        // Single ended clock from IOB
    .CLK_DIV_OUT(clk_div_out_1),   // Slow clock output
    .IO_RESET(~rstn)  //system reset
);


//串轉(zhuǎn)并,LVDS差分信號(hào)轉(zhuǎn)換成單端信號(hào)再通過串轉(zhuǎn)并,轉(zhuǎn)換為8位數(shù)據(jù)datain
s_to_p s_to_p_inst
   (
  // From the system into the device
    .DATA_IN_FROM_PINS_P(data_in_from_pin_p), //Input pins
    .DATA_IN_FROM_PINS_N(data_in_from_pin_n), //Input pins
    .DATA_IN_TO_DEVICE(datain), //Output pins


    .BITSLIP(BITSLIP), //Input pin
    .CLK_IN_P(clk_in_from_pin_p),      // Differential clock from IOB
    .CLK_IN_N(clk_in_from_pin_n),      // Differential clock from IOB
    .CLK_DIV_OUT(clk_div_out_2),   // Slow clock output
    .IO_RESET(~rstn)  //system reset
);


endmodule

其中,clk_div_out_1和clk_div_out_2是8分頻得到的(ISERDESE2、 OSERDESE2核實(shí)現(xiàn)),OSERDESE2輸出的LVDS 差分時(shí)鐘可作為ISERDESE2的接收時(shí)鐘。


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

    關(guān)注

    1660

    文章

    22416

    瀏覽量

    636580
  • lvds
    +關(guān)注

    關(guān)注

    2

    文章

    1238

    瀏覽量

    69874
  • 差分信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    408

    瀏覽量

    29014
  • 歐姆電阻
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    15974

原文標(biāo)題:FPGA | Xilinx ISE14.7 LVDS應(yīng)用

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    Win11安裝ise14.7~不需要虛擬機(jī)了~

    \\nt64X:\\Xilinx\\14.7\\ISE_DS\\common\\lib\\nt64最后試了下重新編譯工程,和之前編譯的bit文件只是時(shí)間有差別,說明ise14.7在wi
    發(fā)表于 02-27 14:25

    FPGA | Xilinx ISE14.7 LVDS應(yīng)用

    今天給大俠帶來 Xilinx ISE14.7 LVDS應(yīng)用,話不多說,上貨。 最近項(xiàng)目需要用到差分信號(hào)傳輸,于是看了一下FPGA上差分信號(hào)的使用。Xilinx FPGA中,主要通過
    發(fā)表于 06-13 16:28

    哪位大哥有xilinx ise 14.7 的教程?

    哪位大哥有xilinx ise 14.7 的教程或者是官方的英文使用手冊也行?謝謝拉
    發(fā)表于 03-13 21:55

    ISE14.7在win8.1上不能激活嗎?

    win8.1安裝ise14.7成功,最后利用configure license manager激活時(shí)點(diǎn)擊load license,不顯示加載對話框,激活無法完成同學(xué)的win8.1也遇到這問題,有高手能夠解釋一下嗎
    發(fā)表于 09-12 18:34

    xilinx ise 14.7安裝包及xilinx ise 14.7 license.lic,親測,可用。

    本帖最后由 jzc1610 于 2016-6-15 17:56 編輯 附:xilinx ise 14.7 安裝包下載地址(直接打開迅雷,新建任務(wù),復(fù)制粘貼鏈接即可):https
    發(fā)表于 06-15 09:13

    Xilinx ISE14.7版本兼容的modelsim應(yīng)該安裝哪個(gè)版本

    本人使用的是ISE14.7這個(gè)版本,現(xiàn)在安裝modelsim仿真軟件,請問最好是下載哪個(gè)版本的啊,求大神支招!非常感謝
    發(fā)表于 10-09 21:47

    關(guān)于ISE14.7聯(lián)合modelsim仿真出現(xiàn)的問題

    `小弟最近在使用ISE14.7和modelsim聯(lián)合仿真的時(shí)候出現(xiàn)了一些問題,百度很久也不能解決,特來論壇求助各位大哥?。。。≌嫘那笾。。?!具體問題就是在啟動(dòng)仿真的時(shí)候ISE14.7會(huì)出現(xiàn)一個(gè)警告
    發(fā)表于 09-14 23:07

    【 澤屹電子 阿東團(tuán)隊(duì)】 ISE14.7軟件下載鏈接、非常詳細(xì)的安裝和破解教程

    ISE14.7軟件安裝和破解教程 提供了非常詳細(xì)的安裝和破解指導(dǎo),屬于手把手教您學(xué)習(xí)FPGA教程。在軟件安裝之前,需要先準(zhǔn)備好軟件安裝包,可從 Xilinx 官網(wǎng)上或者我們的百度網(wǎng)盤鏈接下載: 1
    發(fā)表于 10-27 11:51

    【 澤屹電子 阿東團(tuán)隊(duì)】 ISE14.7軟件下載鏈接、非常詳細(xì)的安裝和破解教程

    ISE14.7軟件安裝和破解教程 提供了非常詳細(xì)的安裝和破解指導(dǎo),屬于手把手教您學(xué)習(xí)FPGA教程。在軟件安裝之前,需要先準(zhǔn)備好軟件安裝包,可從 Xilinx 官網(wǎng)上或者我們的百度網(wǎng)盤鏈接下載: 1
    發(fā)表于 10-27 12:31

    Matlab2013a,ISE14.7,Xilinx分頻器,Xi??linx模塊庫中發(fā)生內(nèi)部錯(cuò)誤

    您好我使用Matlab 2013a和ISE 14.7開發(fā)我的模型以在dSpace MicroAutboxII中運(yùn)行。我可以使用庫中的每個(gè)xilinx塊,但是當(dāng)我使用Xilinx Div
    發(fā)表于 12-27 10:58

    請問有ISE14.7或者以前版本的軟件使用教程分享嗎?

    求前輩分享ISE14.7或者稍微靠前版本的軟件使用教程,自學(xué)Verolog,軟件都還不會(huì)用
    發(fā)表于 03-19 04:46

    Xilinx ISE14.7 uart-lite 串口中斷問題

    基于ISE14.7 開發(fā)SPARTAN-6,PC端通過串口助手發(fā)送多字節(jié)數(shù)據(jù),下位機(jī)通過串口中斷接收數(shù)據(jù),按照如下代碼調(diào)試沒有問題,可是當(dāng)把中斷函數(shù)中的陰影部分代碼即串口發(fā)送代碼注釋之后,產(chǎn)生的現(xiàn)象
    發(fā)表于 05-15 16:00

    請問具有完整的ISE14.7是否還需要Chipscope許可證?

    我有一個(gè)ISE 14.7的完整注冊安裝。我試圖第一次使用Chipscope,它說我沒有正確的許可證。如果我有完整的ISE14.7,是否需要單獨(dú)的Chipscope許可證?我必須購買或者我可以評價(jià)一段時(shí)間嗎?
    發(fā)表于 04-26 06:46

    請問如何安裝xilinx ise 14.7破解版?

    xilinx ise 14.7破解版詳細(xì)安裝教程
    發(fā)表于 11-18 07:49

    ISE14.7基本介紹及安裝

    使用的、首屈一指的 PLD 設(shè)計(jì)環(huán) 境 !ISE 將先進(jìn)的技術(shù)與靈活性、易使用性的圖形界面結(jié)合在一起,不管 您的經(jīng)驗(yàn)如何,都讓您在最短的時(shí)間,以最少的努力,達(dá)到最佳的硬件設(shè)計(jì)。 2. ISE14.7 軟件安裝
    的頭像 發(fā)表于 11-09 09:28 ?1.6w次閱讀
    <b class='flag-5'>ISE14.7</b>基本介紹及安裝