How to best share code between projects in Quartus Prime Standard and Quartus Prime Pro ?
This is a very long request and actually contains several Questions, however, they follow
a common theme, so I hope you do not mind me bunching them together.
We have a current and a future product. Coarsely, they consist of a processor system connected to signal processing hardware in FPGA, and C(++) firmware running on the processor.
The difference between the two products is:
- More signal processing hardware instances of the same type
- Some new signal processing features exclusively with the new product (after delivery to customers)
We use FPGAs to be able to implement new features after product delivery.
As we were already using the Cyclone IV FPGA, it seems to make sense to use another Intel FPGA
to be able to share code between the two products. So we decided to use the Arria 10 for the new
product; and here begins my sadness:$
I thought we could easily share code, because both FPGAs are supported by Quartus Prime. But in
reality, the Cyclone IV is only supported by Quartus standard, but the Arria 10 is only properly
supported by Quartus Pro (correct me if I am wrong).
It seems that I have to migrate our Pro product to the Pro tools, and to prepare for this,
I would like to ask your opinion about three issues:
- QSYS compatibility (I use QSYS for whatever it is called these days)
- VHDL language compatibility
- C(++) language compatibility
QSYS compatibility
==================
The configuration files for code generation with QSYS is not compatible between the two versions.
For the processor system, this is not a problem, the two versions are sufficiently different to
not share FPGA code, and will probably not often be changed anyway.
However, for Signal Processing components (Fir filter, nco) generated by QSYS, this seems to be a problem.
## Question 1:
Is it possible to use the same QSYS files in both Quartus versions (in this case), or
is there any other way to share these between our product variants ?
VHDL language compatibility
===========================
This part is just to get Intel PSG to move in the right direction.
As long as we want to share code, it seems to be impossible to use any VHDL2008 language features
that I would like to use. In particular, I think fixed point arithmetic would be very useful for
signal processing. However, it seems the IEEE_proposed library is not compatible with the
preliminary VHDL2008 implementation in Quartus Standard.
This seems to mean that you can either:
- Only use the VHDL2008 features that are implemented in Quartus Standard (which features are those anyhow?)
- Only use the fixed point package (I assume it is possible to include the IEEE_proposed fixed point library in the Standard project, and the VHDL2008 fixed point library in the Pro project)
## Question 2
Is this correct ?
C(++) language compatibility
============================
The firmware library should be portable between the systems. However also here, the Quartus
Standard version is not further developed. However, here there seems to be something we can do:
It seems that the Nios II SBT for Pro can also be used FPGA hardware generated by Standard
software. However, for some reason, Intel PSG does not apply the Pro updates to the Standard
software.
##Question 3
If you have a license for the Pro software, is there anything that should you from using the Pro
SBT tools for the FPGA code generated by the Standard software?
What reason could Intel PSG have for not supporting this ?
Appeal to Intel PSG
===================
I have not experience with competing FPGA products, but from what I read in other newsgroups,
these are even worse in this respect. Nevertheless, Intel PSG, as your loyal customer I wish you
to outshine your competitors, and in doing so, make me happy:
I expect that support of a product is more than fixing bugs only. I think it also includes
porting tools to new operating system versions and supporting new version of the language
standards.
If you would do this, existing customers will be inclined to subscribe the support package.
I also would like to have IP in generic, standard compatible, portable code, no in generated
code that breaks with every package update.
Think of the four i-s ! (in compatibiliti)