svinterface高级用法

更新时间:2023-05-25 06:49:17 阅读: 评论:0

svinterface⾼级⽤法
1、interface:
interface 中的信号必须声明为logic,因为reg只允许在always块中赋值,wire⾄允许assign赋值,bit是两态,logic是四态的,且可以阻塞赋值也可以⾮阻塞赋值。
最新电影推荐1、clocking block
clocking规定了信号之间的时序关系。
牛津小学英语1a教案
// To wait for podge of clock
@busIf.cb_clk;
// To u clocking block signals
busIf.able = 1;
2、modport
modport明确了站在不同的⾓度对应信号的输⼊输出⽅向。
3. parametered interface
bigotinterface myBus #(parameter D_WIDTH=31) (input clk);
logic [D_WIDTH-1:0] data;
wagonlogic              enable;
endinterface
2、interface中定义task和function
task read_memory(input logic [7:0] raddr, output logic [7:0] data);
@(podge clk);
ren=1'b0;
addr=raddr;
@(negedge mrdy);
@(podge clk);
data=m2c_data;
soon什么意思
ren=1'b1;
stationary
endtask
接⼝可以直接调⽤task,来完成信号的赋值。
drenched什么意思3、interface中定义always块
8bit到10bit的转换有专门的算法encode_8b10b完成。通常来说,可以在driver中完成这种转换,并将串⾏的数据驱动到接⼝上:
==================================================================================================由于8b10b转换的动作适⽤于任意要驱动的数据,换⾔之,这是⼀个“always”的动作,因此可以在interface中使⽤always语句:
相应的,数据在driver中可以只驱动到interface的并⾏接⼝上即可:
================================================================================================== 4、interface中定义initial 块
interface  clk_rst_if();
离开的英文logic    clk;
logic    rstn;
initial begin
clk <= 0;
forever begin
#5ns  clk <= !clk;
end
end
initial beginchair怎么读
#20ns ;
rstn <= 1;
#40ns ;
rstn <= 0;
#20ns ;
victoria acostarstn <= 1;
end
endinterface
5、使⽤interface替代driver部分功能
上⾯的uvm实战中的代码⽤interface代替driver部分功能的举例说明
第⼀个好处是可以让driver从底层繁杂的数据处理中解脱出来,更加专注于处理⾼层数据。
第⼆个好处是有更多的数据出现在interface中,这会对调试起到很⼤的帮助。 interface可以查看信号的波形,但是uvm component中很难查看信号波形。

本文发布于:2023-05-25 06:49:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/121788.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   赋值   数据   起到   转换   部分
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图