日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 芯片驗(yàn)證工程師
[導(dǎo)讀]斷言的英文是Assertion,就是對(duì)一些設(shè)計(jì)屬性的推斷。大型的硬件設(shè)計(jì)中會(huì)有各種各樣的協(xié)議接口。這些協(xié)議接口定義中一般都會(huì)有include文件,這些include文件中包含了接口的斷言描述,主要用于協(xié)議的時(shí)序檢查。除了這種把斷言語(yǔ)句放到接口協(xié)議里還可以放到具體的design里面...

斷言的英文是Assertion,就是對(duì)一些設(shè)計(jì)屬性的推斷。

大型的硬件設(shè)計(jì)中會(huì)有各種各樣的協(xié)議接口。這些協(xié)議接口定義中一般都會(huì)有include文件,這些include文件中包含了接口的斷言描述,主要用于協(xié)議的時(shí)序檢查。

除了這種把斷言語(yǔ)句放到接口協(xié)議里還可以放到具體的design里面,也可以單獨(dú)做成一個(gè)module的checker,把module checker和設(shè)計(jì)bind在一起。

斷言可以用Verilog實(shí)現(xiàn),也可以用SystemVerilog Assertion(SVA)實(shí)現(xiàn)。由于要檢查時(shí)序,過程性語(yǔ)言Verilog并不是很好的選擇,一般會(huì)選擇描述性語(yǔ)言SVA實(shí)現(xiàn),SVA對(duì)時(shí)序的描述近乎完美。

本文講介紹一下SVA的簡(jiǎn)單例子。如果想系統(tǒng)的學(xué)習(xí)SVA,可以買一本書《SystemVerilog Assertions 應(yīng)用指南》。

方法1: 直接放到到design里面的方式如下。

//文件dut.v , dut很簡(jiǎn)單,每個(gè)clk上升沿到來時(shí)對(duì)輸入a取反。`timescale 1ns/1nsmodule DUT (clk,a,b);input clk;input a;output b;reg b; always?@?(posedge?clk?)begin b<=~a;end`include "assertion.svh"endmodule
//文件 test.v`timescale 1ns/1nsmodule TOP;reg clk;reg a;wire b;always #5 clk=~clk;initial begin clk <=0; a <=1;#30?$finish;endDUT dut(.clk(clk),.a(a) ,.b(b));//bind TOP.dut dut_assertion dut_assertion_check(.a_(a),.b_(b),.clk_(clk));endmodule每個(gè)clk上升沿,如果a=0,則是空成功,不滿足第一個(gè)a=1的條件,b就不需要判斷是否等于1,直接判斷為成功。如果a=1,則對(duì)b進(jìn)行判斷,b為1則為成功,否則斷言失敗。

//assertion.svh文件property check_p; @(posedge clk) a |->b;endpropertycheck_a : assert property (check_p);運(yùn)行命令:irun -sv dut.v test.v

ERROR:ncsim:?*E,ASRTST (./assertion.svh,6):?(time 5 NS) Assertion TOP.dut.check_a has failed

ERROR現(xiàn)象符合預(yù)期。


方式2:?jiǎn)为?dú)定義一個(gè)module 檢驗(yàn)器,然后通過bind實(shí)現(xiàn)。

注釋DUT.v 中`include "assertion.svh",打開test.v中的bind。

Module檢驗(yàn)器文件

module dut_assertion(a_,b_,clk_);input logic a_,b_,clk_;property check_p;@(posedge clk_) a_ |->b_;endproperty check_a : assert property (check_p);endmodule運(yùn)行命令:

irun -sv dut.v test.v assertion_module.svERROR:ncsim: *E,ASRTST (./assertion_module.sv,12): (time 5 NS) Assertion TOP.dut.dut_assertion_check.check_a has failed

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。

芯片驗(yàn)證工程師

85 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉