lcofjp 发表于 2012-4-11 02:47:15

【verilog请教】驱动源问题,大家帮忙,难眠!多谢!



目前本人在自学verilog HDL,刚刚起步(业余时间学习也就半个月),买了一本书《Verilog HDL入门(第三版)》,书中第33页部分内容如下:

********************************************************************************
若wire类型(或者tri类型)的线网由多个驱动源驱动,则线网的有效值由下表决定

下面举例说明:
assign mode_enable = clk_enable & clk_mode;
...
assign mode_enable = clk_enable ^ clk_mode;

在这个例子中,mode_enable有两个驱动源,分别为clk_enable和clk_mode。两个驱动源的值(表达式等号右侧的两项)用于在上表中作索引,以便决定mode_enable的有效值。由于mode_enable是一个向量,每位的值需要独立计算。例如,若clk_enable的值为01x,且clk_mode的值为11z,则mode_enable的有效值是x1x(第1位0和1在表中索引到x,第2位1和1在表中索引到1,第3位x和z在表中索引到x)。
********************************************************************************
引用结束,作为一个初学者问题如下(由于初学,仿真验证什么的还不会,这个入门要比单片机复杂):
书中所说mode_enable的两个驱动源是clk_enable和clk_mode,(好像)只与这两个变量的值有关,而与后面那两个表达式无关,那表达式(无论做什么运算)不是显得毫无意义了?
而我觉得这两个驱动源应该分别是【clk_enable&clk_mode】和【clk_enable^clk_mode】,应该是这两个表达的运算结果去查表。
我现在很迷茫,还没入门,不知道我的理解哪里有误区,请大家多多帮忙!

wye11083 发表于 2012-4-11 07:58:05

目前综合器不能支持多驱动源,X所谓的驱动网表实际上是手工布线并连接的输出值。综合器会报错,提示同一网络有多个驱动源。

lcofjp 发表于 2012-4-11 08:35:09

wye11083 发表于 2012-4-11 07:58 static/image/common/back.gif
目前综合器不能支持多驱动源,X所谓的驱动网表实际上是手工布线并连接的输出值。综合器会报错,提示同一网 ...

多谢,但我觉得书上的内容从理论上来说是错误的。应该是一个与门与一个异或门的输出作为驱动源。
页: [1]
查看完整版本: 【verilog请教】驱动源问题,大家帮忙,难眠!多谢!