国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 1. Pass Through
    • 2. Forward registered
    • 3. Backward registered
    • 4. Full registered
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

芯片設(shè)計(jì)時(shí)序優(yōu)化 -- register slice

4小時(shí)前
149
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

芯片設(shè)計(jì)中,經(jīng)常會(huì)遇到時(shí)序違例的問題,通常的解決方式就是插入寄存器,也就是打拍。但對于握手信號來說(例如AXI總線中的ready和valid信號),直接打拍會(huì)導(dǎo)致valid和ready不滿足正確的握手關(guān)系,從而導(dǎo)致數(shù)據(jù)漏采樣或者重復(fù)采樣。

因此,需要使用特殊的方法來對握手信號進(jìn)行打拍。對AXI總線中握手信號的打拍通常稱為AXI register slice,可以降低關(guān)鍵路徑的組合邏輯延遲,提高系統(tǒng)工作頻率。register slice通常有四種模式:

Pass Through:直連,也就是不使用register slice。

Forward Registered(前向打拍) :對valid和data信號打拍。

Backward Registered(后向打拍) :對ready信號打拍。

Full Registered(雙向打拍):同時(shí)對valid,data信號和ready信號進(jìn)行打拍。

1. Pass Through

不進(jìn)行打拍,即不插入寄存器。

2. Forward registered

Forward指的是從數(shù)據(jù)發(fā)送方 (source) 到數(shù)據(jù)接收方 (destination) 之間的數(shù)據(jù)傳遞方向。Forward register是同時(shí)對valid信號和payload信號進(jìn)行打拍。Forward打拍的電路框圖如下:

forward registered

verilog代碼示例如下,其中valid_src、data_src、ready_src這三個(gè)信號是發(fā)送端(source)使用的,而valid_dst、data_dst、ready_dst這三個(gè)信號是接收端(destination)使用的。

valid_dst用于對發(fā)送端的valid_src進(jìn)行打拍(鎖存),它在ready_src為1時(shí)鎖存valid_src,ready_src為1有以下兩種情況:

valid_dst為0:此時(shí)valid_dst和data_dst寄存器沒有有效數(shù)據(jù),可以接收發(fā)送端的valid_src。

ready_dst為1:此時(shí)接收端準(zhǔn)備好了接收數(shù)據(jù)。若valid_dst為0:表示接收方先準(zhǔn)備好接收數(shù)據(jù),而valid_dst和data_dst寄存器沒有有效數(shù)據(jù),可以接收valid_src。若valid_dst為1:發(fā)送方和接收方都完成了一次握手,valid_dst和data_dst可以更新。

data_dst是對數(shù)據(jù)進(jìn)行打拍(鎖存),條件是發(fā)送端完成握手(valid_src和ready_src均有效)。這里的數(shù)據(jù)通路沒有用于控制邏輯,因此可以不帶復(fù)位端,以節(jié)省面積。

3. Backward registered

Backward指的是接收端向發(fā)送端發(fā)送ready信號的方向。需要注意,不能只對ready信號打拍,而不對valid和data信號進(jìn)行處理,這樣會(huì)導(dǎo)致數(shù)據(jù)漏采或重復(fù)采樣。

正確的方法是為發(fā)送端的valid和data信號也打拍(進(jìn)行鎖存),當(dāng)發(fā)送端握手成功但接收端沒有ready時(shí),可以鎖存發(fā)送端發(fā)過來的數(shù)據(jù)。等接收端ready后,可以接收到暫存的數(shù)據(jù)。backward registered的電路框圖如下所示:

backward registered

verilog代碼示例如下:

valid_r: ?對發(fā)送端的valid_src進(jìn)行鎖存,會(huì)在以下情況下置1或置0:

當(dāng)接收端ready_dst為1時(shí),置0,此時(shí)接收端可以接收數(shù)據(jù),不需要暫存。

當(dāng)發(fā)送端valid_src和ready_src有效,且接收端ready_dst無效,此時(shí)需要鎖存數(shù)據(jù),將valid_r置1。

data_r:和valid_dst的邏輯類似,當(dāng)滿足valid_src & ready_src & ~ready_dst時(shí),鎖存發(fā)送端的data_src。

ready_src:通過以下邏輯控制

復(fù)位值為1,一旦發(fā)送端準(zhǔn)備好數(shù)據(jù),即可暫存data_src。

接收端ready_dst有效時(shí),置1。

發(fā)送端valid_src有效時(shí),置0。

valid_dst和data_dst這兩個(gè)信號根據(jù)ready_src的值來進(jìn)行賦值:

當(dāng)ready_src為1時(shí),接收端或者可以接收數(shù)據(jù),賦值為valid_src和data_src。

當(dāng)ready_src為0時(shí),此時(shí)暫存寄存器中的數(shù)據(jù)有效,因此賦值為valid_r和data_r。

4. Full registered

Full Registered是對valid/data和ready都進(jìn)行時(shí)序優(yōu)化的寄存器,將Forward Registered和Backward Registered組合在一起即可得到Full Registered,電路框圖如下圖所示:

full registered

參考內(nèi)容:

Synopsys DesignWare DW_axi_rs databook

ic基礎(chǔ)|時(shí)序篇:握手協(xié)議valid和ready的時(shí)序優(yōu)化

相關(guān)推薦

长治市| 合江县| 鸡东县| 莱州市| 若尔盖县| 图片| 迭部县| 乌鲁木齐县| 文安县| 丹巴县| 太仆寺旗| 加查县| 那曲县| 连城县| 湘阴县| 大港区| 洞头县| 鄂托克前旗| 昌都县| 马鞍山市| 昔阳县| 海盐县| 石柱| 江口县| 宜州市| 朝阳区| 浏阳市| 迭部县| 绩溪县| 静宁县| 桂平市| 台中县| 祁东县| 濮阳县| 孟连| 义乌市| 平南县| 东平县| 前郭尔| 锡林浩特市| 沅江市|