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

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

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

Cocotb驗證平臺時鐘的產(chǎn)生代碼

星星科技指導(dǎo)員 ? 來源:eetop ? 作者:eetop ? 2024-01-08 16:26 ? 次閱讀

時鐘芯片驗證過程中最基本也是最重要的決定因素,一個精確的時鐘產(chǎn)生對時鐘敏感的電路來說至關(guān)重要。

Cocotb平臺中內(nèi)建了時鐘產(chǎn)生的函數(shù)Clock()。Clock函數(shù)在官網(wǎng)上的描述如下:

1611928209387594.png

Clock函數(shù)一共有三個形參,分別為:

signal:驅(qū)動的時鐘信號,如dut.clk

period:時鐘周期,必須為偶數(shù)個時間單位

units:時間單位,可以為“飛秒”、“皮秒”、“納秒”、“微秒”、“毫秒”、“秒”等時間單位;同時支持“時間步”,此時則協(xié)同“COCOTB_HDL_TIMEPRECISION”來決定具體的時間單位。

Clock的構(gòu)造實例如下:

方式一:c = Clock(dut.clk, 10, 'ns')

cocotb.fork(c.start())

方式二:cocotb.fork(Clock(dut.clk, 10, units='ns').start())

產(chǎn)生的效果如下:

1611929705388769.png

當(dāng)時鐘周期為奇數(shù)時則會報相關(guān)系統(tǒng)錯誤

1611929848478897.png

當(dāng)希望產(chǎn)生一個520.13MHz頻率的時鐘時,時鐘周期為1.922596274008421ns,為了產(chǎn)生精度較高的520.13MHz時鐘時,可以采用不同的時間單位來構(gòu)造該時鐘。

1、采用時間單位為“ns”,時鐘周期四舍五入取值為2ns

1611930874942098.png

1611930499664154.png

2、采用時間單位為“ps”,時鐘周期四舍五入取值為1923ps,周期要求偶數(shù)則取值為1924ps

1611930846826794.png

1611930642571052.png

3、采用時間單位為“fs”,時鐘周期四舍五入取值為1922596fs

1611930801909873.png

1611930754168102.png

Clock函數(shù)采用不同的時間單位時需要確保與代碼的timescale匹配,也就是說Clock函數(shù)的時間單位應(yīng)大于等于timescale的時間單位。

以上產(chǎn)生的時鐘均為占空比1:1的時鐘,當(dāng)用戶需要產(chǎn)生占空比非1:1的時鐘時,可以參考如下代碼的實現(xiàn):

1611931447585104.png

當(dāng)用戶需要做時鐘的動態(tài)調(diào)整時,可以參考如下的代碼實現(xiàn):

1611931502467345.png


審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    453

    文章

    50254

    瀏覽量

    421123
  • 時鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1716

    瀏覽量

    131292
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4286

    瀏覽量

    62341
  • 時鐘信號
    +關(guān)注

    關(guān)注

    4

    文章

    443

    瀏覽量

    28494
收藏 人收藏

    評論

    相關(guān)推薦

    SoC驗證平臺的FPGA綜合怎么實現(xiàn)?

    先進的設(shè)計與仿真驗證方法成為SoC設(shè)計成功的關(guān)鍵。一個簡單可行的SoC驗證平臺,可以加快SoC系統(tǒng)的開發(fā)與驗證過程。FPGA器件的主要開發(fā)供應(yīng)商都針對自己的產(chǎn)品推出了SoC系統(tǒng)的開發(fā)
    發(fā)表于 10-11 07:07

    驗證方法簡介

    使用,使其成為現(xiàn)有的唯一適合追求高質(zhì)量代碼和低錯誤率的設(shè)計和驗證工程師的 SystemVerilog 測試框架。 用于驗證工程師的 SVUnit 在用于子系統(tǒng)或芯片/產(chǎn)品級測試平臺之前
    發(fā)表于 02-13 17:03

    Python硬件驗證——摘要

    - 為什么選擇 Python?如何使用 Python 進行驗證(測試平臺)? Cocotb -(CO-routine 和 CO-simulation 的Testbench)可能是事實上的 標準Python
    發(fā)表于 11-03 13:07

    基于FPGA的NoC驗證平臺的構(gòu)建

    針對基于軟件仿真片上網(wǎng)絡(luò)NoC(Network on Chip)效率低的問題,提出基于FPGA的NoC驗證平臺構(gòu)建方案。該平臺集成可重用的流量產(chǎn)生器TG(Traffic Generat
    發(fā)表于 01-04 16:24 ?12次下載

    基于PCI接口的IP驗證平臺

    IP核驗證平臺采用6層板PCB設(shè)計,使用獨立的外部時鐘同步芯片,可以為PCI及其它接口提供穩(wěn)定的零延遲時鐘系統(tǒng)電路,滿足PCI總線的時鐘要求
    發(fā)表于 01-17 14:02 ?1804次閱讀
    基于PCI接口的IP<b class='flag-5'>驗證</b><b class='flag-5'>平臺</b>

    基于System Verilog的可重用驗證平臺設(shè)計及驗證結(jié)果分析

    采用System Verilog語言設(shè)計了一種具有層次化結(jié)構(gòu)的可重用驗證平臺,該平臺能夠產(chǎn)生各種隨機、定向、錯誤測試向量,并提供功能覆蓋率計算。將
    發(fā)表于 01-12 11:28 ?2626次閱讀
    基于System Verilog的可重用<b class='flag-5'>驗證</b><b class='flag-5'>平臺</b>設(shè)計及<b class='flag-5'>驗證</b>結(jié)果分析

    超低抖動時鐘產(chǎn)生與分配

    超低抖動時鐘產(chǎn)生與分配
    發(fā)表于 04-18 14:13 ?8次下載
    超低抖動<b class='flag-5'>時鐘</b>的<b class='flag-5'>產(chǎn)生</b>與分配

    PLL設(shè)計和時鐘頻率產(chǎn)生

    PLL設(shè)計和時鐘頻率產(chǎn)生機理免費下載。
    發(fā)表于 06-07 14:36 ?22次下載

    基于python的用于構(gòu)建仿真及測試用例的lib庫cocotb

    ?? ????對于從事ASIC行業(yè)及FPGA行業(yè)的小伙伴來說,仿真是一件必不可少的事情?;蛟S有人是驗證大拿,UVM高手,但相較于軟件豐富的驗證框架,對于各種各樣的場景單純的SV構(gòu)建測試用例是否便捷
    的頭像 發(fā)表于 10-13 17:01 ?6638次閱讀
    基于python的用于構(gòu)建仿真及測試用例的lib庫<b class='flag-5'>cocotb</b>

    cocotb中的基礎(chǔ)語法

    cocotb的出現(xiàn)使得我們能夠在做RTL仿真驗證時依托Python來進行測試用例的構(gòu)建,當(dāng)我們習(xí)慣了用Verilog、SystemVerilog來構(gòu)建測試用例時,切換到cocotb后最直觀的方式便是我們能夠建立
    的頭像 發(fā)表于 07-21 09:18 ?2302次閱讀

    cocotb的安裝、python tb文件的寫法

    設(shè)置默認仿真器為cadence xcellium,RTL語言選verilog,指定RTL頂層模塊名字(就是dut的名字),testbench的名字為tb,最后include一個cocotb共用的makefile。
    的頭像 發(fā)表于 09-21 11:33 ?3365次閱讀

    基于Simulink代碼生成的FPGA信號處理系統(tǒng)仿真驗證平臺

    時,仍然需要手動編寫代碼搭建仿真平臺[2],生成仿真激勵,效率較低。信號處理系統(tǒng)往往包含大量復(fù)雜的算法[3],對于驗證人員編寫代碼的經(jīng)驗及技能要求較高。
    的頭像 發(fā)表于 11-04 16:24 ?2184次閱讀

    移動SoC的時鐘驗證

    些更低的幾何尺寸下設(shè)計和驗證時鐘帶來了越來越多的復(fù)雜性和驗證挑戰(zhàn)。在這種快速發(fā)展的形勢下,必須重新評估當(dāng)前的時鐘驗證方法,以確保最佳的
    的頭像 發(fā)表于 07-17 10:12 ?713次閱讀
    移動SoC的<b class='flag-5'>時鐘</b><b class='flag-5'>驗證</b>

    時鐘信號怎么產(chǎn)生

    時鐘信號怎么產(chǎn)生時鐘信號是一種重要的信號,它在電子設(shè)備中廣泛應(yīng)用。時鐘信號的產(chǎn)生與傳輸是現(xiàn)代電子設(shè)備中不可或缺的基礎(chǔ)技術(shù)之一。
    的頭像 發(fā)表于 09-15 16:28 ?2419次閱讀

    用python寫驗證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、用xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發(fā)表于 07-24 09:38 ?453次閱讀
    用python寫<b class='flag-5'>驗證</b>環(huán)境<b class='flag-5'>cocotb</b>