Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16597 Discussions

Qsys port order in the symbol file (.bsf) ... random? How to fix? (v.12.1SP1)

Altera_Forum
Honored Contributor II
2,098 Views

Hi, I had to transform an SOPC bilder System created in Quartus 9.1 to a Qsys System in Quartus 12.1SP1 ... 

 

But now I'm running into a very frustrating issue with qsys ... I hope I'm missing some simple thing. 

 

The problem is I have a sysq-system and I use schematics as the top level so I create a symbol file of course from qsys and instantiate it at the top level ...  

Now, when I do some modification in the Qsys and regenerate and subsequently update the symbol then all pins get randomly changed to differnt locations in the symbol ... 

 

How can I fix this? It is most annoying to shuffle all pins again to the right pins!!!  

SOPC never did this before!!! 

I need to fix this problem because I suppose that I'll have to insert more other PIO and ports and I can't change the schematics connection everytime!!! 

 

Help me! 

Thanks!
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
1,059 Views

You cant stop this. THe only workaround would be to do the top level in HDL and use named association.

0 Kudos
Altera_Forum
Honored Contributor II
1,059 Views

Hi,  

I have the same Problem with .bsf generation in QSYS v.12.1sp1 ... 

I had a .bsf built with QSYS v.11.1sp2, which looked quit usable 

After compilation with 12.1sp1 everything was scrambled :mad: 

 

The old 11.1-bsf begins with 

... (header "symbol" (version "1.2")) (symbol (rect 64 64 384 1512) (text "fpga_backup" (rect 148 -1 234 15)(font "Arial" (font_size 10))) (text "inst" (rect 8 1432 25 1444)(font "Arial" )) (port (pt 0 72) (input) (text "clk_clk" (rect 0 0 37 14)(font "Arial" (font_size 8))) (text "clk_clk" (rect 4 61 41 75)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 128 72)) ) (port ... The new one (v12.1) begins with 

... (header "symbol" (version "1.1")) (symbol (rect 0 0 512 1448) (text "fpga" (rect 244 -1 261 11)(font "Arial" (font_size 10))) (text "inst" (rect 8 1432 20 1444)(font "Arial" )) (port (pt 0 72) (input) (text "in_port_to_the_data_link_irq" (rect 0 0 113 12)(font "Arial" (font_size 8))) (text "in_port_to_the_data_link_irq" (rect 4 61 172 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 224 72)(line_width 1)) ) ... Is it possible that QSYSv12.1 uses an older bsf-generator ??? 

 

The bsf-syntax seems to be quite simple, so it shouldn't be a big issue to build a TCL-script, 

which makes a .bsf looking like the good old SOPC-symbols :-) 

 

I haven't found a documentation of the .bsf syntax so far. So I tried to comment my 

automatically generated one.... 

... (header "symbol" (version "1.2")) (symbol (rect x1 y1 x2 y2) --> the rectangle for the symbol (text "<title>" (rect ....)(font "...")) --> Title of the QSYS-System (port (pt x y) --> coordiates of the connection point (input) (text "...." (rect 0 0 x y)(font "...")) --> ?? ist it the signal name of the port (text "...." (rect x1 y1 x2 y2)(font "...")) --> Text which appears as node name (line (pt x1 y1)(pt x2 y2)(line_width 3) --> line to the port (Bus has line_width 3) ) (port .... ) 

maybe I've to play around a bit... 

... but maybe somebody already has done it :) 

 

Regards,
0 Kudos
Altera_Forum
Honored Contributor II
1,059 Views

Not quite what you're looking for, but the SOPC Builder "version 1.1" format is produced by the Perl script in sopc_builder/bin/mk_bsf.pm Yes it looks pretty simple. 

 

An alternate way to work around this problem is to use Quartus to produce your own .bsf file from a modified copy of your Qsys top-level .v or .vhdl file. 

 

In other words, create a copy of the top-level HDL file, modify the ordering of the ports, and then use Quartus File->Create/Update->Create Symbol for Current File... to have Quartus parse and generate a new .bsf from your modified file. 

 

You would only have to repeat this process each time you change the ports included in the top level Qsys.
0 Kudos
Reply