Forum Discussion

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

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

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!

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

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

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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,
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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.