HDL Overview
With the development of EDA technology, it has become a trend to design PLD/FPGA using hardware language. The main hardware description languages at present are VHDL, Verilog HDL and System Verilog. VHDL was developed earlier and has strict syntax; Verilog HDL is a hardware description language developed on the basis of C language, with a more flexible syntax; System Verilog can be regarded as an upgraded version of Verilog HDL, which is closer to C language and supports multi-dimensional arrays. Compared with VHDL and Verilog HDL, VHDL has very strict writing rules and syntax requirements. For example, different data types are not allowed to be assigned to each other but need to be converted. Irregular codes written by beginners will generally report errors when compiled; Verilog is more flexible, and the results of the synthesis may not be what the programmer wants at some point. Since there is not much information about System Verilog, few people currently understand it. According to a survey, there are more companies using Verilog HDL than using VHDL in China. From the perspective of EDA technology development, hardware C language compiler software for CPLD/FPGA design has appeared. Although it is not mature yet and has very few applications, it may become another means of designing large-scale CPLD/FPGA after VHDL and Verilog.
Choose VHDL, Verilog HDL or System Verilog?
This is the most common question for beginners. In fact, the difference between these three languages is not big, and their description capabilities are similar. After mastering one of the languages, you can learn another language quickly through short-term learning. It is even easier to learn System Verilog after mastering Verilog HDL. The choice of language mainly depends on the usage habits of the people around you, which can facilitate future learning and communication. Of course, if you are an integrated circuit (ASIC) designer, you must first master Verilog, because in the field of IC design, more than 90% of companies use Verilog for IC design. For PLD/FPGA designers, the three languages can be freely selected. If you are familiar with C language, it is recommended that you learn Verilog HDL. You will find that many syntax and keywords of Verilog HDL are the same as those in C language, so that you can quickly break through the language barrier and get started quickly.
Several important tips for learning HDL
1. Understand the problem of HDL synthesizability:
HDL has two uses: system simulation and hardware implementation. If the program is only used for simulation, then almost all syntax and programming methods can be used. But if our program is used for hardware implementation (for example: for FPGA design), then we must ensure that the program is "synthesizable" (the program's functions can be implemented with hardware circuits). Non-synthesizable HDL statements will be ignored or reported errors during software synthesis. We should keep in mind that "all HDL descriptions can be used for simulation, but not all HDL descriptions can be implemented with hardware." 2. Use hardware circuit design ideas to write HDL: The key to learning HDL well is to fully understand the relationship between HDL statements and hardware circuits. Writing HDL is to describe a circuit. After we write a program, we should have a general understanding of the generated circuit, and we cannot use pure software design ideas to write hardware description language. To achieve this, we need more practice, more thinking, and more summary. 3. Grammar mastery is more important than precision. More than 20% of basic HDL statements can complete more than 80% of circuit design, and 30% of basic HDL statements can complete more than 95% of circuit design. Many uncommon statements are not supported by all integrated software. When the program is transplanted or the software platform is changed, it is easy to cause compatibility problems, and it is not conducive to reading and modifying by others. It is recommended to study common statements carefully and understand the hardware meaning of these statements. This is more useful than mastering a few new syntaxes. The relationship between HDL and schematic input method The relationship between HDL and traditional schematic input method is like the relationship between high-level language and assembly language. HDL has good portability and is easy to use, but it is not as efficient as schematics; schematic input has good controllability, high efficiency, and is more intuitive, but it is very cumbersome and poorly portable when designing large-scale CPLD/FPGA. In real PLD/FPGA design, it is usually recommended to use a combination of schematics and HDL to design. Use schematics where it is suitable for schematics, and use HDL where it is suitable for HDL. There is no mandatory regulation. Our ultimate goal is to design an efficient, stable circuit that meets the design requirements in the shortest time using the tools we are most familiar with. HDL development process The complete process of developing PLD/FPGA using VHDL/VerilogHD language is as follows: 1. Text editing: It can be done with any text editor, or with a dedicated HDL editing environment. Usually VHDL files are saved as .vhd files, and Verilog files are saved as .v files. 2. Functional simulation: Import the file into the HDL simulation software for functional simulation to check whether the logic function is correct (also called pre-simulation, this step can be skipped for simple designs, and only timing simulation is performed after the wiring is completed) 3. Logic synthesis: Import the source file into the logic synthesis software for synthesis, that is, synthesize the language into the simplest Boolean expression and signal connection relationship. The logic synthesis software will generate the EDA industry standard file of .edf (edif). 4. Layout and routing: transfer the .edf file into the software provided by the PLD manufacturer for routing, that is, place the designed logic into the PLD/FPGA 5. Timing simulation: the precise parameters obtained in the layout and routing need to be used to verify the timing of the circuit with simulation software. (Also called post-simulation) 6. Programming download: after confirming that the simulation is correct, download the file to the chip Usually, the above process can be completed in the development tools provided by the PLD/FPGA manufacturer (such as QuartusII, ISP, ISE), but many integrated PLD development software only supports a subset of VHDL/Verilog, which may cause a few syntaxes to fail to compile. If a dedicated HDL tool is used to execute separately, the effect will be better, otherwise there will be no reason for so many companies selling dedicated HDL development tools to exist.
Previous article:Development of System-on-Chip Design and Verification Languages
Next article:Understanding of blocking assignment and non-blocking copy in Verilog
- Popular Resources
- Popular amplifiers
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- Sn-doped CuO nanostructure-based ethanol gas sensor for real-time drunk driving detection in vehicles
- Design considerations for automotive battery wiring harness
- Do you know all the various motors commonly used in automotive electronics?
- What are the functions of the Internet of Vehicles? What are the uses and benefits of the Internet of Vehicles?
- Power Inverter - A critical safety system for electric vehicles
- Analysis of the information security mechanism of AUTOSAR, the automotive embedded software framework
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Summary of commonly used electronic test and measurement instruments
- 【GD32L233C-START Review】7. Temperature sensor driver
- Please recommend a chip that can convert 9V battery to 3.3V
- F4 USB routine opening problem
- Master guide fpga altera to divide the 50MHZ clock to read rom data, mif file
- Today's live broadcast: TI 60G mmWave sensor overview and application introduction
- TMS320F28335-CAN module routine explanation
- STM32 internal temperature sensor experiment summary
- Matlab programming experience
- USB2.0 related