当前位置:网站首页>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
边栏推荐
- 实验七 常用类的使用
- Captcha killer verification code identification plug-in
- [MySQL table structure and integrity constraint modification (Alter)]
- HackMyvm靶机系列(4)-vulny
- Meituan dynamic thread pool practice ideas, open source
- How to turn wechat applet into uniapp
- 实验五 类和对象
- XSS unexpected event
- Only 40% of the articles are original? Here comes the modification method
- Experiment 6 inheritance and polymorphism
猜你喜欢
7-7 7003 combination lock (PTA program design)
附加简化版示例数据库到SqlServer数据库实例中
Matlab opens M file garbled solution
搭建域环境(win)
[VMware abnormal problems] problem analysis & Solutions
Interpretation of iterator related "itertools" module usage
记一次edu,SQL注入实战
Canvas foundation 1 - draw a straight line (easy to understand)
HackMyvm靶机系列(2)-warrior
On the idea of vulnerability discovery
随机推荐
力扣152题乘数最大子数组
Data mining - a discussion on sample imbalance in classification problems
Hackmyvm target series (2) -warrior
1143_ SiCp learning notes_ Tree recursion
Get started with typescript
记一次edu,SQL注入实战
Build domain environment (win)
SQL injection
Mixlab unbounded community white paper officially released
7-8 7104 Joseph problem (PTA program design)
Strengthen basic learning records
【头歌educoder数据表中数据的插入、修改和删除】
Sqqyw (indifferent dot icon system) vulnerability recurrence and 74cms vulnerability recurrence
Hackmyvm Target Series (3) - vues
Harmonyos JS demo application development
Wei Shen of Peking University revealed the current situation: his class is not very good, and there are only 5 or 6 middle-term students left after leaving class
内网渗透之内网信息收集(二)
Hackmyvm target series (4) -vulny
HackMyvm靶机系列(7)-Tron
【MySQL-表结构与完整性约束的修改(ALTER)】