Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

Verilog Synthesis Q

Am bumping into a synthesis problem inside of an always construct. Simplified code is

reg true_or_false[0:9999];

reg a;

always (negedge clk)

begin

if (a <5000)

true_or_false[a] <= 1

else if (a < 10000)

true_or_false[a+5000] <= 1

end

The error I get is "Cannot convert all sets of registers into RAM megafunctions when creating nodes. The resulting number of registers remaining in design exceeds the number of registers in device....."

If I remove the if else construct, no allocations (register/memory/etc) are > 30%.

I'm quite sure I'm violating an HDL paradigm. Could use a little guidance on why and thoughts on how I might implement it correctly.

THNX,

ME

17 Replies