Donnerstag, 23. Mai 2013

mostly incompatible - part 1 : VHDL - as if higher languages have never happened

Hacking plain VHDL without further abstractions is quite hard when you want to mantain dozens of different projects:
  • they are more or the less the same ...
  • ... but differ in the combination or configuration of the sub components that make them up
  • the answer was the SOPC builder from Altera, Xilinx has struggled a long time until they came out with Vivado and now Altera have dared to introduce QSys as a slightly incompatible successor.

The actual state

SOPC / QSys

  • The SOPC builder (and QSys) is a good and plainly implemented idea ...
  • ... you just have to make the connection where they are possible by filling out a binary matrix
  • ... but for every component interface you add, you either add a column or row - making the matrix extreeeemly big (20x60 for a normal system - just activate the right nodes ... of the 1200)
  • ... and the GUI is doing a poor job with that huge number of possible connections ...

Vivado

  • might be better than I think - since I don't develop with Xilinx chips and have only watched the presentation above (link)
  • it uses a schematic view and nice boxes with structured connections (so you don't have to see every signal)
  • since that is still too much trouble they added some heuristical automatisms like Auto-Connect for a few components it knows and a verify to find the wrongly connected dots faster ...
  • overall it seems a bit ... basic ...

Scripting as a first solution ...

In order to have a programmatic solution - without much clicking - you can use TCL scripts to automate the GUIs (Vivado, SOPC builder and QSys). They naturally use different syntax etc. but do more or less the same...
  • TCL isn't a language that is structured per se and the way Altera uses it doesn't help much either.
  • So - you can automate it, you can structure your different projects and model your systems in any way you want but ...
  • ... it isn't portable anymore
  • ... it is quite unreadable ...

... another layer above as the second

It would therefore be nice to define the system a bit more general.
The breaking-down to the actual implementation would be done in a secondary step, where the gory details can be locked away in funny code - once - and then you can forget about them.

Keine Kommentare:

Kommentar veröffentlichen