時鐘是芯片驗證過程中最基本也是最重要的決定因素,一個精確的時鐘產生對時鐘敏感的電路來說至關重要。
Cocotb平臺中內建了時鐘產生的函數Clock()。Clock函數在官網上的描述如下:
Clock函數一共有三個形參,分別為:
signal:驅動的時鐘信號,如dut.clk
period:時鐘周期,必須為偶數個時間單位
units:時間單位,可以為“飛秒”、“皮秒”、“納秒”、“微秒”、“毫秒”、“秒”等時間單位;同時支持“時間步”,此時則協同“COCOTB_HDL_TIMEPRECISION”來決定具體的時間單位。
Clock的構造實例如下:
方式一:c = Clock(dut.clk, 10, 'ns')
cocotb.fork(c.start())
方式二:cocotb.fork(Clock(dut.clk, 10, units='ns').start())
產生的效果如下:
當時鐘周期為奇數時則會報相關系統錯誤
當希望產生一個520.13MHz頻率的時鐘時,時鐘周期為1.922596274008421ns,為了產生精度較高的520.13MHz時鐘時,可以采用不同的時間單位來構造該時鐘。
1、采用時間單位為“ns”,時鐘周期四舍五入取值為2ns
2、采用時間單位為“ps”,時鐘周期四舍五入取值為1923ps,周期要求偶數則取值為1924ps
3、采用時間單位為“fs”,時鐘周期四舍五入取值為1922596fs
Clock函數采用不同的時間單位時需要確保與代碼的timescale匹配,也就是說Clock函數的時間單位應大于等于timescale的時間單位。
以上產生的時鐘均為占空比1:1的時鐘,當用戶需要產生占空比非1:1的時鐘時,可以參考如下代碼的實現:
當用戶需要做時鐘的動態調整時,可以參考如下的代碼實現:
審核編輯:黃飛
-
芯片
+關注
關注
456文章
51192瀏覽量
427336 -
時鐘
+關注
關注
11文章
1747瀏覽量
131804 -
函數
+關注
關注
3文章
4346瀏覽量
62979 -
時鐘信號
+關注
關注
4文章
453瀏覽量
28666
發布評論請先 登錄
相關推薦
SoC驗證平臺的FPGA綜合怎么實現?
驗證方法簡介
Python硬件驗證——摘要
基于FPGA的NoC驗證平臺的構建
基于PCI接口的IP驗證平臺
![基于PCI接口的IP<b class='flag-5'>驗證</b><b class='flag-5'>平臺</b>](https://file1.elecfans.com//web2/M00/A6/1C/wKgZomUMO8iAYTbIAAAZEDLzyfY066.jpg)
基于System Verilog的可重用驗證平臺設計及驗證結果分析
![基于System Verilog的可重用<b class='flag-5'>驗證</b><b class='flag-5'>平臺</b>設計及<b class='flag-5'>驗證</b>結果分析](https://file1.elecfans.com//web2/M00/A7/27/wKgZomUMQrWAM1i9AAAnoQRwVDc843.gif)
基于python的用于構建仿真及測試用例的lib庫cocotb
![基于python的用于構建仿真及測試用例的lib庫<b class='flag-5'>cocotb</b>](https://file.elecfans.com/web2/M00/17/B8/pYYBAGFmpOGANtGLAAAhsY4h7WU025.png)
評論