当前位置: 首页 > news >正文

Verilog if语句阻断z状态传播

一、测试代码

设置两组输入输出,对比使用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 @( * )  beginif( if_a_in ) beginif_a_out = 1'b1;end else beginif_a_out = 1'b0;end
endalways @( * )  beginif( if_b_in ) beginif_b_out = 1'b1;end else beginif_b_out = 1'b0;end
endalways @( * )  beginif( if_c_in ) beginif_c_out = 1'b1;end else beginif_c_out = 1'b0;end
endalways @( * )  beginif( if_d_in ) beginif_d_out = 1'b1;end else beginif_d_out = 1'b0;end
endendmodule
  • 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  beginif_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态被阻断了。

相关文章:

  • 【CSP】202309-2_坐标变换(其二)Python实现
  • 【python】pip install 国内源
  • PHP 判断给定两个时间是否在同一周,月,年
  • Android 手机屏幕适配方式和原理
  • javafx-在listview中添加了点击事件后会执行多次
  • C++ 预处理详解
  • C语言进阶之路-数组与指针
  • 电商项目之Web实时消息推送(附源码)
  • 类和对象——(7)this指针
  • 5G常用简称
  • 初识Linux——基本指令(详解)1
  • Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066
  • shell读取python版本
  • Ubuntu18.04 本地安装CVAT标注工具
  • Python 调用企业微信群机器人发送消息及文件
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CSS3 变换
  • happypack两次报错的问题
  • javascript 哈希表
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Js基础知识(一) - 变量
  • Linux各目录及每个目录的详细介绍
  • Lsb图片隐写
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Meteor的表单提交:Form
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PHP CLI应用的调试原理
  • Promise面试题2实现异步串行执行
  • REST架构的思考
  • RxJS: 简单入门
  • spark本地环境的搭建到运行第一个spark程序
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • vue中实现单选
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 离散点最小(凸)包围边界查找
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • ​业务双活的数据切换思路设计(下)
  • #14vue3生成表单并跳转到外部地址的方式
  • #include<初见C语言之指针(5)>
  • ( 10 )MySQL中的外键
  • (LeetCode) T14. Longest Common Prefix
  • (超详细)语音信号处理之特征提取
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)80c52学习之旅-起始篇
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .dwp和.webpart的区别
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net core 6 redis操作类