SV过程块(always、initial)

module,interface认为是硬件;program,class认为是软件

过程块:1)always(可综合)

               2)initial(不可综合)

 

always:

可用于module和interface中

always @ (posedge clk)----时序逻辑  " <= "

always @ ( * )----组合逻辑  " = "

eg:上文提到了always具备描述硬件电路行为和核心要素,你认为下列选项哪些是正确使用always的方式?

A. 由时钟驱动    B. 由其他非时钟信号驱动    C. 不同always语句块之间是并行执行的    D. 可以在always中初始化变量

答案:A B C

解析:由时钟驱动就是时序逻辑,由其他非时钟信号驱动就是组合逻辑,所以AB对。

always是并行执行,C对。可以对变量进行复位(rst_n),而不能初始化。D错

initial:(多用于testbench)

initial非常符合软件的执行方式,即只执行一次。

initial和always一样,无法被延迟执行,即在仿真一开始它们都会同时执行,执行时没有先后顺序之分。

initial内部是按时间顺序进行的。

eg:
initial begin
    rst_n = 0  //先复位
    #201
    rst_n = 1  //延时201ns,复位结束
    
    #2000    
    a = 1;
    b = 1;
    #20
    a = 0;
    b = 0;
    #200
    $stop; 
end

initial过程块可以用在module、interface和program中。

 

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SystemVerilog中,interface是一种用于在硬件模和软件类之间进行交互的媒介。它可以在端口列表中定义时钟、复位等公共信号,或者在变量列表中定义需要与设计单元(DUT)和测试台(TB)连接的逻辑变量。通过参数化方式,interface可以提高复用性,使得有对应interface的DUT和TB在实例化时只需传递匹配的interface变量名即可完成接口变量的传递。接口可以用于设计和验证,它使得连接变得简洁且不易出错。与模类似,interface可以定义端口、双相信号,使用initial和always,以及定义function和task。初学者可以将interface看作是一个"插排",用于实现DUT和TB之间的数据驱动关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SV 接口(interface)](https://blog.csdn.net/weixin_45680021/article/details/125753127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [SV学习(3)——接口interface、modport、时钟clocking](https://blog.csdn.net/Bunny9__/article/details/122605991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值