Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
17267 Discussions

Force a reg not to use M9K but logic

Altera_Forum
Honored Contributor II
1,579 Views

Hi 

 

I do use M9K for ROM tables and this works fine 

I also have to use quite some latches since I works as pipeline 

 

The problem are when I do use latches then QuartusII on some of the latches do use M9K and other a logic , then I do not have enough M9K for ROM 

 

I have tried different combination with ramstyle="logic" in my verilog 

 

(* ramstyle = "logic" *) reg [63:0] Block_out; 

reg [63:0] Block_out /* synthesis ramstyle = "logic" */; 

 

And still some of my reg do use M9K 

 

Any hint?
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
575 Views

There are different synthesis attributes to control RAM inference for memory arrays and for shift registers. Apparently your construct refers to the latter. http://www.alteraforum.com/forum/showthread.php?t=37702

0 Kudos
Altera_Forum
Honored Contributor II
575 Views

That did the trick 

Assignments -> settings -> analysis and synthesis settings -> more settings 

"auto shift register placements". Change this to "off". 

Thank you
0 Kudos
Altera_Forum
Honored Contributor II
575 Views

A global assignment works too, of course. As in the linked thread, the assignment is often required for specific objects.

0 Kudos
Reply