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

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

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

關(guān)于打拍優(yōu)化時(shí)序你真的全面了解嗎?

FPGA之家 ? 來源:CSDN技術(shù)社區(qū) ? 作者:數(shù)字芯片實(shí)驗(yàn)室 ? 2021-04-27 14:15 ? 次閱讀

如果你參加過IC校招面試,自然會(huì)被問到“setup/hold的概念,以及setup/hold違例怎么辦?”

這時(shí)候,你肯定會(huì)立馬在腦海中從打拍或者插buffer兩個(gè)答案中選一個(gè)。但是在實(shí)際項(xiàng)目中,往往沒有這么簡單。舉一個(gè)實(shí)際的場(chǎng)景:

2d1e480e-a67f-11eb-aece-12bb97331649.png

AXI master和AXI slave這一簇信號(hào)出現(xiàn)setup時(shí)序違例怎么辦?

1、從AXI master 到AXI slave 出現(xiàn)setup違例;

2、從AXI slave 到AXI master出現(xiàn)setup違例;

3、兩者都出現(xiàn)setup時(shí)序違例。

所以AXI master和AXI slave之間的打拍會(huì)存在4中模式:

Forward Registered :對(duì)valid和payload路打拍

Backward Registered :對(duì)ready路打拍

Fully Registered :同時(shí)對(duì)valid/payload路和ready路打拍

Pass Through Mode:Bypass,均不打拍

這個(gè)問題沒那么容易或者說不能夠直接打拍,是因?yàn)檫@一簇信號(hào)遵循valid-ready協(xié)議,需要打拍的信號(hào)間存在時(shí)序的耦合。

所以問題就簡化成如何在遵循valid -ready協(xié)議的master和slave 之間完成“打拍”,或者說在打拍的同時(shí)處理valid-ready協(xié)議。

Forward Registered

2d2f1292-a67f-11eb-aece-12bb97331649.png

always @(posedge clk or negedge rst_n)begin if (rst_n == 1‘d0) valid_dst 《= 1’d0; else if (valid_src == 1‘d1) valid_dst 《= #`DLY 1’d1; else if (ready_dst == 1‘d1) valid_dst 《= #`DLY 1’d0;end always @(posedge clk or negedge rst_n)begin if (rst_n == 1‘d0) payload_dst 《= ’d0; else if (valid_src == 1‘d1 && ready_src == 1’d1) payload_dst 《= #`DLY payload_src;end ready_src = (~valid_dst) | ready_dst

2e3ed10e-a67f-11eb-aece-12bb97331649.png

現(xiàn)在來分析下上述Forward Registered 打拍代碼的幾個(gè)輸出端口

valid_dst:在master發(fā)請(qǐng)求(拉高valid_src)時(shí)拉高valid_dst,直到當(dāng)前master沒有valid請(qǐng)求并且slave可以接收請(qǐng)求(拉高ready_dst)時(shí)拉低valid_dst,表示一次傳輸完成。

payload_dst:在master發(fā)請(qǐng)求(拉高valid_src),并且前面沒有請(qǐng)求、請(qǐng)求已經(jīng)被接收或者正在被接收時(shí)將payload_src打拍賦給payload_dst。

其實(shí)master本身也會(huì)遵循valid-ready協(xié)議,payload_src和valid_src做同樣處理就行,即也可以在(valid_src == 1‘d1 && ready_src == 1’d0)時(shí)進(jìn)行賦值,因?yàn)榇藭r(shí)payload_src輸入應(yīng)該約束保持原始數(shù)據(jù)。

ready_src:register slice或者slave可以接收數(shù)據(jù)時(shí)拉高ready_src.

Backward Registered

2e49a4b2-a67f-11eb-aece-12bb97331649.png

always @(posedge clk or negedge rst_n)begin if (rst_n == 1‘d0) valid_tmp0 《= 1’d0; else if (valid_src == 1‘d1 && ready_dst == 1’d0 &&valid_tmp0 == 1‘d0) valid_tmp0 《= #`DLY 1’d1; else if (ready_dst == 1‘d1) valid_tmp0 《= #`DLY 1’d0;end always @(posedge clk or negedge rst_n)begin if (rst_n == 1‘d0) payload_tmp0 《= ’d0; else if (valid_src == 1‘d1 && ready_dst == 1’d0 &&valid_tmp0 == 1‘d0) payload_tmp0 《= #`DLY payload_src;end assign payload_dst = (valid_tmp0 == 1’d1) ?payload_tmp0 : payload_src; always @(posedge clk or negedge rst_n)begin if (rst_n == 1‘d0) ready_src 《= 1’d0; else ready_src 《= #`DLY ready_dst;end

Backward Registered 打拍相比較Forward Registered 會(huì)復(fù)雜點(diǎn),因?yàn)榇嬖趕lave沒有ready時(shí)master發(fā)來請(qǐng)求,需要暫存payload的場(chǎng)景。

2e73e8d0-a67f-11eb-aece-12bb97331649.png

現(xiàn)在來分析下上述Backward Registered打拍代碼的幾個(gè)輸出端口:

ready_src:對(duì)ready通路直接進(jìn)行打拍。

valid_dst:當(dāng)slave沒有ready,master發(fā)來請(qǐng)求時(shí)拉高標(biāo)志位valid_tmp0,表示下一次slave準(zhǔn)備好之后應(yīng)該從register slice內(nèi)暫存的payload拿數(shù)據(jù)

payload_dst:當(dāng)slave沒有ready,master發(fā)來請(qǐng)求時(shí)暫存payload到payload_tmp。最終的payload_dst根據(jù)標(biāo)志位valid_tmp0從payload_tmp和payload_src之間選擇

Fully Registered

類似于,簡單理解就是個(gè)乒乓BUFFER,使用非空信號(hào)做valid_dst;payload的非滿信號(hào)做ready_src

Pass Through Mode

直接相連

通過上述分析,可以使用register slice mode參數(shù)化的庫,在后端要求AXI BUS打拍時(shí)直接調(diào)用,而無需重復(fù)造輪子。
編輯:lyn

聲明:本文內(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)投訴
  • IC
    IC
    +關(guān)注

    關(guān)注

    36

    文章

    5838

    瀏覽量

    174924
  • 時(shí)序
    +關(guān)注

    關(guān)注

    5

    文章

    381

    瀏覽量

    37231
  • Setup
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    11953
  • MASTER
    +關(guān)注

    關(guān)注

    0

    文章

    101

    瀏覽量

    11241

原文標(biāo)題:打拍優(yōu)化時(shí)序不像聽起來那么簡單

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    了解TI基于PCB布線規(guī)則的DDR時(shí)序規(guī)范

    電子發(fā)燒友網(wǎng)站提供《了解TI基于PCB布線規(guī)則的DDR時(shí)序規(guī)范.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 11:47 ?0次下載
    <b class='flag-5'>了解</b>TI基于PCB布線規(guī)則的DDR<b class='flag-5'>時(shí)序</b>規(guī)范

    關(guān)于工廠人員定位,這幾點(diǎn)了解嗎?

    工廠人員定位可以實(shí)現(xiàn)人員實(shí)時(shí)定位、電子圍欄報(bào)警、歷史軌跡查詢、事故追溯等功能,那除了這些,工廠人員定位系統(tǒng),還有哪些亮點(diǎn)功能,了解過嗎?下面詳述關(guān)于云酷科技工廠人員定位的特色功能。智能門禁聯(lián)防
    的頭像 發(fā)表于 09-18 10:16 ?197次閱讀

    認(rèn)識(shí)貼片電阻嗎,對(duì)他了解多少?

    認(rèn)識(shí)貼片電阻嗎,對(duì)他了解多少?
    的頭像 發(fā)表于 08-27 15:49 ?261次閱讀
    <b class='flag-5'>你</b>認(rèn)識(shí)貼片電阻嗎,<b class='flag-5'>你</b>對(duì)他<b class='flag-5'>了解</b>多少?

    優(yōu)化 FPGA HLS 設(shè)計(jì)

    。 優(yōu)化時(shí)序 下一步是使用名為InTime 的設(shè)計(jì)探索工具(https://www.plunify.com/en/free-evaluation/)。(同樣,可以自己編寫腳本來嘗試
    發(fā)表于 08-16 19:56

    OpenHarmony之開機(jī)優(yōu)化

    一丶環(huán)境信息 源碼版本:OpenHarmony-4.1-Release 板子型號(hào):dayu200(RK3568) 二丶Bootchart工具 在開機(jī)優(yōu)化時(shí),我們需要借助Bootchart工具,當(dāng)前
    發(fā)表于 07-01 16:39

    真的了解駐波比嗎?到底什么是電壓駐波比?

    真的了解駐波比嗎?到底什么是電壓駐波比?在很長一段時(shí)間內(nèi),小編對(duì)駐波比的了解僅限于這樣一個(gè)概念:它是一個(gè)用于描述波反射大小的物理量,取值范圍[1, ∞],值越小,就表示反射越小,值越
    的頭像 發(fā)表于 05-29 14:27 ?2871次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>駐波比嗎?到底什么是電壓駐波比?

    fpga時(shí)序仿真和功能仿真的區(qū)別

    FPGA時(shí)序仿真和功能仿真在芯片設(shè)計(jì)和驗(yàn)證過程中各自扮演著不可或缺的角色,它們之間存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-15 15:28 ?1754次閱讀

    快速全面了解大模型長文本能力

    關(guān)于LLM的長文本能力,目前業(yè)界通常都是怎么做的?有哪些技術(shù)點(diǎn)或者方向?今天我們就來總結(jié)一波,供大家快速全面了解。
    發(fā)表于 02-22 14:04 ?769次閱讀
    快速<b class='flag-5'>全面</b><b class='flag-5'>了解</b>大模型長文本能力

    關(guān)于JTAG口,了解多少?

    設(shè)想是JTAG口壞了,于是乎,本人換了usb-blaster,可一點(diǎn)反應(yīng)也沒有。難道真的是JTAG口壞了?于是,本人就去查閱相關(guān)資料去搞清楚問題的本質(zhì)在哪里,下面就是本人的一些收獲,分享出來,僅供各位
    發(fā)表于 01-19 21:19

    RFID和NFC之間的那些事兒,真的了解嗎?

    RFID和NFC之間的那些事兒,真的了解嗎?
    的頭像 發(fā)表于 12-15 09:38 ?1146次閱讀
    RFID和NFC之間的那些事兒,<b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>嗎?

    電源時(shí)序控制的正確方法,掌握了嗎?

    電源時(shí)序控制的正確方法,掌握了嗎?
    的頭像 發(fā)表于 12-15 09:27 ?1212次閱讀
    電源<b class='flag-5'>時(shí)序</b>控制的正確方法,<b class='flag-5'>你</b>掌握了嗎?

    求助,關(guān)于AD2S1210的上電初始化時(shí)序問題

    Hi,你好,想請(qǐng)問下關(guān)于AD2S1210的上電初始化時(shí)序問題, 1、硬件復(fù)位引腳RESET引腳如果在VDD達(dá)到規(guī)定電壓之前沒有存在低電平的時(shí)間,會(huì)出現(xiàn)什么問題? 2、硬件復(fù)位引腳RESET引腳在
    發(fā)表于 12-06 06:55

    時(shí)序優(yōu)化之發(fā)送端打拍策略解析

    打拍是進(jìn)行時(shí)需優(yōu)化最常用和最簡單的方式之一,不過握手型協(xié)議的打拍和通常的使能型協(xié)議是不同的。
    的頭像 發(fā)表于 12-04 10:23 ?644次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>優(yōu)化</b>之發(fā)送端<b class='flag-5'>打拍</b>策略解析

    時(shí)序優(yōu)化之接收端打拍策略探討

    這篇文章是探討對(duì)接收端進(jìn)行時(shí)序優(yōu)化(即ready打拍,或稱backward打拍)的方式。
    的頭像 發(fā)表于 12-04 10:20 ?554次閱讀
    <b class='flag-5'>時(shí)序</b><b class='flag-5'>優(yōu)化</b>之接收端<b class='flag-5'>打拍</b>策略探討

    了解PWM“死區(qū)”嗎?

    了解PWM“死區(qū)”嗎?
    的頭像 發(fā)表于 11-24 16:47 ?893次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>了解</b>PWM“死區(qū)”嗎?