SystemVerilog语法基础

您所在的位置:网站首页 assign与always SystemVerilog语法基础

SystemVerilog语法基础

2023-10-04 09:56| 来源: 网络整理| 查看: 265

电路语句(三):always_comb 前言一、always_comb二、always_comb中的控制语句:caseunique case(独特)priority case(优先级) 三、always_comb中的控制语句:if和foriffor

前言

视频语法学习:B站链接 笔记原地址:https://github.com/Tan-YiFan/DigitalLogic-Autumn2020/tree/syntax/syntax网络不好,可能打不开。

一、always_comb

always_comb用于描述复杂电路,comb是combination组合的意思。该模块中输出是等号的左边,输入是等号的右边。

always_comb begin//串行语言描述 a = 1'b1; b = a; a = 1'b0; c = a; end

always_comb内部每条语句都是赋值语句。不能出现电路语句。

always_comb内部描述电路行为。

always_comb有以下性质: 内部覆盖性(如:上例中,a赋值了两遍)

对外原子性(begin…end的内部会影响外面的assign a = b)

assign a = b; always_comb begin b = 1'b1; c = a; // 区别于c = b,c = b此处c=1 b = 1'b0; end //对外的结果b=0,a=0,c=0

阻塞赋值

always_comb内部允许if,case等控制语句。

二、always_comb中的控制语句:case

case语句常用于描述选择器和译码器。case类似于c的switch语句

unique case(独特) always_comb begin b = 1'b0; unique case (a[3:0]) 4'd1: begin b = 1'b1; end 4'd0: begin b = 1'b0; end default: begin b = 1'b0; // b = b;//形成锁存器,该语句不正确 end endcase end

如果没列举所有情况且没有default,如何? 答:缺少可选择的项,等待,可能形成锁存器

priority case(优先级)

语义上,可以理解为if…else语句

//把常量当case的枚举项,可能出现多项匹配,a[3]和a[2]都可能=1,但是a[3]比a[2]优先级高 always_comb begin priority case (1'b1) a[3]: begin end a[2]: begin end default: begin end endcase end

等同于下面的代码

always_comb begin if(a[3]) begin end else if(a[2]) begin end else if() begin end //... end 三、always_comb中的控制语句:if和for

if和for是always_comb中的常用语法。

if

if和else用于条件判断。

always_comb begin b = 1'b0; if (a[3]) begin b = 1'b1; end else if (a[2]) begin b = 1'b0; end end

或者下面书写方法

always_comb begin if (a[3]) begin b = 1'b1; end else if (a[2]) begin b = 1'b0; end else begin b = 1'b0; end end for

for在always_comb中,会被解释为循环展开。 for相关的语句:break,continue

logic [15:0]a; logic [3:0] b; //interger i;//此处是全局变量 always_comb begin b = '0; for (int i = 15; i >= 0; i--) begin//把i放在内部声明,是局部变量 if (a[i]) begin b = i[3:0]; break; end end end

循环变量的上下界都应为常数。

always_comb begin for (int i = 0 ; i = n) break; end end

for和if即可表示行为,也可生成电路。

always_comb begin for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3