- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello everyone,
I am new with FPGA. Now I would like to learn FPGA but confused with AHDL, VHDL and Verilog. Could anyone describe what are the difference between them? What is your suggestion for me who want to start with FPGA? I find out that Verilog is a new one! Your replies are fully appreciated!Link Copied
- « Previous
-
- 1
- 2
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I dont work for altera, and altera will never remove AHDL support as it would kill too many legacy products (a and check the /db/ folder when you compile - its full of AHDL primitives). Yes, you can simulate AHDL with a netlist - but it is a netlist and hence very very slow. We have simulations that take hours to run with just RTL code - I hate to think how long they would take with a netlist. Hence AHDL is of no use to the majority of the design market for FPGA, and utterly usless for ASIC development. We also use both Altera and Xilinx chips where I work - so portability is a primary concern - so no schematics, no AHDL, and HDL must be as portable as possible - so inference is used most of the time. Most Altera IPs now are done in systemVerilog. With larger designs, Behavioural code is a blessing, not a curse. --- Quote End --- yes, behavioural modelling is a blessing. untill it stabs you in a back. when putting behavior into realization, after compilation you never know what the actual circuit looks like, how it implemented itself. and it changes from compilation to compilation. im not arguing it really revolutionized FPGA and ASIC design but it proved unreliable. and made the circuitory part uncontrollable because even after compilation if you study entire circuit, you recompile it with some additions and you may get totally different circuit because this behavior now may be implemented in some other manner. you must also constantly keep track for the fact that if your model behaves itself one way and in a same time it "may look like" to behave some other way, the synthesis may choose that other way and implement some other circuit. so while writing you must cut all the other paths and constantly clear that out for the synthesis so the compiler has no other chance but to understand exactly what you said.the reason for this lies within the base of HDLs. at any moment i may tell you something that may be understood this way or another. and of course i am not aware of that, i assume that you have got exactly what i said but you could understand it the other way right? and your choice may vary depending on surrounding circumstances; now imagine how hard it is for me to put it in such a way to guarantee that you will always understand this the way i want to :) i am sick and tired of running after the behavioral model but well.. AHDL also uses behavioral models so... i'm just assuming that AHDL is more reliable during synthesis and fitting optimizations that is all.time will tell. now im gonna go study AHDL. i have started it today. i have a strong rope with me just in case. to hung myself if something :D
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- yes, behavioural modelling is a blessing. untill it stabs you in a back. when putting behavior into realization, after compilation you never know what the actual circuit looks like, how it implemented itself. and it changes from compilation to compilation. --- Quote End --- I dont know how you write verilog, but when I write VHDL or verilog, I know I will get the same circuit every time. And you can always check the schematic with the RTL and schematic veiwers if there seems to be a problem. Most of the community dont have a problem either. Assuming you follow the coding guidelines properly (which are very standard) then you can usually go straight from good quality RTL simulation to FPGA on the bench without having to resort to schematics. --- Quote Start --- im not arguing it really revolutionized FPGA and ASIC design but it proved unreliable. and made the circuitory part uncontrollable because even after compilation if you study entire circuit, you recompile it with some additions and you may get totally different circuit because this behavior now may be implemented in some other manner. you must also constantly keep track for the fact that if your model behaves itself one way and in a same time it "may look like" to behave some other way, the synthesis may choose that other way and implement some other circuit. so while writing you must cut all the other paths and constantly clear that out for the synthesis so the compiler has no other chance but to understand exactly what you said.the reason for this lies within the base of HDLs. at any moment i may tell you something that may be understood this way or another. and of course i am not aware of that, i assume that you have got exactly what i said but you could understand it the other way right? and your choice may vary depending on surrounding circumstances; now imagine how hard it is for me to put it in such a way to guarantee that you will always understand this the way i want to :) i am sick and tired of running after the behavioral model but well.. AHDL also uses behavioral models so... i'm just assuming that AHDL is more reliable during synthesis and fitting optimizations that is all.time will tell. now im gonna go study AHDL. i have started it today. i have a strong rope with me just in case. to hung myself if something :D --- Quote End --- AHDL is very specific - it is almost like writing schematics in code. But this is where the problems come in. Each FF has d,q,set, preset,reset inputs, which doesnt map to newer technologies. I would HIGHLY recommend you stick with verilog, SV or VHDL if you want to remain employable. If you're having problems with verilog, then you're clearly not writing it properly (other companies dont have the same issues you seem to be having).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I would HIGHLY recommend you stick with verilog, SV or VHDL if you want to remain employable. If you're having problems with verilog, then you're clearly not writing it properly (other companies dont have the same issues you seem to be having). --- Quote End --- aa... no...? they don't???? well... hmm... that is probably the reason why everyone are so satisfied by verilog. okay, well... since i do not have an academic knowledge (i studied from books) it is most likely that i violate one of the rules....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The books should teach you the templates for the basic elements (flip-flops, memories, muxes etc)- and then it's a case of just scaling them up and combining them.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Old is gold. AHDL is king.
Case Study: We have a 17 year old design for an Acex device in AHDL. The hardware was redesigned with a Cyclone LP. Now I had to port the AHDL code to the new board. I decided to take a huge leap and work with HLS because that could be the future, it is said to produce RTL code similar or better than handwritten HDL and saves development effort immensely.
But the ground truth was disappointing:
In Quartus Lite 19.1 HLS is nowhere to be found for download. In 19.4 Pro luckily it supported Cyclone10GX though our device was Cyclone 10 LP. Anyway was curious to have a feel of HLS.
HLS has to be invoked from the command prompt from a batch file. Very primitive but that is OK
I got the counter example compiled. A simple counter took 5 minutes to compile. There we four folders and hundreds of files. I could include this as an IP in my project WOW.
Next tried with ïmage_downsample' example. After 15 minutes it was still compiling (as I found from the Windows Task Manager) Aborted.
Next tried the example interp_decim_filter. It did output IP.
So abstracting the design to a high level in C and using the HLS compiler is indeed an option. But I do not think I would/could use it today. First it should support Cyclone 10. Next a better integration into Quartus would be desirable. Thirdly the compile times should be a bit faster.
Until then reusing the AHDL code is the easiest path. Some LPM's have disappeared, some have mutated (17 years is a long period). But porting them is trivial and at most involves some clicks on the IP Catalog editor that code rewriting.
Thanks Intel for the AHDL support.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
-
- 1
- 2
- Next »