VHDL中无法解决信号重复引用错误的问题?

Error (10028): Can't resolve multiple constant drivers for net "OOI1[3]" at RLL.vhd(14) VHDL编译过程中出现这个问题,相关程序段如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY K IS PORT(CLK RST:IN STD_LOGIC; OI:STD_LOGIC_VECTOR(3 DOWNTO 0)); ARCHITECTURE BAV OF K IS SIGNAL OOI,OII:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLKI,RST) BEGIN IF RST='1' THEN OII<=(OTHERS=>'0'); ELSIF CLKI'EVENT AND CLKI='1' THEN IF OII<9 THEN OII<=OII+1; ELSE OII<=(OTHERS=>'0'); END IF; END IF; OOI<=OII; OI <= OII; END PROCESS; ..... 这是一个典型的十进制计数器程序段,实现的功能是一位计数器,程序中,OOI,OII均为信号类型,这只是我设计的一段程序,需要讲数据引出输出,并且将数据引出另外一个信号,在下一段程序段中再进行处理,但是,编译出错,提示信号多重引用错误,一旦 删掉OOI<=OII;,编译能通过,请问如何解决此问题?

这位兄弟,你的程序不是那里出错了,我帮你编译过了,看一下下面,黑色加粗的地方是是改过的。还有就是你要把你全部的程序发过来,才可以帮你解决。目前按照这个程序,只能检查这些错误。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY K IS PORT(CLK , RST:IN STD_LOGIC; OI:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END K; ARCHITECTURE BAV OF K IS SIGNAL OOI,OII:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS( CLK ,RST) BEGIN IF RST='1' THEN OII<=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK ='1' THEN IF OII<9 THEN OII<=OII+1; ELSE OII<=(OTHERS=>'0'); END IF; END IF; OOI<=OII; OI <= OII; END PROCESS; END BAV;
温馨提示:内容为网友见解,仅供参考
无其他回答

VHDL中无法解决信号重复引用错误的问题?
还有就是你要把你全部的程序发过来,才可以帮你解决。目前按照这个程序,只能检查这些错误。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY K IS PORT(CLK , RST:IN STD_LOGIC; OI:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END K; ARCHITECTURE BAV O...

VHDL错误 unsupported feature error:return statement in an i...
要解决这个问题,你可以把IF或CASE里面的赋值用一个信号来代替,然后再进程最后把信号的值赋值给OUTPUT就行了

VHDL代码出现near text "=>"; expecting ")", or ","错误,调用了库文件...
VHDL编程中遇到"near text "=>"; expecting ")", or ","错误,通常源于类型兼容性问题。对于bit类型,可以直接使用连接运算符,但std_logic类型则需要通过中间信号转换。例如,可以先创建一个中间信号t,如t := 0 && temp_node2(2) && temp_node2(1) && 0,然后在元件实例化中将Ain关联到这...

VHDL代码出现near text "=>"; expecting ")", or ","错误,调用了库文件...
因为bit类型支持在表达式中直接出现连接运算符&,而std_logic类型则不支持,需要通过一个中间信号转接一下。比如先将'0'&temp_node2(2)&temp_node2(1)&'0'赋值给一个中间信号t,然后在元件例化语句中将Ain关联到这个中间信号t:Ain=>t。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有...

VHDLError (10500): VHDL syntax error at max.vhd(20) near text...
在VHDL中,信号(SIGNAL)表示硬件中的“连线”,而端口(PORT)是设计实体对外的连线。只有在声明端口时,才需要声明信息的流向,而声明实体内部的连线时,不要声明信息流向,因为这根连线上的信息应当既不流出实体也不流入实体。所以声明信号tmp1和tmp2时,只需声明信号的类型,而不要声明信息的流向,...

VHDL语句中,出现的问题如下,求各位高手解决。
你在进程语句process中选择了可选项敏感信号表(clkin),同时在进程体中又使用了wait语句,这是不被VHDL语法所允许的。进程语句process中的可选项敏感信号表,其作用相当于一个隐含的wait语句。敏感信号表和wait语句,二者只能选其一!你将process(clkin)改为process就行了。

vhdl错误this signal is connected to multiple drivers
一般这种情况是指 你在不同的进程里面同时对同一个寄存器进行了赋值 当在不同进程里面对同一个寄存器赋值的时候 编译器无法判断寄存器的值到底该被哪个进程赋值

用VHDL编程时总是出现这样的错误
以上是属于多时钟问题!在设计时往往会遇到这种情况,需要对外部某个输入信号进行判断,当其出现上跳或下跳沿时,执行相应的操作,而该信号不像正常时钟那样具有固定占空比和周期,而是很随机,需要程序设计判断其上跳沿出现与否。就会写出如上程序!解决的办法可以如下,将clk1和key2 增加一级状态 lcx ...

求懂的朋友帮个忙,VHDL程序出错,不知道怎么解决
VHDL程序出错时,可以按照以下步骤来定位和解决问题:1. 检查错误类型:首先要明确错误的具体类型,比如是类型不匹配错误、语法错误还是实体或架构错误。错误信息通常会提示出现问题的行数和具体原因。2. 确认错误来源:根据错误类型,确认错误来源是否是信号和变量的类型不匹配、代码语法错误、实体或架构声明...

VHDL error can't determine definition of operator ""="" -- fou...
你采用的信号标识符count和变量标识符count混淆到一块去了。在结构体的端口声明中,已经将count声明为端口信号了,在进程中声明变量时,应当采用其它标识符。特别是在最后一个进程中没有声明变量count,却在关系表达式中出现了count,编译器自然会将这个count认定为是端口信号count。

相似回答