Co-simulating Verilog Design in Python (Using MyHDL) Setup MyHDL MyHDL is a hardware description language (HDL) written in Python. It is also used as a hardware verification language (HVL) Designs written in MyHDL can be converted to Verilog or Read more…
Mathematics of Deep Learning 1 Introduction Deep learning(DL) is becoming increasingly popular within machine learning community for wide range of applications like speech recognition [1], computer vision [2] and natural language processing [3]. The major advantage in DL is Read more…
UART (Universal Asynchronous Receiver Transmitter) UART is a widely used asynchronous communication protocol. It is the most common protocol to transmit data from PC to microcontroller/FPGA boards. UART is the successor of RS-232 and RS-458 asynchronous protocols. RS-232 was very Read more…
SPI (Serial Peripheral Interface) SPI is serial communication protocol used by microcontrollers and sensors. It is widely used to due to its simplicity and ability to operate at high data rates. However there are several disadvantages like, only single Read more…
SystemVerilog from the beginning The tutorial mainly focus on the SystemVerilog constructs and how could we use the language for both the “Design” and “Verification”. The concepts will be built from the scratch and are mainly discussed using sample designs. Read more…
What is Code Coverage ? Code Coverage is an estimation of how much percentage of your RTL design is really tested in your testbench. Ideally, a well tested RTL design should have 100% code coverage. There are different types of Read more…
Datapath pipelining The concept of pipelining extracted from the concept of production lines of vehicles, makes use of breaking down a task into several subtasks and using parallel processing to complete those subtasks. There are two main objectives achieved using Read more…
I2C (Inter Integrated Circuit Communication) I2C – Inter-Integrated Circuit Communication is a widely used protocol for communication between modules of a digital systems both inside a chip as well as on a circuit board. Operating on two frequencies 100 MHz Read more…
HDMI High Definition Multimedia Interface is a widely used interface for communicating audio visual data among electronic devices. This interface introduced in 2002 by a group of 7 electronic product manufacturing companies, facilitates the communication of uncompressed video and both Read more…
Ripple Carry Adder Basic gates such as NOT, OR, AND, NAND and NOR are used to carry out basic arithmetic operations like addition, subtraction, multiplication and division in processors. Addition is the most basic arithmetic operation, as subtraction (a series Read more…
Verilog Gate Level Modeling Gate Level Modeling describes a hardware circuit using the logic gates and their interconnections. Verilog has become popular because it supports behavioral modeling where the user doesn’t have to worry about which logic gates needs to Read more…
Verilog Testbench Writing – A step by step guide Testbenches are modules written to test a design or a part of a design by giving it different inputs and observing the output using a simulator. The testbench intends to facilitate Read more…
Verilog Generator Blocks Verilog generate blocks are the method of avoiding unnecessary code repetition for the codes having same architecture. Description It must be defined within a module. The port connections are realized using a special variable referred as genvar. genvar is an Read more…
Blocking and Non-blocking Statements In Hardware description languages, blocking and non-blocking statements are used to generate either sequential or combinational logic. As the name suggests, a blocking statement blocks the next statement in the queue from executing until the current Read more…
Synopsys design constraints (SDC) is a format used to provide additional infromation required by EDA tools for Synthesis and Place & Route. It is based on standard Tcl language therefore any valid Tcl command can be used in .sdc file. Read more…