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

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

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

Cocotb驗(yàn)證平臺(tái)時(shí)鐘的產(chǎn)生代碼

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

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

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

1611928209387594.png

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

signal:驅(qū)動(dòng)的時(shí)鐘信號(hào),如dut.clk

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

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

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

方式一: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í)鐘周期為奇數(shù)時(shí)則會(huì)報(bào)相關(guān)系統(tǒng)錯(cuò)誤

1611929848478897.png

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

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

1611930874942098.png

1611930499664154.png

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

1611930846826794.png

1611930642571052.png

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

1611930801909873.png

1611930754168102.png

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

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

1611931447585104.png

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

1611931502467345.png


審核編輯:黃飛

聲明:本文內(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)注

    452

    文章

    50056

    瀏覽量

    419928
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1706

    瀏覽量

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

    關(guān)注

    3

    文章

    4265

    瀏覽量

    62262
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    442

    瀏覽量

    28477
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SoC驗(yàn)證平臺(tái)的FPGA綜合怎么實(shí)現(xiàn)?

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

    驗(yàn)證方法簡介

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

    Python硬件驗(yàn)證——摘要

    - 為什么選擇 Python?如何使用 Python 進(jìn)行驗(yàn)證(測(cè)試平臺(tái))? Cocotb -(CO-routine 和 CO-simulation 的Testbench)可能是事實(shí)上的 標(biāo)準(zhǔn)Python
    發(fā)表于 11-03 13:07

    基于FPGA的NoC驗(yàn)證平臺(tái)的構(gòu)建

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

    基于PCI接口的IP驗(yàn)證平臺(tái)

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

    基于System Verilog的可重用驗(yàn)證平臺(tái)設(shè)計(jì)及驗(yàn)證結(jié)果分析

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

    超低抖動(dòng)時(shí)鐘產(chǎn)生與分配

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

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

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

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

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

    cocotb中的基礎(chǔ)語法

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

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

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

    基于Simulink代碼生成的FPGA信號(hào)處理系統(tǒng)仿真驗(yàn)證平臺(tái)

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

    移動(dòng)SoC的時(shí)鐘驗(yàn)證

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

    時(shí)鐘信號(hào)怎么產(chǎn)生

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

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

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