在verilog中什么叫做多驱动源线网

2020-12-01 22:00:59 字数 4718 阅读 5908

1楼:

多驱动源线网,应该是指多根wire直接相连。如例:

input error, waiting, valid, clear;

output bpw;

assign bpw = error && waiting;

assign bpw = valid || clear;

bpw即为多驱动源线网,不过目前综合器大多不支持多驱动源,综合时会报错,提示同一网络有多个驱动源。

2楼:匿名用户

线网是个什么东西 ...线网是数据类型中的一种。verilog语言是基于模块设计的,每个模块之间的信号线要相连,就要将其定义成线网类型。这个不难理解,只要...

verilog语言中一个信号可以被多次驱动么

3楼:匿名用户

verilog中的信号只能有一个驱动,否则有些编译会报错有些会报警告,**时信号会处于不定态。

可以将多个驱动按照逻辑关系进行“与”“或”操作后驱动那个信号

4楼:风雷小草

希望你的问题与你的文字

一致。不错,信号可以多次驱动,就像你家里的电视机,今天开机,明天照样可以开机。每开一次机,里面都的硬件都被电流驱动一次,对吧。

但是,如果你指的是一个端口被多个信号源驱动,那就有问题了。试想一下,你家电视机的插头,同时接220v和380v,肯定烧机,verilog里面的信号是一样的道理。

5楼:匿名用户

不行的,驱动源只能有个!

verilog模块中各个变量的类型怎么确定

6楼:匿名用户

朋友,我来告诉你答案!这是我刚才搜到的、感觉说的挺不错的:

整数、实数和时间寄存器类型

整数是一种通用的寄存器数据类型,用于对数量进行操作,使用integer进行声明。

integercounter;//一般用途的变量用作计数器

initial

counter=-1;//把-1存储到寄存器中

实数:实常量和实数寄存器数据类型使用关键字real来声明,可以用十进制或科学计数法来表示。实数声明不能带有范围,其默认值为0.

如果将一个实数赋予一个整数,那么实数将会被取为最接近的整数。

realdelta;//定义一个名为delta的实型变量

时间寄存器:**是按照**时间进行的,verilog使用一个特殊的时间寄存器数据类型来保存**时间。时间变量通过使用关键字time来声明,其宽度与具体实现无关,最小为64位。

通过调用系统函数$time可以取得当前的**时间。

数组verilog中允许声明reg、integer、time、real、realtime及其向量类型的数组,对数组的维数没有限制,即可声明任意维数的数组。线网数组也可用于连接实例的端口,数组中的每个元素都可以作为一个标量或者向量,以同样的方式来使用,形如。

integercount[0:7];//由八位计数变量组成的数组

regbool[31:0];//由32个1位的布尔寄存器变量组成的数组

wire[7:0]w_array2[5:0];//声明8位向量的数组

注意:不要把数组和线网或寄存器向量混淆起来。向量是一个单独的元件,它的位宽是n,数组由多个元件组成,其中每个元件的位宽为n或1.

存储器verilog中使用寄存器一维数组来表示存储器。数字的每个元素成为一个元素或一个字(word),由一个数组索引来指定。每个字的位宽为1位或者多位。

注意n个1位寄存器和一个n位寄存器是不同的。如果需要访问存储器中的一个特定的字,则可通过子的地址作为数组的下标来完成。

regmem1bit[0:1023];//1k的1位存储器

reg[7:0]membyte[0:1023];//1k的字节(8位)存储器membyte

membyet[511]//取出membyte中地址511所处的字节

参数verilog使用关键字parameter在模块内定义常数。参数代表常数,不能像变量那样赋值,但是每个模块实例的参数值可以在编译阶段被重载。通过参数重载使得用户可以对模块实例进行定制。

除此之外还可以对参数的类型和范围进行定义。

parameterport_id=5;//定义常数port_id为5

字符串字符串保存在reg类型的变量中,每个字符占用8位(一个字节),因此寄存器变量的宽度应足够大,以保证容纳全部字符。如果寄存器变量的宽度大于字符串的大小,则verilog用0来填充左边的空余位。如果寄存器变来那个的宽度小于字符串的大小,则verilog截去字符串最左边的位。

线网线网(***)表示硬件单元之间的连接。线网一般使用关键字wire进行声明。如果没有显式的说明为向量,则默认线网的位宽为1。

线网的默认值为z,(trireg类型线网例外,其默认值为x)。其值由驱动源确定,如果没有驱动源则线网的值为z

***并不是一个关键字,它代表了一组数据类型,包括wire,wand,wor,tri,triand,trior以及trireg等。

寄存器寄存器用来表示存储元件,它保持原有的数值,直到被改写。注意:不要将这里的寄存器和实际电路中由边沿触发器构成的硬件寄存器混淆。

在verilog中,术语register仅意味着一个保持数值的变量。与线网不同,寄存器不需要驱动源,而且也不像硬件寄存器那样需要时钟信号。在**过程中的任意时刻,寄存器的值都可以通过赋值来改变。

寄存器的数据类型通过关键字reg来声明,默认值为x。

向量线网和寄存器类型的数据均可声明为向量(位宽大于1)。如果在声明中没有指定位宽,则默认为标量(1位)

wirea;//标量线网变量,默认

wire[7:0]bus;//8位的总线

regclock;//标量寄存器,默认

reg[0:40]virtual_addr;//向量寄存器,41位宽的虚拟地址

向量通过[high#:low#]进行说明,方括号中左边的数总是代表向量的最高有效位。

向量域选择

对于上面例子中声明的向量,我们可以指定它的某一位或者若干个相邻位。

望楼主采纳~~

问一下verilog中三态门的实现问题。

7楼:匿名用户

一般对于双向的数据总线来说,在系统中会有多个设备来驱动它的现象。

如果一个设备不用总路线时,不把它驱动为高阻态,在另一个设备要使用数据线时,就会出现多驱动的现象,在电路上会出现半高的电平,从而不知道这数据到底是1还是0了。

所以你注释掉的那一句其实是非常有必要的。

所以这一句af_data <= qout; 是不能这样写的。

还是得用这种,总线使能加中间变量的方法。

assign af_data = (!data_dir)?qout:8'bzzzzzzzz;

8楼:匿名用户

inout [7:0] af_data;

改为 inout reg [7:0] af_data; 就可以了

已测试过,望及时采纳

verilog为啥有的信号没有被定义

9楼:匿名用户

1、input只能是wire型,不需要你指定类型

。2、输出则没有限制。 如果不指定类型,默认为wire型。

拓展:在verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是组合逻辑,只能在assign左侧赋值,不能在always @ 中赋值。

verilog设计的时候,这个错误是什么意思:multi source on signal count

10楼:匿名用户

是多驱动问题,可能你定义了一个reg类型的变量,然后在两个always块里对这个变量分别赋值了。这种情况**是没问题的,但不能综合。

11楼:匿名用户

即对同一个变量在两个always 语句中

进行两次赋值

12楼:匿名用户

一个信号 连接它前面的有2个导线

一根输入0 一根输入1

你叫那信号 输入什么?0 还是 1

13楼:小龟车

你可能对同一变量进行了两次赋值,仅供参考,本人也是新手啊

14楼:立东电子

这个错误是典型的多重驱动.

15楼:匿名用户

好像是多个信号源驱动一个信号,这种情况是不可综合的

verilog语言的三态双向驱动

16楼:匿名用户

1.既然是双向的,bidir既是8位输入又是8位的输出if(en) temp=bidir;这句,bidir是作为输入的2.en无效的时候,temp一直递增

***********************************=

这哪来的?我怎么觉得有点怪

17楼:匿名用户

inout [7:0] af_data;

改为 inout reg [7:0] af_data; 就可以了

已测试过,望及时采纳

18楼:吃蘑菇的老虎

inout [0:7] bidir ; //这个bidir 就是8位的输入.

temp=temp+1; //这句语句是在让变量temp自加运算,temp加1,赋给自己;

//相当于c语言的temp++

在英语中,什么叫做名词,动词,形容词

1楼 武夷山大道 发出动作的词叫动词 走 跑 跳 做 名词就是表示名称的词 书包 桌子 电脑 形容词 描绘名词的词汇 漂亮的书包 干净的桌子 崭新的电脑 英语里面什么叫名词,代词,动词,形容词 2楼 匿名用户 名词 名词 nouns 是词性的一种,也是实词的一种,是指待人 物 事 时 地 情感 概念...

请问中字在五行到底属什么,源字在五行中属什么

1楼 安cb红 1 中 字,含 口 ,口为兑为 金 ,这是主流观点。 2 中 字五行属 土 ,是从八卦分野的 戊己土居中 而来的,这,有背其原旨,这里的 戊己 ,只相当于一个圆点,小而无内,大而无外,并不是实质上的生育之土。所以,单就 中 字来说,不以 土 论。 3 中 ,中庸,变通,在其它配字, ...

在物理学中把什么叫做物质的密度,物理中的密度是什么????

1楼 匿名用户 在物理学中,把质量和体积的比值叫做密度,它表示的物理含义是某种物质单位体积的质量,它的符号是 ,国际单位是kg m3,计算公式 mv 2楼 匿名用户 在物理学中 把单位体积的某种物质的质量叫做这种物质的密度 3楼 精锐英语杨老师 m v,质量与提体积的比值称为密度。 物理中的密度是什...