CMPEN 270 Laboratory 6


5/5 - (3 votes)

CMPEN 270 Laboratory 6  this lab you will learn about: 1. Hardware Description Language 2. Verilog HDL 3. Field Programmable Gate Arrays 4. Development suits for FPGAs – Altera Quartus II In this lab you will work on: 1. Getting your hands on EDA Playground 2. Gate Level Modeling 3. Translating your Lab 5 Circuit to Verilog Resources for the Lab: 1. Getting your hands on EDA Playground 2. Tutorial: “” Hardware Description Language In computer engineering, a hardware description language (HDL) is a specialized computer language used to describe the structure and behavior of electronic circuits, and most commonly, digital logic circuits. A hardware description language enables a precise, formal description of an electronic circuit that allows for the automated analysis and simulation of an electronic circuit. It also allows for the synthesis of a HDL description into a netlist (a specification of physical electronic components and how they are connected), which can then be placed and routed to produce the set of masks used to create an integrated circuit. A hardware description language looks much like a programming language such as C; it is a textual description consisting of expressions, statements and control structures. One important difference between most programming languages and HDLs is that HDLs explicitly include the notion of time. Throughout the history, there have been multiple HDLs. Few honorable mentions are: 1. ISPS 2. VHDL 3. Verilog HDL 4. System Verilog HDL As part of our course work, we will be focusing on the Verilog HDL. A brief introduction to the Verilog language is given in the video lecture. Verilog HDL: Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. It is also used in the verification of analog circuits and mixed-signal circuits, as well as in the design of genetic circuits. A Verilog design consists of a hierarchy of modules. Modules encapsulate design hierarchy and communicate with other modules through a set of declared input, output, and bidirectional ports. CMPEN 270 Laboratory 6 2020 2 Internally, a module can contain any combination of the following: net/variable declarations (wire, reg, integer, etc.), concurrent and sequential statement blocks, and instances of other modules (subhierarchies). Sequential statements are placed inside a begin/end block and executed in sequential order within the block. However, the blocks themselves are executed concurrently, making Verilog a dataflow language. Activities Activity 1: Getting Hands on EDA Playground Follow the step by step procedure in the EDA Playground set up video, which you can find in this week’s module on canvas. Activity 2: Create your Lab 5 Circuit Now that you know how to add a project in EDA Playground and test it, your assignment is to create the circuit you found in Lab 5 using gate level modeling. We have fully written the testbench so you do not need to make any changes to that, but you may add extra test cases if you’d like. Here is the link to the EDA Playground project for this week’s lab: Please copy this to your account and rename it “Lab_6_” To submit, make sure your project is saved and it is set to public view (default) then copy and paste your link into the submission text box for Lab 6. **We won’t be using the FPGA boards since we are not in the physical lab but you can learn more about them below** Field Programmable Gate Array A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturing – hence “field-programmable”. The FPGA configuration is generally specified using a hardware description language (HDL), like that used for an application-specific integrated circuit (ASIC). Circuit diagrams were previously used to specify the configuration, but this is increasingly rare due to the advent of electronic design automation tools. FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects that allow the blocks to be “wired together”, like many logic gates that can be inter-wired in different configurations. Logic blocks can be configured to perform complex combinational functions, or merely simple logic gates like AND and XOR. In most FPGAs, logic blocks also include memory elements. Many FPGAs can be reprogrammed to implement different logic functions, allowing flexible reconfigurable computing as performed in computer software. CMPEN 270 Laboratory 6 2020 3 Development Suits for FPGAs The FPGA development follows multiple steps (depicted in the figure below). Instead of doing these step individually, we tend to use development suits to for the full flow. The TAs will tell you a bit about each of these parts (ask your TAs). As we will be using the Altera FPGAs, we need the development suit from Altera which is called Quartus II. Altera Quartus II is programmable logic device design software produced by Altera, before Altera was acquired by Intel and the tool was renamed to Intel Quartus Prime. Quartus II enables analysis and synthesis of HDL designs, which enables the developer to compile their designs, perform timing analysis, examine RTL diagrams, simulate a design’s reaction to different stimuli, and configure the target device with the programmer. Quartus includes an implementation of VHDL and Verilog for hardware description, visual editing of logic circuits, and vector waveform simulation. Analysis and Synthesys Place and Route Assemble Timing analysis Programming the device

Scroll to Top