Verilog if语句阻断z状态传播

Systemverilog inside匹配规则 本文介绍SystemVerilog中inside的匹配规则 阅读详情

一、测试代码

设置两组输入输出,对比使用assign赋值语句与always if语句。

  • if_assign_test.v
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Engineer: wkk
// Module Name: if_assign_test
//////////////////////////////////////////////////////////////////////////////////
module if_assign_test(
    input  if_a_in,
    input  if_b_in,
    input  if_c_in,
    input  if_d_in,
    
    input  assign_a_in,
    input  assign_b_in,
    input  assign_c_in,
    input  assign_d_in,
    
    output reg if_a_out,
    output reg if_b_out,
    output reg if_c_out,
    output reg if_d_out,
    
    output assign_a_out,
    output assign_b_out,
    output assign_c_out,
    output assign_d_out
);

assign assign_a_out = assign_a_in ? 1'b1:1'b0;
assign assign_b_out = assign_b_in ? 1'b1:1'b0;
assign assign_c_out = assign_c_in ? 1'b1:1'b0;
assign assign_d_out = assign_d_in ? 1'b1:1'b0;

always @( * )  begin
    if( if_a_in ) begin
        if_a_out = 1'b1;
    end else begin
        if_a_out = 1'b0;
    end
end

always @( * )  begin
    if( if_b_in ) begin
        if_b_out = 1'b1;
    end else begin
        if_b_out = 1'b0;
    end
end

always @( * )  begin
    if( if_c_in ) begin
        if_c_out = 1'b1;
    end else begin
        if_c_out = 1'b0;
    end
end

always @( * )  begin
    if( if_d_in ) begin
        if_d_out = 1'b1;
    end else begin
        if_d_out = 1'b0;
    end
end

endmodule
  • tb_if_assign_test.v
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Engineer: wkk
// Create Date: 2023/12/05 20:37:07
// Module Name: tb_if_assign_test
//////////////////////////////////////////////////////////////////////////////////

module tb_if_assign_test();
reg  if_a_in;
reg  if_b_in;
reg  if_c_in;
reg  if_d_in;
reg  assign_a_in;
reg  assign_b_in;
reg  assign_c_in;
reg  assign_d_in;

wire if_a_out;
wire if_b_out;
wire if_c_out;
wire if_d_out;

wire assign_a_out;
wire assign_b_out;
wire assign_c_out;
wire assign_d_out;

if_assign_test if_assign_test_inst (
    .if_a_in (if_a_in),
    .if_b_in (if_b_in),
    .if_c_in (if_c_in),
    .if_d_in (if_d_in),
    
    .assign_a_in(assign_a_in),
    .assign_b_in(assign_b_in),
    .assign_c_in(assign_c_in),
    .assign_d_in(assign_d_in),
    
    .if_a_out   (if_a_out),
    .if_b_out   (if_b_out),
    .if_c_out   (if_c_out),
    .if_d_out   (if_d_out),
    
    .assign_a_out(assign_a_out),
    .assign_b_out(assign_b_out),
    .assign_c_out(assign_c_out),
    .assign_d_out(assign_d_out)
);

initial  begin
    if_a_in = 1'b1;
    if_b_in = 1'b0;
    if_c_in = 1'bz;
    if_d_in = 1'bx;
    
    assign_a_in = 1'b1;
    assign_b_in = 1'b0;
    assign_c_in = 1'bz;
    assign_d_in = 1'bx;
    
    # 100;
    $finish;
end
endmodule

二、仿真结果

在这里插入图片描述
通过if ( 条件 ) 的方式,z态被阻断了。

Verilog(1)-- 基础知识 Verilog HDL基础 阅读详情

相关推荐

Verilog HDL中的数字进制(Verilog数字表示方法&&X/Y态解析)

数字在Verilog中的表示方法 Verilog HDL的数字进制 不定态(X态)解析 高阻态(Y态)解析

m0_67638836的博客 6443

Verilog——if语句的优先级问题

一、有优先级的if语句 if..else if.. else if … …else..语句中是有优先级的,第一个if具有最高优先级,最后一个else优先级最低。Quartus综合出的RTL图认为,最高优先级的电路靠近电路的输出,输入到输出的延时较短;最低优先级的电路远离输出端,输入到输出的延时较长。 module single_if_late(A, C, CTRL_is_late, Z); input [6:1] A; input [5:1] C; i...

jk_101的博客 5799

加深对Verilog中x态和z态的认知

一、什么是x态和z态 x态:表示Unknown,仿真发生了不能解决的逻辑冲突。 z态:表示HiZ、High Impedance、Tri-State、Disabled Driver。 ——《Verilog编程艺术第7章》 二、仿真时为什么会产生x态和z态 产生x态原因之一:四态逻辑的默认初始值为x态,如果未对逻辑复位(reg或者ram),那么为x态; 产生x态原因之二:后仿真,时序违例后使用notifier将输出端口置为x态; 产生x态原因之三:线网信号存在多个驱动,多个驱动之间相互冲突; .

kevindas的博客 3万+

Verilog中“X”和“Z”状态和 进制表示

verilog仿真中的X和Z代表什么呢?二进制数,十进制数、十六进制数分别用什么表示?

Doreen的博客 1万+

用C#实现面向对象编程之继承和多态概念的示例程序

这是文章《面向对象编程之继承和多态》的配套示例程序。在学习面向对象编程时都学习到三个概念:封装、继承、多态。封装已经讲解过,可以翻一下本博客的发表记录。所谓的继承,就是父类已经实现的属性、方法等,子类也跟着有,无需重复实现。所谓的多态,就是父类只定义的属性、方法等的名称、数据类型、参数,具体由子类实现。

ScreenInk 0.0.1.exe

ScreenInk 0.0.1.exe

System Verilog 四值逻辑

System verilog中,信号共有4种状态"0、1、x、z",分别表示低电平、高电平、不确定态和高阻态。对于没有进行初始化的信号,一般处于不确定态(x),高阻态表示该信号没有被其他信号驱动,经常用于有多个驱动源的总线型数据上。 状态 意义 逻辑 0 表示低电平,对应电路 为GND,或逻辑电路输出为低电平。 逻辑 1 表示高电平,对应电路的 VCC,或逻辑电路输出为高电平 。 逻辑 X 表示未知,有可能是高电平,也有可能是低电平。 逻辑 Z 表示高阻态,是一个悬浮状态,如三态

君子藏器于身,待时而动 3047

外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货 数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识 部分品种还提

外盘期货历史高频tick数据涵盖CME、ICE等交易所的主要品种,包含能源、贵金属、农产品、股指和外汇期货。数据字段有交易日期、精确到毫秒的时间、成交价格、成交量、持仓量以及买卖方向标识。部分品种还提供盘口五档或十档挂单数据。所有数据按交易日压缩打包,解压后为CSV格式,便于直接读取分析。 数据源:CMES金融数据库

五、高级知识点 | Verilog 语法

1.结构语句: initial 和 always initial 语句在它的模块中只执行一次。 它常用于测试文件的编写,用来产生仿真测试信号,或者用于对寄存器变量赋初始值。 always语句一直在不断地重复活动。但是只有和一定时间控制结合在一起才有用。 always也可以是多个信号,多个信号中间要用关键字or连接。 always语句后紧跟的过程块是否运行,要看它的触发条件是否满足。 沿触发的always块常常描述时序逻辑行为。 由关键词or连接的多个事件名或信号名组成的列表称为“

天神下凡一垂四的博客 1626

三相PWM整流器双闭环控制仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了三相PWM整流器双闭环控制的Simulink仿真模型,重点实现电压外环与电流内环的协同控制策略,通过仿真验证系统在稳态与动态工况下的运行性能。模型涵盖主电路拓扑结构、PWM调制技术、坐标变换(如abc/dq变换)、PI控制器设计及双闭环控制逻辑的实现,能够实现单位功率因数运行、直流侧电压稳定控制以及网侧电流正弦化等目标。同时,文档进一步拓展至VOC(虚拟同步发电机控制)与SVPWM调制相结合的高级控制策略,提升了系统的动态响应能力与控制灵活性。; 适合人群:具备电力电子技术与电力系统基础知识,熟悉Simulink仿真环境的电气工程及相关专业的本科生、研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解三相PWM整流器的工作原理及其双闭环控制策略的设计方法;②掌握基于Simulink的电力电子系统建模、仿真与控制系统调试技术;③为后续研究电压源换流器(VSC)、虚拟同步控制(VOC)、微电网并网控制等先进电力电子控制技术奠定理论与实践基础。; 阅读建议:建议结合经典电力电子教材与本仿真模型同步学习,重点关注PI控制器参数整定、坐标变换模块的搭建逻辑以及系统稳定性分析方法,有条件者可进一步将仿真结果对接实际硬件平台进行实验验证,以深化对控制策略工程应用的理解。

Yersinia:layer 2攻击框架!全参数详细教程!Kali Linux教程!

Yersinia是一个专为执行二层网络攻击设计的框架,利用多种网络协议的弱点进行渗透测试和网络分析。它支持针对生成树协议(STP)、思科发现协议(CDP)、动态中继协议(DTP)、动态主机配置协议(DHCP)、热备用路由器协议(HSRP)、802.1q、802.1x、交换机间链路协议(ISL)和VLAN中继协议(VTP)的攻击。这些攻击可能导致网络中的拒绝服务(DoS)或为更复杂的攻击创造条件。Yersinia对渗透测试人员和网络管理员非常有用,但使用时需谨慎,以免造成网络不稳定。

qq_24305079的博客 2281

FPGA笔记1——Verilog语法

逻辑值: 0、1、X(不定)、Z(高阻态悬空状态) 数字进制: 二进制B:4’b0101四位二进制数字0101 八进制o 十进制d:4'd2四位十进制数2(二进制0010) 十六进制h:4'ha四位十六进制数a(二进制1010) 若未指定,默认32'd 标识符用于定义模块名、端口名、信号名 任意一组字母、数字、&、_的组合 第一个字符必须是字母或者下划线 区分大小写,不建议大小写混合使用 普通内部信号建议全部小写 推荐:sumcpu_addrclk_50clk_cpu 数据类型:寄存...

m0_49372475的博客 1772

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

Verilog中单if语句、多if语句和case语句与优先级的关系

1、 if-else if-else 单if语句 单if语句(if-elseif-…elseif-else)综合出来的电路没有优先级,从电路的角度来说,单if语句综合出来的电路类似于数据选择器,else路选通的条件是前面所有的if条件都不满足。 always@(*) begin z = 0; if(sel1) z = a; else if(sel2) z = b; else if(sel3) z = c;

weixin_39520719的博客 2万+

Opencv计算相机响应函数(Camera Response Function)与Radiance

本文主要用于记录自己在学习CRF过程中遇到的一些问题。 CRF模型 I=f(V(t⋅L))I=f(V( t\cdot L))I=f(V(t⋅L)) 其中III为相机灰度值Intensity,LLL为环境中irradiance,ttt为曝光时间,VVV为相机镜头参数,fff为相机响应函数CRF。 有些论文中认为相机镜头参数是线性的不考虑,但有些考虑了衰减即靠近图像边缘亮度会暗一些,但没有看到二者同时计算的,如果同时计算两个非线性的函数,我觉得可能会有不确定性,在这里还请教一下了解的朋友。 控制

larrydong的博客 5997

新手避坑指南:用Silvaco Atlas搞定GaN HEMT电热仿真的完整流程(附代码解读)

本文详细介绍了使用Silvaco Atlas进行GaN HEMT电热特性仿真的完整流程,特别针对新手常见问题提供避坑指南。从软件环境配置、结构定义、网格划分到物理模型设置,逐步解析关键步骤,并附有代码解读和调试技巧,帮助读者快速掌握GaN器件仿真的核心技术。

weixin_29215815的博客 595

03 Verilog HDL 语法

Verilog HDL(Hardware Description Language)是在 C 语言的基础上发展起来的一种硬件描述语言(用它可以表示逻辑电路图、逻辑表达式、数字逻辑系统所完成的逻辑功能等)具有灵活性高、易学易用等特点。Verilog HDL 可以在较短的时间内学习和掌握,目前已经在 FPGA 开发/IC 设计领域占据绝对的领导地位。

lf282481431的博客 4291

解决2020R2,2022R1等版本的SCDM无法编辑草图尺寸的问题

解决2020R2,2022R1等版本的SCDM无法编辑草图尺寸的问题

y_u_yu_yu_的博客 1万+

X态详解 与 X态传播 VCS X-Propagation

Verilog作为硬件行为级描述语言,提供了四种状态来模拟实际电路的电平状态,1,0,x,z 在整个设计流程,包含了Simulation,Formal Verification,Equivalence Checking,Synthesis,Code Coverage,Power State等不同阶段或概念,X态在不同context(上下文/语境)下也存在不同的semantics语义。 Synthesis Semantics 在逻辑综合时,X态常被看作是一种“无所谓"的赋值,don't-care X-assi

Holden_Liu的博客 2万+

【C++】小猫钓鱼纸牌游戏--C++实现

小猫钓鱼问题: 描述:初始,两个人各有n张牌(牌面0-10),顺序固定,只能按顺序出牌。然后,两个人轮流在桌面上以接龙的方式出牌,当某个人放置的牌在桌面上已经出现时,他收起相同牌面及其中间的牌作为自己的筹码,同时需要再放一张牌到桌面。某人手上的牌出完后,另一个人继续出,直到两人手上都没牌为止,输出结束时两个人手上的筹码数。 #include<iostream> using namespace std; struct queue { int head; //队列首 int tail; //

qq_41344430的博客 3202

【乐企-业务篇】乐企开票具体代码实现

【代码】【乐企-业务篇】乐企开票具体代码实现。

九七的博客 493

verilog 中if....else语句以及case语句详细理解

1、if else: (1)if(表达式)语句; (2)if(表达式) 语句一 else 语句二 (3)if(表达式1) 语句一; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式4) 语句4; #语句使用要点: (1)条件语句必须在过程块中使用。所...

芒果爱火锅的博客 3万+

【模型实战】MiMo-VL-7B讲解与实战

维度成绩MMMU70.6(图像理解最难测试之一)VideoMME70.8(视频理解标杆)59.4(超越78B参数模型)56.1(超过专用GUI模型)Elo评分开源VLM排名第一(7B~72B)社区热度过去一个月下载超1,600次(RL+SFT)📌一句话概括MiMo-VL 是目前性能最强、推理最稳、体验最佳、生态最全的7B级开源视觉语言模型。

m0_47867638的博客 1195

verilog中条件分支语句的综合问题

条件结构 在·

GG的专栏 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: STC15F100E单片机模拟串口
下一篇: Verilog 字符串
暴风雨中的白杨
博客等级 码龄6年 1070粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值