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

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

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

InterfaceDesinger 使用案例-v3

XL FPGA技術(shù)交流 ? 來源:易靈思FPGA技術(shù)交流 ? 作者:易靈思FPGA技術(shù)交流 ? 2024-07-17 16:24 ? 次閱讀

1、DDIO用法

2、時(shí)鐘輸出

3、Efinity處理三態(tài)端口問題

4、PLL的添加

5、HSIO的解串器用法

1、DDIO用法

對(duì)于輸入輸出IO很多時(shí)候會(huì)用到DDIO的用法。對(duì)于DDIO,就是時(shí)鐘的雙沿采集或者發(fā)送數(shù)據(jù),所以必須要用到寄存器。它的設(shè)置也比較簡(jiǎn)單,在intefaceDesigner中添加GPIO,并把register Option設(shè)置為register,另外要設(shè)置Double Data IO Option模式,分別為normal和resync。

422093a4-43d6-11ef-a4b4-92fbcf53809c.png

下圖是易靈思的GPIO的結(jié)構(gòu)。

424419a0-43d6-11ef-a4b4-92fbcf53809c.png

對(duì)應(yīng)上圖我們以O(shè)DDIO為例,分別標(biāo)出了reg1,reg2和reg3三個(gè)寄存 器。當(dāng)OUT0為上升沿的觸發(fā)信號(hào),即HI,OUT1為下降沿的觸發(fā)信號(hào),即LO。當(dāng)DDIO模式設(shè)置為Normal mode時(shí),OUT1經(jīng)過reg3輸出;當(dāng)設(shè)置為Resync mode時(shí)OUT1經(jīng)過了reg2和reg3,reg2用于對(duì)數(shù)據(jù)打一拍來對(duì)齊數(shù)據(jù),下面是數(shù)據(jù)的輸出波形。

425f5756-43d6-11ef-a4b4-92fbcf53809c.png

我們只需要在top模塊中添加相應(yīng)信號(hào)即可以用于控制:

module DDIO_Test(...  otuputoddio_HI,  output oddio_LO,
...
);

下圖為數(shù)據(jù)輸入時(shí)的波形,分別對(duì)應(yīng) Normal和Resync mode。

42839698-43d6-11ef-a4b4-92fbcf53809c.png

2、時(shí)鐘輸出

易靈思所有的GPIO都可以用作時(shí)鐘輸出。這里我們提供兩種時(shí)鐘輸出方式。

方法一:把時(shí)鐘設(shè)置為clkout模式。下圖選自鈦金系列ds上的IO框圖 。從圖片上可以看到OUTCLK的路徑。

429c9d1e-43d6-11ef-a4b4-92fbcf53809c.png

在添加 GPIO時(shí),設(shè)置Mode為clkout,并在output Clock中輸入時(shí)鐘名。

42c13a48-43d6-11ef-a4b4-92fbcf53809c.png

42db16e8-43d6-11ef-a4b4-92fbcf53809c.png

這里需要 注意的是,時(shí)鐘名不能從core直接輸出,而只能使用interface中使用的時(shí)鐘,如PLL輸出的時(shí)鐘或者GCLK輸入的時(shí)鐘。比如我們?cè)诖a中定義了一個(gè)IO,如下:

module clk_test(...
output clk_100m,
...);

如果直接把代碼中定義的clk_100m直接配置給interface的GPIO,這時(shí)軟件會(huì)報(bào)錯(cuò)。

方法二:

通過DDIO的方式設(shè)置時(shí)鐘輸出。IO模式設(shè)置為output,并打開Register Option及Double Data I/O Option,并指定時(shí)鐘。

42e1527e-43d6-11ef-a4b4-92fbcf53809c.png

4300e3b4-43d6-11ef-a4b4-92fbcf53809c.png

432eae16-43d6-11ef-a4b4-92fbcf53809c.png

程序內(nèi)部分別對(duì)DDIO的高低位分部賦值為1或者0.

assign clk_out_inst_HI = 1'b1;assign clk_out_inst_LO=1'b0;

對(duì)于兩種方式的使用,Trion有很大一部分的GPIO不支持DDIO,只能使用第一種方式,鈦金所有的GPIO都支持DDIO;另外在源同步時(shí)鐘數(shù)據(jù)輸出時(shí),DDIO的方式可以保證數(shù)據(jù)和時(shí)鐘的延時(shí)一致,所以易靈思推薦使用DDIO的方式。

3、Efinity處理三態(tài)端口問題

我們?cè)谔幚砣龖B(tài)門時(shí)一般都是用下面的語句;

inout bidr_pad;wirein;wire out;wireo_oe;
assign bidr_pad= o_en ? out :z; assignin=bidr_pad;

其實(shí)它對(duì)應(yīng)的硬件結(jié)構(gòu)就是下面的框圖。它涉及到3個(gè)信號(hào):in,out,o_en。

當(dāng)o_en = 1時(shí),out可以通過out buf輸出到pad上,同時(shí)會(huì)反饋到in;

當(dāng)o_en = 0時(shí),out buf就是高阻態(tài)。in的信號(hào)就是通過外部pad通過in buf輸入進(jìn)來。

4338425a-43d6-11ef-a4b4-92fbcf53809c.png

最初使用Efinity,因?yàn)榧軜?gòu)差異,很多人被inout的使用難住了。這里來說明一下。在易靈思的產(chǎn)品架構(gòu)中,原有的rtl代碼都是針對(duì)fabric的,也就邏輯部分。而IO被認(rèn)為是外設(shè)。如下圖I/O Buffer部分相對(duì)于fabric是外設(shè),它是在Efinity的interface Designer中設(shè)置的。這樣在rtl只需要定義:

inputin;outputout;output o_oe;

434f67f0-43d6-11ef-a4b4-92fbcf53809c.png

有了上面的認(rèn)知,我們就容易理解在efinity中怎樣添加三態(tài)。

添加三態(tài)門的過程如下:

我們?cè)趇nterface中添加一個(gè)gpio,命名為sda,把Mode選擇為inout,

435bf182-43d6-11ef-a4b4-92fbcf53809c.png

點(diǎn)擊show/Hide GPIO Resource Assigner,打開IO分配界面分配IO.

438ccff0-43d6-11ef-a4b4-92fbcf53809c.png

點(diǎn)擊保存和Generate Efintiy Constraint Files.

43bb37c8-43d6-11ef-a4b4-92fbcf53809c.png

打開工程面板下面的Result下的xxx_template.v,可以看到里面添加了

43d49a42-43d6-11ef-a4b4-92fbcf53809c.png

Inputsda_IN,output sda_OE,output sda_OUT

三個(gè)信號(hào),把這三個(gè)信號(hào)復(fù)制到工程文件的頂層中去,這樣就定義好了一個(gè)inout,可以直接全用了。

另外如果要添加IO寄存可以根據(jù)實(shí)際需要去選擇,同時(shí)要注意為寄存器選擇準(zhǔn)確的時(shí)鐘。


這樣就不用再寫assign sda = oe ? sda_out :z; 這樣的語句,因?yàn)閛e就是sda_OE, sda_out對(duì)應(yīng)的就是接口生成的sda_OUT。

在Efinity的.v文件中不支持inout 雙向口的定義,另外Efinity也不支持‘z’這種定義。

4、PLL的添加

易靈思的FPGA在生成PLL的方式與別的廠家稍有區(qū)別,這與其的core和interface架構(gòu)是相對(duì)應(yīng)的。對(duì)于易靈思的FPGA來講,PLL,GPIO,MIPI,LVDS和DDR相對(duì)于core部分都是外設(shè)。而這些外設(shè)的設(shè)置都是在interface designer中的。下面以pll的添加為例,對(duì)于trion系列的設(shè)置簡(jiǎn)單說明。鈦金系列會(huì)稍微的區(qū)別,但是只要了解了一個(gè),另一個(gè)都是大同小異的。

一、PLL的添加

(1)打開interface desinger。

43e50508-43d6-11ef-a4b4-92fbcf53809c.png

(2)選擇pll右擊選擇Createblock,就可以添加pll

43ff13da-43d6-11ef-a4b4-92fbcf53809c.png

(3)這里我們把pll的例化名修改為pll_inst,并且按回車(必須回車)。

PLL resource對(duì)應(yīng)PLL的位置,這也是易靈思的PLL使用與別家有區(qū)別的地方,必須要指定PLL的位置。

clock source是指pll參考時(shí)鐘的源來自哪里,包括外部和內(nèi)部。

External clock:指示參考時(shí)鐘的源,包括參考時(shí)鐘0,參考時(shí)鐘1。

44208e34-43d6-11ef-a4b4-92fbcf53809c.png

(4)點(diǎn)擊Automated Clock Calculation打開時(shí)鐘設(shè)置界面。trion最多可以設(shè)置3個(gè)時(shí)鐘,紅包框中的箭頭和x可以用于打開和關(guān)閉相應(yīng)的時(shí)鐘。

443badd6-43d6-11ef-a4b4-92fbcf53809c.png

(5)設(shè)置完成上面的操作之后,我們需要指定PLL的參考時(shí)鐘來源。從ds上我們可以看到PLL_BL0有兩個(gè)時(shí)鐘源,分別是REFCLK0和REFCLK1,分別對(duì)應(yīng)GPIOL_15_PLLIN0和GPIOL_19_PLLIN1。

然后再添加PLL的參考時(shí)鐘腳,這里我們例化為pll_ref_clk,并要把connection Type設(shè)置為pll_clkin。并分配到GPIOL_15_PLLIN0上,因?yàn)樯厦孢x擇了External Clock0。這樣PLL的設(shè)置就差不多了。

4444f030-43d6-11ef-a4b4-92fbcf53809c.png

446bc41c-43d6-11ef-a4b4-92fbcf53809c.png

二、關(guān)于時(shí)鐘源

44852a88-43d6-11ef-a4b4-92fbcf53809c.png

在選擇clock source時(shí),有三個(gè)選項(xiàng),分別是external, core和dynamic。

external好理解,就是參考時(shí)鐘從外部IO進(jìn)入的,上面的設(shè)置就是。

core是指時(shí)鐘從FPGA內(nèi)部給PLL的參考,比如一個(gè)PLL的輸出給另一個(gè)PLL做參考時(shí),第二個(gè)PLL的參考就是設(shè)置成core,或者從GCLK進(jìn)入FPGA再環(huán)到PLL的輸入。

至于Dynamic Clock就是動(dòng)態(tài)輸入選擇,支持多路選擇,如下圖,可以支持兩個(gè)core和兩個(gè)external時(shí)鐘。但是因?yàn)镻LL不支持動(dòng)態(tài)重配置,所以這個(gè)功能應(yīng)用有限。

448ec840-43d6-11ef-a4b4-92fbcf53809c.png

三、PLL的反饋方式

PLL有三種反饋,core,Local和internal。

44aa73a6-43d6-11ef-a4b4-92fbcf53809c.png

從下面的圖來看,不同的反饋位置是不一樣的。core的反饋路徑是從FPGA的core內(nèi)部來反饋,可以保證輸入時(shí)鐘與輸出時(shí)鐘同頻同相。這在源同步設(shè)計(jì)中是很有用的。而local和internal可以支持輸出更多的頻率,大家可以在操作中發(fā)現(xiàn)如果是core反饋的話,有些頻率是設(shè)置不出來的,而local和interanl卻可以。


44c498da-43d6-11ef-a4b4-92fbcf53809c.png

上面描述其實(shí)描述相對(duì)粗糙,語句什么的也沒有太去考慮措辭,花半個(gè)小時(shí)BB下,能用起來就行,如果實(shí)在有看不懂的,歡迎留言。

5、HSIO的解串器用法

在interface中添加一個(gè)IO,注意要分給HSIO,HVIO是不支持4位解器的。這里我們定義一個(gè)iserdes3的GPIO,方向?yàn)檩斎搿?/p>

44d1d874-43d6-11ef-a4b4-92fbcf53809c.png

在GPIO的屬性中,打開register,再打開Enable Deserialization就打開了解串器。Serial Clock Pin Name和Clock分別對(duì)應(yīng)解串器的串行和并行時(shí)鐘,需要指出的是在使用解串器時(shí)不能打開DDIO功能,所以串行時(shí)鐘和并行時(shí)鐘的關(guān)系只是能是4倍關(guān)系。

假如串行時(shí)鐘是100MHz,那么轉(zhuǎn)換成的4位并行數(shù)據(jù)就降速到25MHz。

4519122a-43d6-11ef-a4b4-92fbcf53809c.png

在設(shè)置對(duì)應(yīng)時(shí)鐘時(shí)會(huì)有相位的要求。如果同相位會(huì)提示錯(cuò)誤信息

45360182-43d6-11ef-a4b4-92fbcf53809c.png

保存并點(diǎn)擊生成約束之后,在生成的template文件中就可以看到生成的IO端口已經(jīng)變成4位位寬。

45546dde-43d6-11ef-a4b4-92fbcf53809c.png

(* syn_peri_port = 0 *) input [3:0] iserdes3,

審核編輯 黃宇
聲明:本文內(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)投訴
  • Interface
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    38613
  • desinger
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    3426
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    摩托羅拉v3電路圖

    摩托羅拉v3電路圖   •
    發(fā)表于 06-16 08:16 ?214次下載
    摩托羅拉<b class='flag-5'>v3</b>電路圖

    ITIL V3白皮書

    《翰緯ITIL v3 白皮書》是一本概要性的參考手冊(cè),力圖通過較短的篇幅,簡(jiǎn)明扼要地向讀者說明ITIL v3 的演化進(jìn)程、基本理論、以及國(guó)內(nèi)應(yīng)用方面的探討,為讀者更加深入的理解和應(yīng)
    發(fā)表于 08-06 11:56 ?0次下載

    v3送話器改裝

    v3送話器改裝
    發(fā)表于 07-13 02:16 ?2019次閱讀
    <b class='flag-5'>v3</b>送話器改裝

    逆變器V3框圖及外接電路圖

    逆變器V3框圖及外接電路圖
    發(fā)表于 07-20 14:57 ?920次閱讀
    逆變器<b class='flag-5'>V3</b>框圖及外接電路圖

    升壓變換器V3的電路圖

    升壓變換器V3的電路圖
    發(fā)表于 07-21 07:58 ?895次閱讀
    升壓變換器<b class='flag-5'>V3</b>的電路圖

    V3硬件設(shè)計(jì)指南V1.0

    V3硬件設(shè)計(jì)指南,全志V3硬件設(shè)計(jì)參考資料
    發(fā)表于 02-23 16:52 ?70次下載

    GAKATO光速達(dá)中控解決方案V3

    GAKATO光速達(dá)中控解決方案V3
    發(fā)表于 01-04 13:56 ?0次下載

    NODEMCU V3燒寫 AT固件

    NODEMCU V3燒寫 AT固件NODEMCU V3燒寫AT指令固件,保存配置圖。1.AT固件 AiCloud 2.0 AT(32mbit) 2.刷寫工具 flash download tools 3.6.4 3.串口調(diào)試工具
    發(fā)表于 10-28 12:36 ?19次下載
    NODEMCU <b class='flag-5'>V3</b>燒寫 AT固件

    突變體C v3 ThumbStick PCB開源

    電子發(fā)燒友網(wǎng)站提供《突變體C v3 ThumbStick PCB開源.zip》資料免費(fèi)下載
    發(fā)表于 07-25 10:46 ?0次下載
    突變體C <b class='flag-5'>v3</b> ThumbStick PCB開源

    Arduino合成器V3設(shè)計(jì)案例

    電子發(fā)燒友網(wǎng)站提供《Arduino合成器V3設(shè)計(jì)案例.zip》資料免費(fèi)下載
    發(fā)表于 08-11 09:50 ?2次下載
    Arduino合成器<b class='flag-5'>V3</b>設(shè)計(jì)案例

    NodeMCU V2 Amica V3 Lolin的盾牌

    電子發(fā)燒友網(wǎng)站提供《NodeMCU V2 Amica V3 Lolin的盾牌.zip》資料免費(fèi)下載
    發(fā)表于 08-24 10:05 ?2次下載
    NodeMCU <b class='flag-5'>V</b>2 Amica <b class='flag-5'>V3</b> Lolin的盾牌

    使用Arduino Nano V3制作雕刻南瓜

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano V3制作雕刻南瓜.zip》資料免費(fèi)下載
    發(fā)表于 12-21 14:12 ?0次下載
    使用Arduino Nano <b class='flag-5'>V3</b>制作雕刻南瓜

    CCE4503評(píng)估板V3

    CCE4503評(píng)估板V3
    發(fā)表于 05-12 19:31 ?0次下載
    CCE4503評(píng)估板<b class='flag-5'>V3</b>

    CCE4503評(píng)估板V3

    CCE4503評(píng)估板V3
    發(fā)表于 06-29 19:23 ?0次下載
    CCE4503評(píng)估板<b class='flag-5'>V3</b>

    FET430UIF V3固件降級(jí)程序

    FET430UIF V3固件降級(jí)程序V3 ---> ?V2
    發(fā)表于 10-10 11:47 ?0次下載