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ì)知識(shí)點(diǎn):一種簡(jiǎn)單超時(shí)機(jī)制

倩倩 ? 來(lái)源:CSDN ? 作者:CSDN ? 2022-09-21 15:28 ? 次閱讀
IC設(shè)計(jì)知識(shí)點(diǎn):一種簡(jiǎn)單超時(shí)機(jī)制

1、超時(shí)判斷機(jī)制

在設(shè)計(jì)中,為了增加異常處理能力,保證設(shè)備的正常運(yùn)行,常常需要進(jìn)行超時(shí)判斷。

如下圖,當(dāng)master發(fā)起mem讀請(qǐng)求后,收到讀返回?cái)?shù)據(jù)時(shí),進(jìn)行超時(shí)判斷,如果超時(shí),則數(shù)據(jù)丟棄,如果沒有超時(shí),則數(shù)據(jù)正常接收。

2、一種簡(jiǎn)單的超時(shí)機(jī)制

如果在數(shù)據(jù)發(fā)送過程中,發(fā)送者向接收者發(fā)送數(shù)據(jù),通常需要接收者通知發(fā)送者自身是否可以接收數(shù)據(jù)

采用一個(gè)公共的32bit clk_cnt作為時(shí)間基準(zhǔn),根據(jù)不同的超時(shí)精度,采用32bit中的連續(xù)2bit,1GHz時(shí)鐘,每個(gè)周期1n,例如采用clk_cnt[20:19],可以記錄2^21ns級(jí)別的精度,即2ms級(jí)別的時(shí)間精度。

本文中master能夠發(fā)起256個(gè)outstanding請(qǐng)求,req_id[7:0]從0到255,且工作時(shí)鐘clk為1Ghz,發(fā)起的mem讀請(qǐng)求,且在1us后都沒有收到數(shù)據(jù),則認(rèn)為超時(shí)。

步驟1:master發(fā)起mem_rd請(qǐng)求時(shí),以req_id作為地址,將clk_cnt[20:19]作為data,寫入256x2 1r1w_ram中。

步驟2:當(dāng)master收到讀返回?cái)?shù)據(jù)時(shí),以req_id作為地址從ram中讀取data,記作clk_cnt_record

步驟3:提取當(dāng)前時(shí)刻clk_cnt[20:19],記錄為clk_cnt_now,如果clk_cnt_now-clk_cnt_record 的絕對(duì)值大于1,則表示超時(shí)。

案例:

clk_cnt_record 為 10,clk_cnt_now為00,則表示超時(shí)。

clk_cnt_record 為 10,clk_cnt_now為11,則認(rèn)為不超時(shí)。

9aabe9e8-397d-11ed-9e49-dac502259ad0.png

3、特點(diǎn)說明

優(yōu)點(diǎn):此類設(shè)計(jì)比較簡(jiǎn)單,所需的邏輯資源較少,并且可以調(diào)節(jié)超時(shí)時(shí)間精度。

缺點(diǎn):

1.如果超時(shí)時(shí)間過長(zhǎng),已經(jīng)從clk_cnt_record翻轉(zhuǎn)了一圈再返回時(shí),則無(wú)法判斷是否為超時(shí)。即clk_cnt_record(10)-->11-->00-->01-->10-->11(clk_cnt_now),實(shí)際已超時(shí),但是判斷為沒有超時(shí)。

2.沒有讀返回?cái)?shù)據(jù)時(shí),無(wú)法判斷是否超時(shí)。

verilog語(yǔ)法:幾種可綜合的for循環(huán)語(yǔ)句9a885be0-397d-11ed-9e49-dac502259ad0.png

1、采用int實(shí)現(xiàn)不同信號(hào)賦值的循環(huán)

在同一個(gè).v文件中,在不同的場(chǎng)景中,我們想例化不同的ram,如果不使用宏定義,那么該怎么實(shí)現(xiàn)呢?

直接采用for(int*)類型格式,可以在一個(gè)else分支中使用,不需要使用generate,使用更加靈活,使用范圍更廣。

input [1024-1:0]  func_mode_in;reg   [512-1:0]    func_id_vld;  always@(posedge  clk)    if(~rst_n) begin       func_id_vld <= 512'b0 ;    end else begin        for(int i=0; i<512;i=i+1) begin : func_id_vld_gen            func_id_vld[i] <= (func_mode_in[2*i+:2]==2'b01) ;        end    end

2、采用int實(shí)現(xiàn)同一個(gè)信號(hào)賦值的循環(huán)

下圖所示,采用for(int*)類型格式實(shí)現(xiàn)了一個(gè)16mux1的循環(huán)賦值語(yǔ)句,實(shí)現(xiàn)不同條件一下,對(duì)debug_test_16mux1的賦值操作,即16mux1的邏輯。

input [128*16-1:0]  debug_test_in;input [4-1:0]       cfg_16mux1_mode;reg   [128-1:0]     debug_test_16mux1;  always@(*) begin    debug_test_16mux1 = 128'd0;      for(int i=0; i<16;i=i+1) begin : debug_test_16mux1_gen        if(cfg_16mux1_mode ==i) begin            debug_test_16mux1  =  debug_test_in[128*i+:128] ;            break ;        end    endend

如上for循環(huán)語(yǔ)句實(shí)現(xiàn)了如下的case語(yǔ)句效果

always@(*) begin  case(cfg_16mux1_mode)  0 : debug_test_16mux1  =  debug_test_in[127  :0    ];  1 : debug_test_16mux1  =  debug_test_in[255  :128  ];  2 : debug_test_16mux1  =  debug_test_in[383  :256  ];  3 : debug_test_16mux1  =  debug_test_in[511  :384  ];  4 : debug_test_16mux1  =  debug_test_in[639  :512  ];  5 : debug_test_16mux1  =  debug_test_in[767  :640  ];  6 : debug_test_16mux1  =  debug_test_in[895  :768  ];  7 : debug_test_16mux1  =  debug_test_in[1023 :896  ];  8 : debug_test_16mux1  =  debug_test_in[1151 :1024 ];  9 : debug_test_16mux1  =  debug_test_in[1279 :1152 ];  10: debug_test_16mux1  =  debug_test_in[1407 :1280 ];  11: debug_test_16mux1  =  debug_test_in[1535 :1408 ];  12: debug_test_16mux1  =  debug_test_in[1663 :1536 ];  13: debug_test_16mux1  =  debug_test_in[1791 :1664 ];  14: debug_test_16mux1  =  debug_test_in[1919 :1792 ];  15: debug_test_16mux1  =  debug_test_in ;  endcase  end

NOTE:在for(int*)語(yǔ)句中,debug_test_16mux1 = debug_test_in[128*i+127:128*i] ; 會(huì)報(bào)語(yǔ)法錯(cuò)誤,語(yǔ)法錯(cuò)誤,只識(shí)別debug_test_in[128*i+:128]而無(wú)法識(shí)別debug_test_in[128*i+127:128*i] ,否則VCS會(huì)報(bào)語(yǔ)法錯(cuò)誤。

審核編輯 :李倩


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

    關(guān)注

    8

    文章

    6837

    瀏覽量

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

    關(guān)注

    37

    文章

    1290

    瀏覽量

    103699
  • 機(jī)制
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    9771

原文標(biāo)題:IC知識(shí)點(diǎn):超時(shí)機(jī)制、verilog語(yǔ)法

文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    socket 連接超時(shí)處理技巧

    在網(wǎng)絡(luò)編程中,Socket連接超時(shí)個(gè)常見的問題。處理超時(shí)的關(guān)鍵在于確保程序能夠優(yōu)雅地處理這些情況,避免程序崩潰或者無(wú)響應(yīng)。以下是些處理Socket連接
    的頭像 發(fā)表于 11-12 14:13 ?90次閱讀

    一種簡(jiǎn)單高效配置FPGA的方法

    本文描述了一種簡(jiǎn)單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設(shè)備。這種方法減少了硬件組件、板空間和成本。
    的頭像 發(fā)表于 10-24 14:57 ?282次閱讀
    <b class='flag-5'>一種</b><b class='flag-5'>簡(jiǎn)單</b>高效配置FPGA的方法

    espconn_gethostbyname接口DNS解析超時(shí)機(jī)制要自己做嗎?

    espconn_gethostbyname這個(gè)接口,DNS解析超時(shí)機(jī)制要自己做嗎?,這個(gè)接口的回調(diào)函數(shù)是如何觸發(fā)的,有沒有超時(shí)觸發(fā)機(jī)制
    發(fā)表于 07-12 12:29

    模擬電子技術(shù)知識(shí)點(diǎn)問題總結(jié)概覽

    給大家分享模擬電子技術(shù)知識(shí)點(diǎn)問題總結(jié)。
    的頭像 發(fā)表于 05-08 15:16 ?1080次閱讀
    模擬電子技術(shù)<b class='flag-5'>知識(shí)點(diǎn)</b>問題總結(jié)概覽

    汽車MCU芯片知識(shí)點(diǎn)梳理

    作者|北灣南巷出品|汽車電子與軟件隨著科技的飛速發(fā)展,汽車行業(yè)也在經(jīng)歷著前所未有的變革。從傳統(tǒng)的內(nèi)燃機(jī)汽車到新能源汽車,再到如今的智能汽車,汽車已經(jīng)不再僅僅是一種交通工具,而是成為了人們生活中的一種
    的頭像 發(fā)表于 04-16 08:10 ?2432次閱讀
    汽車MCU芯片<b class='flag-5'>知識(shí)點(diǎn)</b>梳理

    篇搞定DCS系統(tǒng)相關(guān)知識(shí)點(diǎn)

    目標(biāo)。DCS系統(tǒng)廣泛應(yīng)用于各個(gè)行業(yè),如化工、電力、制藥等。在這些行業(yè)中,DCS系統(tǒng)可以實(shí)現(xiàn)對(duì)生產(chǎn)過程的集中監(jiān)控和分散控制,提高生產(chǎn)效率和產(chǎn)品質(zhì)量,降低能耗和減少環(huán)境污染,從而保證產(chǎn)品質(zhì)量,并確保生產(chǎn)過程的安全可靠。 二.DCS系統(tǒng)知識(shí)點(diǎn)
    的頭像 發(fā)表于 03-26 18:40 ?785次閱讀
    <b class='flag-5'>一</b>篇搞定DCS系統(tǒng)相關(guān)<b class='flag-5'>知識(shí)點(diǎn)</b>

    【量子計(jì)算機(jī)重構(gòu)未來(lái) | 閱讀體驗(yàn)】第二章關(guān)鍵知識(shí)點(diǎn)

    本帖最后由 oxlm_1 于 2024-3-6 23:20 編輯 之所以將第二章單獨(dú)拿出來(lái),是因?yàn)樵陂喿x過程中,發(fā)現(xiàn)第二章知識(shí)點(diǎn)較多,理解起來(lái)比較耗時(shí)間。 第二章的主要知識(shí)點(diǎn): 量子
    發(fā)表于 03-06 23:17

    flymcu芯片超時(shí)無(wú)應(yīng)答,無(wú)法連接

    flymcu芯片是一種集成電路,廣泛應(yīng)用于嵌入式系統(tǒng)和智能設(shè)備中。然而,有時(shí)候用戶會(huì)遇到些問題,比如芯片超時(shí)無(wú)應(yīng)答、無(wú)法連接等。本文將從幾個(gè)方面詳細(xì)分析這些問題并提供解決方案,以幫助讀者更好地理
    的頭像 發(fā)表于 12-27 10:39 ?7349次閱讀

    淺談初級(jí)電工必備知識(shí)點(diǎn)

    對(duì)于初學(xué)電工的朋友來(lái)說,掌握些基礎(chǔ)且實(shí)用的知識(shí)點(diǎn)是非常重要的。本文旨在分享初級(jí)電工應(yīng)該掌握的核心知識(shí),幫助新手電工更好地入門和提升技能。
    的頭像 發(fā)表于 12-26 10:44 ?1010次閱讀

    TCP協(xié)議面試常問知識(shí)點(diǎn)總結(jié)

    TCP 作為傳輸層的協(xié)議,是個(gè)IT工程師素養(yǎng)的體現(xiàn),也是面試中經(jīng)常被問到的知識(shí)點(diǎn)。在此,我將 TCP 核心的些問題梳理了下,希望能幫到各位。
    的頭像 發(fā)表于 12-15 10:38 ?753次閱讀
    TCP協(xié)議面試常問<b class='flag-5'>知識(shí)點(diǎn)</b>總結(jié)

    開關(guān)模式下的電源電流如何檢測(cè)?這12個(gè)電路&amp;10個(gè)知識(shí)點(diǎn)講明白了

    開關(guān)模式下的電源電流如何檢測(cè)?這12個(gè)電路&10個(gè)知識(shí)點(diǎn)講明白了
    的頭像 發(fā)表于 12-06 16:04 ?747次閱讀
    開關(guān)模式下的電源電流如何檢測(cè)?這12個(gè)電路&amp;10個(gè)<b class='flag-5'>知識(shí)點(diǎn)</b>講明白了

    c語(yǔ)言程序設(shè)計(jì)基礎(chǔ)知識(shí)點(diǎn)

    C語(yǔ)言是一種通用的高級(jí)編程語(yǔ)言,廣泛應(yīng)用于系統(tǒng)軟件、應(yīng)用程序和嵌入式系統(tǒng)的開發(fā)。它是一種結(jié)構(gòu)化編程語(yǔ)言,具有強(qiáng)大的功能和高效的執(zhí)行效率,對(duì)計(jì)算機(jī)系統(tǒng)底層操作具有很高的靈活性。本文將詳細(xì)介紹C語(yǔ)言
    的頭像 發(fā)表于 11-27 15:25 ?1577次閱讀

    數(shù)字電位計(jì)知識(shí)點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《數(shù)字電位計(jì)知識(shí)點(diǎn).pdf》資料免費(fèi)下載
    發(fā)表于 11-24 16:08 ?7次下載
    數(shù)字電位計(jì)<b class='flag-5'>知識(shí)點(diǎn)</b>

    三菱和西門子PLC輸入接線知識(shí)點(diǎn)

    三菱和西門子PLC輸入接線知識(shí)點(diǎn)
    的頭像 發(fā)表于 11-21 10:01 ?697次閱讀
    三菱和西門子PLC輸入接線<b class='flag-5'>知識(shí)點(diǎn)</b>

    OFDM技術(shù)知識(shí)點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《OFDM技術(shù)知識(shí)點(diǎn).rar》資料免費(fèi)下載
    發(fā)表于 11-18 14:25 ?1次下載
    OFDM技術(shù)<b class='flag-5'>知識(shí)點(diǎn)</b>