RTL基本知识:线网或变量宽度与端口宽度不匹配

在使用Verilog进行数字设计或者构建验证平台时,如果连接模块端口的线网或变量的宽度与端口定义的宽度不一致,在进行仿真时将有可能出现逻辑功能与期望不一致的情况,本文将对此类情况进行示例分析。

首先,在IEEE 1364-2001中,模块的端口对于信号的传输类似于连续赋值语句对于信号的传递,因此,对于连续赋值语句的要求也适用于信号通过端口的传递过程(对此可以理解,在具体物理实现后的是不存在模块端口的,信号将通过线网在电路中传输)。其次,Verilog中,与输入端口(input)和双向端口(inout)连接的数据类型只能是线网类型,和输出端口连接的可以是线网类型也可以是变量类型(具体连接的是线网还是变量取决于具体设计意图)。因为线网类型在传输过程中对于未声明线网处理的特点(参考前几期topic),那么在端口连接的过程中,可能存在端口宽度不匹配导致的部分线网未连接等情况的出现,而这些情况有可能导致逻辑功能异常。针对端口连接过程的特点,这里有以下几种情况可以需要分析:

1>端口宽度和连接线网或者变量的宽度一致;

2>端口宽度小于连接线网或者变量的宽度;

3>端口宽度大于连接线网或者变量的宽度;

4>输入端口没有连接或者无驱动;

更多资讯,请关注下方二维码!

原文地址:https://www.cnblogs.com/xgcl-wei/p/9055569.html

时间: 2024-10-06 15:06:33

RTL基本知识:线网或变量宽度与端口宽度不匹配的相关文章

JS基础知识回顾:变量、作用域和内存问题

ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指的是那些可能由多个值构成的对象. 引用类型的值是保存在内存中的对象,与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间. 在操作对象时,实际上是在操作对象的引用而不是实际的对象. 在很多语言中,字符串以对象的形式来表示,因此被认为是引用类型的,ECMAScript放弃了这一传统. 定义基本类型值和引用类型值的方式是类似的:创建

go-基础知识二-数据类型-变量

1.0 变量的含义:变数或变量,是指没有固定的值,可以改变的数.变量以非数字的符号来表达,一般用拉丁字母.变量是常数的相反.变量的用处在于能一般化描述指令的方式.若果只能使用真实的值,指令只能应用于某些情况下.变量能够作为某特定种类的值中任何一个的保留器. 2.0 GO语言 变量的表现形式 2.1 使用var关键字是Go最基本的定义变量方式,与OC不同的是Go把变量类型放在变量名后面: //定义一个名称为“variableName”,类型为"type"的变量 var variableN

CSS:严格控制Table宽度和td宽度

Table会随着内容增加而变宽,即便使用了CSS也控制不住.必须对table使用table-layout: fixed才行. 例如: <table class='attIconTable' cellspacing='0' cellpadding='0' border='0' style='width:100%;table-layout: fixed;'> <tbody><tr><td style='width:24px'>xyz</td><

手机网页宽度 , 图片宽度 自适应

网页宽度 页面box不要写宽度或 width:100% 之类的 去掉 头部加上下面代码: <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> 图片宽度 <script type="text/javascript"> f

RTL基本知识:线网的隐性声明

线网(net)作为Verilog语言中两种主要数据类型之一(变量数据类型和线网数据类型),主要用来模拟数字设计中连接多个不同模块或者模型的物理连线,因此线网是不存储数据的(除了trireg类型),仿真时线网上显示的数据由驱动该线网的驱动源决定的.如果线网没有被有效驱动,那么其上表现出来的数据是高阻态(除了trireg).同时同一个模块中不允许对同一个线网进行多次声明. 在仿真验证的过程中经常会遇到未声明的标识符在仿真过程中有时会报出错误信息或者警告信息,但是有时又不会出现任何信息,那么在什么情况

RTL基本知识:使用枚举类型表示状态机进入死循环

在定义状态机中的状态时,除了可以使用宏(define)或者参数(parameter)声明定义外,还可以使用枚举类型,但是如果对于枚举类型使用不正确的话,极易出现编译仿真均没有报错,但是仿真时状态机跳转异常的情况.本文将针对这种情况进行示例说明并给出解决方法. 1  数据类型 在Verilog中所有的变量和线网都是4值数据类型,但在SystemVerilog中,对信号类型和数据类型进行了详细的区分,其中信号类型保持与Verilog一样,主要分为变量和线网类型,但是数据类型分为了2值类型(0和1)和

Java 复习第一部分:知识体系、变量、运算部分

为了能够更好地进入Web开发,故准备在空余时间先重新看一下Java,三年前学过,之后没用都忘记了,下面将第一天复习到的一些之前没注意的知识点总结一下. 1.体系:SE:标准版:EE:主要面向大型网站:ME:手机移动终端. 2.Java程序不能直接运行,需要运行在JVM中.JRE包含了JVM,只能完成Java的运行二无法完成Java的编译,调试:JDK中包含了JRE,将.Java文件编译成可运行的Java程序,这便是JVM,JRE,JDK之间的关系. 3.Java的项目结构:src中包含的是源代码

Java基础知识(一)环境变量的设置、自动类型转换、自增长、赋值运算符

怎样控制Java虚拟器的类文件搜索路径?设置环境变量:pathclass=[路径名]Java虚拟器只在该变量设置的路径中寻找类文件. 可以在命令窗口中,设置临时classpath变量.set pathclass=[路径名].代表当前路径.用:隔开多个路径. 可以通过 %[环境变量名]% 引用环境变量. 计算机怎样与人类交流?计算机用二进制数据,来匹配人类所用的字符.比如ASCII码表,用一个两字节的二进制数据对应一个英文字符. 'a'//97 char(98)//b 'a'+1//98 编译器何

Python-基础知识-数据类型、变量和常量

一.数据类型 在Python中,能够直接处理的数据类型有以下几种: 1.整数 2.浮点数 3.字符串 字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等.请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符.如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符. 4.布尔值 一个