原创 Systemverilog(綠皮書)第四章——連接設計(二)採樣與數據驅動

在仿真的行爲 中,爲了儘量避免時序電路中時鐘和驅動信號的時序競爭問題,我們需要儘量明確驅動時序和採樣時序。 默認情況下,時鐘對於組合電路的驅動會 添加一個無線小 的時間延遲(delta-cycle),驅動信號和被驅動信號之間的延遲。它比最

原创 Systemverilog(綠皮書)第四章——連接設計(一)接口

module top; bit clk; always #5 clk = ~clk; arb_if arbif(clk); //例化一個接口,將時鐘傳入 arb a1 (arbif);

原创 Systemverilog(綠皮書)第五章——類與對象(一)類的概述

如下題目所示: class Transaction logic [31:0] addr = 'h10; logic [31:0] crc,data[8]; function new(logic [31:0] a

原创 Systemverilog(綠皮書)第六章——隨機化(二)約束塊控制

約束的時候通過約束塊控制,實現 衝突約束的不同 情況下的通過。 class Packet; rand int length; //進行兩個衝突的約束length constraint c_short {length i

原创 Systemverilog(綠皮書)第五章——類與對象(二)類的成員

 類的成員具有封裝性,默認的成員類型爲public,有限制的成員類型爲protected和local: class clock local bit is_summer = 0; local int nclock =

原创 Systemverilog(綠皮書)第四章——連接設計(三)測試的開始於結束

module tb; bit clk; initial begin forever #5ns clk <= !clk; end counter dut(clk); init

原创 Systemverilog(綠皮書)第六章——隨機化(一)隨機約束和分佈

class Packet; //The random variable rand bit [31:0] src, dst, data[8]; randc bit [7:0] kind; //Limit

原创 Perl語言中控制結構