The problem with classical minimization is that it requires only a single output. If there is more than one output needed minimization becomes an oxymoron. The question becomes *what* do you want to minimize; gates? delay? skew? power?... Add in library gates more complex than 2I and things get difficult fast. Just the thing for computers to do. ;-) ...and they don't bother with classical minimization either.
Back to your question: I have used synthesis tools that will give a "gate view" or "technology view", but they have to be set up for the gate library you're using. The ones I used were specifically for FPGAs but the "gate view" might be useful for you, though the input is still HDL. Answer: no, I don't know of a cheap way of putting me out of work. ;-)
The process I'm presently designing on (X-FAB XB-06) does have a pre-defined digital library of gates and flops. ...Jim Thompson
--
| James E.Thompson, CTO | mens |
| Analog Innovations, Inc. | et |
| Analog/Mixed-Signal ASIC\'s and Discrete Systems | manus |
| Phoenix, Arizona 85048 Skype: Contacts Only | |
| Voice:(480)460-2350 Fax: Available upon request | Brass Rat |
| E-mail Icon at http://www.analog-innovations.com | 1962 |
I love to cook with wine. Sometimes I even put it in the food.
I don't think C++ can be used to configure an FPGA. (I prefer the term "configure", rather than "program" to describe what we do to an FPGA, although I do use "program" to describe downloading the configuration file to the FPGA.)
FPGAs and CPLDs consist of a large number of gates, flip-flops and other devices that the user can connect together as desires, to perform some useful function.
I've used Altera's Quartus program to generate configuration files for their FPGAs and CPLDs. Quartus allows me to design the circuit either by drawing schematic diagrams using gates, flip-flops, and other logic elements, or by using a Hardware Description Language (AHDL or VHDL) to describe the required logic in a text file (or to use both schematic and AHDL in the same project.)
It is possible to include a processor in the FPGA configuration - then that processor could be programmed, like any other processor, using C or C++ (if you can find a suitable cross-compiler.) However, the FPGA configuration and processor program development are two separate steps.
--
Peter Bennett, VE7CEI
peterbb4 (at) interchange.ubc.ca
GPS and NMEA info: http://vancouver-webpages.com/peter
Vancouver Power Squadron: http://vancouver.powersquadron.ca
Altium have a Xilinx (others on the way) development board and 12 month license of their full soft package for $399
formatting link
For that you get C and C++, VHDL/Verilog, GUI like OpenBus, Real-time OS, and/or C to Hardware compiler for your development. Plus 32bit processors and other IP. No restrictions.
Altium uses the Xilinx (or other) tools as the back-end, but it's all seamless, you don't notice you are using them.
If you do want to experiment with different manufactuers, the Nanoboard NB2 is better, but it's $2K.
They have a JTAG programmer for $150 for use on your own custom boards:
formatting link
Dave.
--
---------------------------------------------
Check out my Electronics Engineering Video Blog & Podcast:
http://www.eevblog.com
Sometimes not so separate if you use internal memory for the processor program. The project I contracted on last year (a high-end video camera) use a Virtex-4 with an embedded PowerPC (hard processor). The PPC code was contained in the Virtex BlockRams configured as single-port ROMs. The processor program was loaded at FPGA configuration. ;-)
Altium's "front end" includes C and C++ compilers, GUI like OpenBus, Real-time OS, and a C to Hardware compiler along with the usual Schematic/VHDL/Verilog, all in a pretty easy to use environment. Plus you get 32bit processors and other IP. No restrictions. You get all that for 12months plus a development board all for $399.
Dave.
--
---------------------------------------------
Check out my Electronics Engineering Video Blog & Podcast:
http://www.eevblog.com
I can use that JTAG programmer for most of the common fpgas(actel, altera, xilinx, etc..) and develop the code for also in altium?
Thing is, I don't see any reason to pay 150$ for a single family of fpgas when I can get that nanoboard that has a tone of stuff on it and probably end up using it to program my own fpga's anyways(eventuall).
I did see some of the video's on the nanoboard and it looks pretty cool. Those jtag programmers are squat compared to what that nanoboard has on it.
Hence, if I'm going to spend 150$ for a rinkydink programmer I might as well spend twice as much and get something I can program with and more.
Well, if you are using the term "configure" for writing HDL code then they do have C++ style coding. SystemC is a C++ "configurer". Supposedly they have several others that are more "pure".
No, look up SystemC for C++ methods that are equivalent(in some regards) to HDL. It is supposedly much more powerful and faster when used in simulation.
Yes, it works with any FPGA that Altium supports. But it is Altium specific of course, so you can't use it with other tools, if that matters. It also has what's called a "soft JTAG" interface that allows you to embed instruments (like logic analysers) inside the FPGA to monitor/debug your projects inside the FPGA.
Dave.
--
---------------------------------------------
Check out my Electronics Engineering Video Blog & Podcast:
http://www.eevblog.com
Assuming it works, could it essentially be used to program fgpa's? Or with slight modifications?
I think the point is, is the basic idea of sending the bit stream to the fpga just a matter of bit banging or a simple serial interface with bit banging and/or command protocol?
I guess it's all jtag and just the serial protocol is different ;/ I'd have to find the spec for the proASIC's to be able to create a "configurer" for it ;/
they have keywords or modifers that allow you to parallel or sequence operations. There is nothing in the C\\C++ spec that says it cannot be concurrent.
In fact it can do what just about any other programming language can do because they all are functionally equivalent(the language itself... not necessarily the compiler). Of course the raw language might not support certain needed constructs but then you modify it by adding them to support what you need.
I think with the nanoboard you get the altium designer functionality that can only be used with the fgpa part. e.g., no pcb design and such. Their goal, my guess, is to get you hooked on their EDA package as a whole. That nanoboard could surely sell for many times more if you compare it's features to other dev. boards.
That, or they just don't care about ripping your ass a new one like many other companies.
You obviously don't seem to know much about programming languages. A language is just a syntax. Most programming languages are equivalent(in fact, almost certainly).
What does this mean? It means that you can translate one language to another. If you can't do this then they are not equivalent. In most cases where this is not possible then it only requires slight adaptation(a modified compiler). I'm not saying all languages are exactly equivalent but most are pretty damn close. Specially when you consider they all have about the same goals. If any one programming language is extremely lacking it is ether very specialized for a specific task or somewhat useless.
In any case the formal nature of languages specifies a syntax and generally speaking you can at least make any other language "look" like whatever language you want. The grammers are independent of the keywords/tokens they use.
It's all about how the languages are interpret that makes the difference.
formatting link
"SystemC is essentially a C++ library used for modeling concurrent systems in C++. Along with concurrency, SystemC provides a notion of timing as well as an event driven simulations environment. Due to it's concurrent and sequential nature, SystemC allows the description and integration of complex hardware and software components."
So your "theory" about C goes out the window. All they did was extend C++ using some keywords to add in the ability to specify the concurrency. From what recall, VHDL didn't have the ability to specify timing either until it was modified to do so.
nonsense is usually due to ignorance. You just should have chosen a nail ;)
Don't know but there software looks pretty good and the nanoboard seems to have a lot more functionality than most other dev boards. It has a touchscreen, led's, fpga, video port, protoboard, and many other useful things. I doubt you'll find a dev board from other with a touchscreen for under 1k.
Gives a good explanation of it. It seems that it can actually be used with any compiler as it is a class library entirely built from C++. Although at some stage in the linking/assembling process one must convert the code to something else which would require special software.
It's for a soft core processor of course. A lot of FPGA designs these days will have a soft core processor in them, so it's a very common requirement. Altium comes with several soft cores for free.
No, this is different. OpenBus is a propreity Altium thing that allows you to design an FPGA project in a visul "flow chart" type manner. i.e. drop a processor into your system and then connect external memory and periphers etc. You won't need any VHDL or other HDL code to get your project working if all the building blocks you want are in the Altium library. It almost certainly the easiest way possible to get an FPGA project up and running. It's not for everyone, but it is very simple.
Yes, it actually works. See above.
No, an NB3000 development board with a 12month licence with everything you need to do FPGA/C/C++/C-Hardware/soft core etc is only $399. If you want the software outright it's only $995. You get everything except the PCB stuff. It's only $4K if you want the full package with PCB design outright.
Dave.
--
---------------------------------------------
Check out my Electronics Engineering Video Blog & Podcast:
http://www.eevblog.com
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.