Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21611 Discussions

4-QAM: Error (10028): Can't resolve multiple constant drivers

Altera_Forum
Honored Contributor II
1,858 Views

I am building a 4-QAM using VHDL, but encountered this error which I've spent hours figuring out: 

 

Error (10028): Can't resolve multiple constant drivers for net "in_buffer[1]" at qam4.vhd(53) 

Error (10029): Constant driver at qam4.vhd(99) 

Error (10028): Can't resolve multiple constant drivers for net "in_buffer[0]" at qam4.vhd(53) 

 

Here is my written code: 

 

 

Please help me find out why is it happening. Thank you for your help!
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
898 Views

Sounds like you're driving a signal more than once. 

 

The code you posted dosnt seem to be there
0 Kudos
Altera_Forum
Honored Contributor II
898 Views

I am a bit curious why digital terminology includes notions like bus, engine, throttle, starter,body,pipe,glitch,timing and drivers 

sounds like they borrowed from transport industry. A bus cannot be driven by more than one driver. if there are two drivers or more then they should agree on a schedule instead of arguments or a fight. This is analogous to logic decisions...the poor compiler and the poor software engineer behind it cannot make the drive decisions for you because they don't have prior knowledge of the application. 

 

The basic rule is that any node is driven through one single concurrent statement or one or more sequential statements in the same process. The multiple seq statements imply either a construct for decision making or an overwrite situation if there are no conditions. 

 

Thus: data(7 downto 0) <= x"00"; 

data(7) <= '1'; 

 

is ok within a process to overwrite data(7) though you may get warning. 

This is main difference from software mindset. The compiler has to decide at compile time what the logic is. It does not design a circuit to follow your seq statements literally...
0 Kudos
Reply