当前位置:网站首页>Always of SystemVerilog usage_ comb 、always_ iff
Always of SystemVerilog usage_ comb 、always_ iff
2022-07-06 14:21:00 【Then the dish】
always_comb
always_comb Each internal statement is a blocking assignment statement . Circuit statements... Cannot appear (assign)
always_comb It has the following properties :
Internal coverage
External atomicity
always_comb begin
a = 1'b1;
b = a;
a =1'b0;
c = a;
end
// Circuit input :1'b1;1'b0; // On the right (1'b1;1'b0; a) Remove the left side (a,b,c)
// Circuit output :(a,b,c)// On the left
// Running results a=1'b0, b=1'b1, c=1'b0,
assign a = b;
always_comb begin
b = 1'b1;
c = a;
b = 1'b0;
end
// First always_comb have to : c = a, b = 1'b0; Again assign have to :a = b = 1'b0; c = a = 1'b0
// therefore a=1'b0, b=1'b0, c=1'b0,
assign a = b;
always_comb begin
b = 1'b1;
c = b;
b = 1'b0;
end
// First always_comb have to : c = b = 1'b1; b = 1'b0 Again assign have to :a = b = 1'b0;
// therefore a=1'b0, b=1'b0, c=1'b1,
always_comb case
unique case
case There is no priority in the block , Parallel comparison .
// 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 end
endcase
end
priority case
case There is priority in the block , Serial comparison ( Compare in turn )
always_comb begin
priority case (1'b1)
a[3]: begin end
a[2]: begin end
default: begin end
endcase
end
// amount to :
/*
always_comb begin
if(a[3]) begin
end else if(a[2]) begin
end else if() begin end
end
*/
always_comb if and for
if
if and else Used for conditional judgment
always_comb begin
b = 1'b0;
if (a[3]) begin b = 1'b1; end
else if (a[2]) begin b = 1'b0; end
else begin end
end
for
for stay always_comb in , Will be interpreted as loop expansion .
logic [15:0]a;
logic [3:0] b;
always_comb begin
b = '0;
for (int i = 15; i >= 0; i--) begin
if (a[i]) begin
b = i[3:0];
break;
end
end
end
always_comb begin
for (int i = 0 ; i < 16; i ++) begin
if (i >= n) break;
end
end
always_comb begin
for (int i = 0; i < 16; i++) begin
a[i] = b[i] & (c[i] == d[i] | e[i]); // The compiler doesn't think i Is constant ,a[i:i+3] illegal
end
end
for (genvar i = 0; i < 16; i++) begin // genvar assign
assign a[i] = b[i] & (c[i] == d[i] | e[i]); // The compiler thinks i Is constant ,a[i:i+3] legal
always_comb begin
end
end
always_ff
always_ff Used to describe triggers .
always_ff @(posedge clk) begin
if (~resetn) begin
q <= '0; // Trigger non blocking assignment
end else if (en) begin
q <= d;
end
end
logic [3:0] a, a_nxt;
// always_ff Write only the trigger part Nonblocking assignment
always_ff @(posedge clk) begin
if (~resetn) begin
a <= '0;
end else if (en) begin
{a, b} <= {a_nxt, b_nxt};
end
end
always_comb begin
a_nxt = a;
// Logic that does not belong to a trigger , Written in always_comb Block assignment
unique case(a)
4'd3: begin
a_nxt = 4'd2;
end
default: begin
end
endcase
end
Thank you for sharing !!
(4 Bar message ) System Verilog grammar _ Record on pit -CSDN Blog
边栏推荐
- Build domain environment (win)
- WEB漏洞-文件操作之文件包含漏洞
- captcha-killer验证码识别插件
- 内网渗透之内网信息收集(四)
- Detailed explanation of network foundation routing
- 内网渗透之内网信息收集(二)
- 附加简化版示例数据库到SqlServer数据库实例中
- [MySQL table structure and integrity constraint modification (Alter)]
- 《英特尔 oneAPI—打开异构新纪元》
- [err] 1055 - expression 1 of order by clause is not in group by clause MySQL
猜你喜欢
Hcip -- MPLS experiment
链队实现(C语言)
图书管理系统
网络层—简单的arp断网
[paper reproduction] cyclegan (based on pytorch framework) {unfinished}
Data mining - a discussion on sample imbalance in classification problems
Applet Web Capture -fiddler
[VMware abnormal problems] problem analysis & Solutions
强化学习基础记录
Captcha killer verification code identification plug-in
随机推荐
【educoder数据库实验 索引】
7-11 mechanic mustadio (PTA program design)
Intranet information collection of Intranet penetration (I)
. How to upload XMIND files to Jinshan document sharing online editing?
实验八 异常处理
1143_ SiCp learning notes_ Tree recursion
Captcha killer verification code identification plug-in
小程序web抓包-fiddler
Middleware vulnerability recurrence Apache
Sword finger offer 23 - print binary tree from top to bottom
强化學習基礎記錄
Chain team implementation (C language)
SQL injection
HackMyvm靶机系列(3)-visions
Simply understand the promise of ES6
网络基础之路由详解
[err] 1055 - expression 1 of order by clause is not in group by clause MySQL
Applet Web Capture -fiddler
Attach the simplified sample database to the SQLSERVER database instance
Experiment 9 input and output stream (excerpt)