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

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

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

IC設(shè)計(jì):Verilog是如何實(shí)現(xiàn)RR輪詢調(diào)度的?

sanyue7758 ? 來源:IC的世界 ? 2023-12-13 16:14 ? 次閱讀

1、RR輪詢調(diào)度?

在設(shè)計(jì)中,我們經(jīng)常會(huì)用到RR(Round-Robin,RR)輪詢調(diào)度,用于保證在一個(gè)時(shí)間段內(nèi)的多個(gè)請(qǐng)求信號(hào)都能得到公平響應(yīng)。

如下所示:輸入rr_req[3:0]為4個(gè)請(qǐng)求信號(hào),輸出rr_grant[3:0]為4請(qǐng)求信號(hào)對(duì)應(yīng)的4個(gè)響應(yīng)信號(hào):rr_req[n]表示第n請(qǐng)求申請(qǐng)響應(yīng),rr_grant[n]為1表示第n個(gè)請(qǐng)求被響應(yīng)。如表所示,T1周期,所有請(qǐng)求均有效,首先響應(yīng)低bit的請(qǐng)求,所以rr_grant[0]=1。T3周期,請(qǐng)求rr_req[0]有效,但是在T2時(shí)刻中被響應(yīng)(rr_grant[1]=1),因此此次不再響應(yīng),而是響應(yīng)rr_req[2],所以rr_grant[2]=1.

時(shí)鐘周期 請(qǐng)求信號(hào)rr_req[3:0] 請(qǐng)求響應(yīng)rr_grant[3:0]
0 4’b0000 4’b0000
1 4’b1111 4’b0001
2 4’b1110 4’b0010
3 4’b1101 4’b0100
4 4’b1011 4’b1000

2、Verilog是如何實(shí)現(xiàn)RR輪詢調(diào)度的?

在verilog實(shí)現(xiàn)中,僅僅采用簡(jiǎn)單的組合邏輯和寄存器就可以實(shí)現(xiàn)rr輪詢調(diào)度,不需要狀態(tài)機(jī)等設(shè)計(jì)。

基本原理是鎖存上一次輸出請(qǐng)求響應(yīng)rr_grant[3:0],并且生成相應(yīng)的有效位rr_mask[3:0],從(rr_valid[3:0]&rr_mask[3:0]) 和 rr_valid[3:0]&(~rr_mask[3:0]) 選取不為0的作為獲得rr_grant_tmp,rr_grant_tmp再經(jīng)過組合邏輯并且取最低有效位。此處mask中1表示請(qǐng)求有效。

A B C D E F G
時(shí)間順序 請(qǐng)求信號(hào)rr_req[3:0] pre_rr_result(rr_grant[3:0]的打拍鎖存值) rr_mask ~rr_mask
生成有效位
rr_grant_tmp
B&D or B&E,取其中不為0的
請(qǐng)求響應(yīng)rr_grant[3:0]
0 4’b0000 4’b0000 4’b1111 4’b0000 4’b0000 4’b0000
1 4’b1111 4’b0000 4’b1111 4’b0000 4’b1111 4’b0001
2 4’b1110 4’b0001 4’b0001 4’b1110 4’b1110 4’b0010
3 4’b1101 4’b0010 4’b0011 4’b1100 4’b1100 4’b0100
4 4’b1011 4’b0100 4’b0111 4’b1000 4’b1000 4’b1000

B列:為請(qǐng)求信號(hào)rr_req[3:0]

C列:pre_rr_result 為模塊內(nèi)部鎖存的上一拍rr_grant[3:0],即寄存器鎖存打拍

D列:rr_mask為pre_rr_result經(jīng)過組合邏輯得到的掩碼,rr_mask= {pre_rr_result[2:0],pre_rr_result[3]}-1’b1

E列:~rr_mask為pre_rr_result經(jīng)過組合邏輯得到的掩碼,rr_mask=~( {pre_rr_result[2:0],pre_rr_result[3]}-1’b1)

F列:rr_grant_tmp為B&D or B&E,取其中不為0的

G列:rr_grant_tmp經(jīng)過組合邏輯輸出最低有效位:(~rr_grant_tmp+1’b1)&rr_grant_tmp





審核編輯:劉清

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

    關(guān)注

    31

    文章

    5357

    瀏覽量

    120631
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    38

    文章

    1297

    瀏覽量

    104080
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110154

原文標(biāo)題:IC設(shè)計(jì):RR調(diào)度原理

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)調(diào)度實(shí)現(xiàn)特性的關(guān)鍵部分

    1、綜述  Linux作為多任務(wù)、多用戶的操作系統(tǒng),其進(jìn)程/線程調(diào)度管理是實(shí)現(xiàn)這些特性的關(guān)鍵部分。調(diào)度管理決定系統(tǒng)中的眾多線程中哪個(gè)線程獲得執(zhí)行、什么時(shí)候開始執(zhí)行、執(zhí)行多久。一個(gè)好的調(diào)度
    發(fā)表于 07-05 07:05

    干貨分享:基于嵌入式Linux中進(jìn)程調(diào)度實(shí)現(xiàn)方法

    和網(wǎng)絡(luò)協(xié)議。 1. 前言處理機(jī)(CPU)是整個(gè)計(jì)算機(jī)系統(tǒng)的核心資源,在多進(jìn)程的操作系統(tǒng)中,進(jìn)程數(shù)往往多于處理機(jī)數(shù),這將導(dǎo)致各進(jìn)程互相爭(zhēng)奪處理機(jī)。進(jìn)程調(diào)度對(duì)系統(tǒng)功能的實(shí)現(xiàn) 及各方面的性能都有著決定性
    發(fā)表于 12-10 14:17

    請(qǐng)問FreeRTOS是如何實(shí)現(xiàn)調(diào)度的?

    了stm32的官方例程,原理上的東西大致懂了,可在程序中是如何實(shí)現(xiàn)的呢,C語(yǔ)言障礙,沒看懂。首先是調(diào)度函數(shù),函數(shù)函數(shù)是如何執(zhí)行的呢?如下圖,新建任務(wù)后執(zhí)行調(diào)度函數(shù),為什么沒用循環(huán),調(diào)度
    發(fā)表于 07-30 07:40

    Microchip單片機(jī)固定時(shí)間片輪詢調(diào)度匯編代碼 精選資料分享

    這是一個(gè)能在PIC16F877A開發(fā)板上運(yùn)行的固定時(shí)間片輪詢調(diào)度匯編程序代碼。為什么要用時(shí)間片輪詢調(diào)度?假如我們要寫一個(gè)單片機(jī)程序,程序的目的就是用GPIO控制一個(gè)燈亮一秒再暗一秒…最
    發(fā)表于 07-13 08:53

    Microchip單片機(jī)固定時(shí)間片輪詢調(diào)度匯編代碼 精選資料推薦

    這是一個(gè)能在PIC16F877A開發(fā)板上運(yùn)行的固定時(shí)間片輪詢調(diào)度匯編程序代碼。為什么要用時(shí)間片輪詢調(diào)度?假如我們要寫一個(gè)單片機(jī)程序,程序的目的就是用GPIO控制一個(gè)燈亮一秒再暗一秒…最
    發(fā)表于 07-13 08:14

    基于PIC16F877A開發(fā)板的固定時(shí)間片輪詢調(diào)度匯編程序干了啥

    為什么要用時(shí)間片輪詢調(diào)度?基于PIC16F877A開發(fā)板的固定時(shí)間片輪詢調(diào)度匯編程序干了啥?
    發(fā)表于 08-02 07:36

    STM32是怎樣去實(shí)現(xiàn)軟件時(shí)間片調(diào)度

    STM32 實(shí)現(xiàn)軟件時(shí)間片調(diào)度前言:在有些時(shí)候嵌入式系統(tǒng)不需要上RTOS的情況下,使用一個(gè)while大循環(huán),有可能會(huì)造成一層while套一層while的情況出現(xiàn).為了解決這種情況(更好的裝X).這里
    發(fā)表于 08-24 07:33

    基于FPGA的輪詢合路的設(shè)計(jì)和實(shí)現(xiàn)

    針對(duì)高密度接口設(shè)計(jì)中基于字節(jié)處理和整包處理的轉(zhuǎn)換問題,本文提出了分片輪詢調(diào)度和改進(jìn)式欠賬輪詢調(diào)度相結(jié)合的調(diào)度策略,該策略在很大程度上保證了公
    發(fā)表于 08-09 15:30 ?21次下載

    基于SDH芯片的S19202的輪詢合路的設(shè)計(jì)

    針對(duì)高密度接口設(shè)計(jì)中基于字節(jié)處理和整包處理的轉(zhuǎn)換問題,本文提出了分片輪詢調(diào)度和改進(jìn)式欠賬輪詢調(diào)度相結(jié)合的調(diào)度策略,該策略在很大程度上保證了公
    發(fā)表于 07-31 09:23 ?943次閱讀
    基于SDH芯片的S19202的<b class='flag-5'>輪詢</b>合路的設(shè)計(jì)

    數(shù)字系統(tǒng)設(shè)計(jì):VERILOG實(shí)現(xiàn)

    數(shù)字系統(tǒng)設(shè)計(jì):VERILOG實(shí)現(xiàn) (第2版)
    發(fā)表于 11-30 10:21 ?0次下載

    Microchip單片機(jī)固定時(shí)間片輪詢調(diào)度匯編代碼

    這是一個(gè)能在PIC16F877A開發(fā)板上運(yùn)行的固定時(shí)間片輪詢調(diào)度匯編程序代碼。為什么要用時(shí)間片輪詢調(diào)度?假如我們要寫一個(gè)單片機(jī)程序,程序的目的就是用GPIO控制一個(gè)燈亮一秒再暗一秒…最
    發(fā)表于 11-16 16:21 ?4次下載
    Microchip單片機(jī)固定時(shí)間片<b class='flag-5'>輪詢</b><b class='flag-5'>調(diào)度</b>匯編代碼

    STM32 操作系統(tǒng)內(nèi)核調(diào)度原理與實(shí)現(xiàn)(1):輪詢系統(tǒng),前后臺(tái)系統(tǒng)與多線程系統(tǒng)

    一、輪詢系統(tǒng)輪詢系統(tǒng)是 MCU 中最簡(jiǎn)單的入門系統(tǒng),它的程序結(jié)構(gòu)是通常只需要一個(gè) While(1)或For(;;)死循環(huán)來實(shí)現(xiàn)://程序清單 1.1......int main(void
    發(fā)表于 12-07 19:36 ?7次下載
    STM32 操作系統(tǒng)內(nèi)核<b class='flag-5'>調(diào)度</b>原理與<b class='flag-5'>實(shí)現(xiàn)</b>(1):<b class='flag-5'>輪詢</b>系統(tǒng),前后臺(tái)系統(tǒng)與多線程系統(tǒng)

    IC設(shè)計(jì)的特殊信號(hào)打拍方式及RR輪詢調(diào)度

    Axi總線打拍模塊通常會(huì)采用特殊設(shè)計(jì)的IP模塊,將所有axi總線信號(hào)互聯(lián)到axi打拍ip上,起到一個(gè)橋接的作用,能夠解決時(shí)序問題。
    發(fā)表于 10-03 15:26 ?1387次閱讀

    IC設(shè)計(jì)之Verilog代碼規(guī)范

    Verilog規(guī)范對(duì)于一個(gè)好的IC設(shè)計(jì)至關(guān)重要。
    的頭像 發(fā)表于 08-17 10:14 ?1541次閱讀
    <b class='flag-5'>IC</b>設(shè)計(jì)之<b class='flag-5'>Verilog</b>代碼規(guī)范

    RR輪詢調(diào)度?Verilog是如何實(shí)現(xiàn)RR輪詢調(diào)度的?

    在設(shè)計(jì)中,我們經(jīng)常會(huì)用到RR(Round-Robin,RR輪詢調(diào)度,用于保證在一個(gè)時(shí)間段內(nèi)的多個(gè)請(qǐng)求信號(hào)都能得到公平響應(yīng)。
    的頭像 發(fā)表于 09-28 09:55 ?3997次閱讀
    <b class='flag-5'>RR</b><b class='flag-5'>輪詢</b><b class='flag-5'>調(diào)度</b>?<b class='flag-5'>Verilog</b>是如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>RR</b><b class='flag-5'>輪詢</b><b class='flag-5'>調(diào)度</b>的?