The document discusses hardware description languages (HDLs) which are used to describe digital systems in a textual format similar to programming languages. It notes that HDLs represent parallel operations while programming languages focus on serial operations. Two standard HDLs are VHDL and Verilog. The document then describes the typical design flow when using HDLs, including writing HDL code, simulation, synthesis to map to hardware primitives, fitting to target technologies, and timing analysis.
This document summarizes a presentation on domain-specific language features given by Ted Kaminski and Eric Van Wyk. It discusses the challenges of composable syntax and semantics when developing language extensions. Context-aware scanning is presented as a way to address challenges in scanning by communicating between the scanner and parser based on the parser's current context. Modular analyses are discussed as being important for guaranteeing the composability of language extensions.
The document describes the design and implementation of digital circuits on a Kintex-7 FPGA using the KC705 evaluation board. It discusses developing logic circuits like half adders, full adders, multiplexers, and counters in VHDL, simulating them using Xilinx ISE, and testing the designs on the FPGA board. Key circuits were also implemented using Xilinx IP cores for subtraction and multiplication.
CETPA INFOTECH PVT LTD is one of the IT education and training service provider brands of India that is preferably working in 3 most important domains. It includes IT Training services, software and embedded product development and consulting services.
http://www.cetpainfotech.com
Verilog is a hardware description language that can be used to describe digital systems like microprocessors, switches, and memory. It allows designs to be created using either a bottom-up or top-down methodology. Bottom-up designs are built up from individual gates, while top-down designs start at a higher level and are easier to change. Verilog supports designing at different levels of abstraction like behavioral, register-transfer, and gate levels.
Renjini has over 8 years of experience in FPGA and ASIC design using VHDL and Verilog. She has expertise in digital design, processor architectures, and validation of FPGA boards. Some of her projects include designing FIR filters, USB specifications, and integrating peripherals into an SoC. She is skilled in languages like VHDL, Verilog, and C. Renjini holds an MTech in VLSI design and has worked on telecom products at Cyient and Tech Mahindra.
CETPA INFOTECH PVT LTD is one of the IT education and training service provider brands of India that is preferably working in 3 most important domains. It includes IT Training services, software and embedded product development and consulting services.
This document discusses the design of low-density parity-check (LDPC) codes that provide unequal error protection (UEP) when used with higher order constellations (HOCs) like 8-PSK and 64-QAM. The proposed method divides the variable node degree distribution into sub-distributions corresponding to protection classes from the source coding and modulation classes of the HOC. An iterative linear programming approach is used to optimize the sub-distributions to enhance the UEP capability of the code for different signal-to-noise ratios, while reducing the overall bit error rate by accounting for the different bit error probabilities of the HOC. Simulation results show significant bit error rate reductions compared to codes optimized for binary phase-shift keying
Ravikanth P is seeking a position in VLSI design and verification. He has a M.Tech in VLSI and Embedded Systems and 8 years of experience in RTL design using Verilog and verification using SystemVerilog. His skills include digital design, FPGA design, verification methodologies, assertion based verification, and using tools like Riviera Pro and ISE. He has worked on academic projects involving router design, chirp generator design, adder design, and sensor interfacing with microcontrollers.
The document discusses domain specific languages and their use in various applications such as embedded software, data analysis, and business applications. It covers topics like notations for DSLs including text, diagrams, tables and forms. It also discusses how programs can be represented as trees and how languages are defined using concepts. Key challenges discussed include parsing as a bottleneck for expressiveness and directly editing program trees.
This document provides a conceptual framework for building domain-specific languages (DSLs). It discusses key characteristics of DSLs such as their focused domain, small size, and fast evolution compared to general purpose languages. The document outlines design dimensions for DSLs, including expressivity, completeness, coverage, supported paradigms, semantics, modularity, and separation of concerns. It provides examples of DSLs for components, refrigerators, extended C, and pension plans to illustrate concepts. The document argues that DSLs should provide linguistic abstractions that directly represent the semantics of a domain to avoid requiring semantic analysis during processing.
Vivek Dilip Kotwal is an embedded software engineer with over 3 years of experience. He has expertise in embedded C/C++, microcontrollers, protocols like CAN and I2C, and tools such as MATLAB and CANoe. Currently employed at Cresttek Engineering Solutions, his previous projects include developing a biometric attendance system using fingerprint detection and an ARM processor, and a CAN-based body control module for power windows and central locking in passenger cars. He holds a BE in electronics and telecommunication from Pune University.
Gautham Gnanasekar is an electrical engineering graduate with experience developing FPGA prototypes of floating point operators. He has skills in design tools like MATLAB, Simulink, and FPGA tools. He interned at The MathWorks developing high-performance FPGA prototypes for floating point arithmetic and verified ASIC designs as a trainee. He has experience with projects involving floating point adder design, asynchronous FIFO design, and MIPS CPU synthesis.
An embedded system is a microprocessor-based system designed to perform specific tasks and embedded as a component in a larger system. Common application areas include automotive electronics, aircraft electronics, trains, and telecommunications. The key design challenge is to optimize numerous design metrics like unit cost, size, performance, power consumption, and flexibility simultaneously. Common integrated circuit technologies used include full-custom/VLSI, semi-custom ASICs, and programmable logic devices like FPGAs. VHDL and Verilog are hardware description languages used to model and simulate the system at different levels of abstraction from transistors to functional behavior.
Vikas is seeking a position that allows him to share and grow his knowledge of micro-electronics and VLSI design. He has an M.Tech in micro-electronics from IIT Hyderabad with a 7.2 CGPA and a B.Tech in electronics and communication engineering with 78%. His technical skills include Verilog HDL, CADENCE, and MATLAB. He has participated in workshops on ARM processors and Xilinx FPGAs. For his M.Tech project, he analyzed active transformers and their impact on voltage controlled oscillators. His B.Tech project implemented a Huffman encoder using an FPGA with Verilog HDL.
This document contains the resume of KANUGANTI RAVI TEJA. It summarizes his educational qualifications including an M.Tech from Vellore Institute of Technology and a B.Tech from Joginpally B.R Engineering College. It also lists his skills in hardware description languages, EDA tools, and programming languages. The resume describes several ASIC design projects Ravi Teja has worked on related to motion estimation, bus bridges, processors, and FIFO controllers. It was submitted for a position in the semiconductor industry.
Program, Language, & Programming Language
Object Oriented Programming vs Procedure Oriented Programming
About C
Why still Learn C?
Basic Terms
C Stuff
C Syntax
C Program
This document discusses multi-edge type (MET) low-density parity-check (LDPC) codes. MET-LDPC codes use defined protograph structures and density evolution to optimize thresholds and achieve capacity. Puncturing nodes in the protograph changes the influence of trapping sets and can provide cycle-canceling properties to simplify code design and lower error floors. Several examples of MET-LDPC protographs that improve thresholds through puncturing and cascading techniques are presented. The document predicts that MET-LDPC codes will revolutionize channel coding in the next 10 years and become a dominant error correction solution.
Christopher F Clark is an expert in compiler design and development who has successfully led many projects from architecture through implementation. Some of his past roles include architecting regular expression hardware accelerators at Intel, developing the Yacc++ compiler construction tool, and designing optimizing compilers for various organizations. He currently works as a software architect at Intel developing high performance regular expression and pattern matching solutions.
This document contains Himanshu Shivhare's resume. It summarizes his qualifications including 3.2 years of experience in VLSI design at Lattice Semiconductor in Bangalore, India. He has skills in Verilog and SystemVerilog and has experience with EDA tools like Modelsim, Questa, and Lattice Diamond. Some of his projects include designing a UART module using Verilog, verifying a dual port RAM with SystemVerilog, and implementing an I2C protocol on an FPGA. He holds a Bachelor's degree in Electronics and Communication Engineering.
This document describes a unified functional verification approach for mixed analog-digital ASIC designs. It discusses using discrete-time models in VHDL to represent analog blocks and Verilog for digital blocks. Specman is used for random stimulus generation and coverage analysis. The approach is demonstrated on a voice codec chip with digital filters, ADCs, embedded DSP, and analog/digital interfaces. Separate analog and digital environments are unified to improve coverage and reduce duplication. A Simulink model is used as a fast DSP reference model.
This document is a resume for Ramesh Kumar Bankapalli summarizing his objective, qualifications, skills and projects. He has a PG Diploma in ASIC Design from RV-VLSI Design Center and an M.Tech in VLSI. He has experience with synthesis tools like PrimeTime and design tools like IC Compiler. His projects include block level physical design of a torpedo subsystem and static timing analysis using 180nm technology.
This document contains Sai Dheeraj Polagani's resume. It includes his contact information, objective, education history, industrial experience at Intel as a physical design engineer and layout engineer, previous experience at Wipro Technologies as an ASIC physical design and verification engineer, technical skills, projects completed and academic projects during his Master's program. His experience includes full-chip static timing analysis, noise analysis, cross-talk analysis, place and route, timing closure, and physical verification. He has a Master's in Electrical Engineering from San Jose State University and a Bachelors in Information and Communication Technology from DA-IICT, India.
Dech Leanglum has over 5 years of experience in instrument and control engineering projects in various industries. He is responsible for designing control loops, generating wiring diagrams, and recommending products to customers. He has extensive experience using software such as INtools, SmartPlant, AutoCAD, and PDMS to design instrument cable routing, loop diagrams, and other documentation for major projects in Thailand.
Punit Shah is a graduate student at Arizona State University seeking an internship or co-op position in mixed signal circuit design and verification. He has strong academic experience in areas such as VLSI design, hardware design verification, computer architecture, and analog integrated circuits. Some of his academic projects include designing a memory controller, ALU components, a MIPS processor, and a 4x4 router for a NOC network. He implemented a pseudo LRU cache replacement policy and designed a two-stage op-amp. He is currently optimizing a darkroom compiler to enhance edge detection for computer vision applications.
The document provides an overview of Wi-Fi technology and HDL (Hardware Description Language) tools. It discusses VLSI design flow and introduces VHDL. It describes the capabilities of VHDL and different modeling styles (structural, dataflow, behavioral). It also discusses simulation tools like Active-HDL and synthesis tools like Xilinx ISE, covering their design entry methods, implementation processes, and supported standards.
Those slides describe digital design using Verilog HDL,
starting with Design methodologies for any digital circuit then difference between s/w (C/C++) and H/w (Verilog) and the most important constructs that let us start hardware design using Verilog HDL.
VHDL is a hardware description language used to model digital systems. It allows modeling at different levels of abstraction from the system level down to the gate level. The basic VHDL design flow involves creating a block diagram, coding the design in VHDL, compiling and simulating for functional verification, synthesizing to a lower level representation, fitting the design to a technology, and verifying timing.
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGIJCI JOURNAL
A floating-point unit (FPU) is a math coprocessor, a part of a computer system specially designed to carry
out operations on floating point numbers. The term floating point refers to the fact that the radix point can
"float"; that is, it can placed anywhere with respect to the significant digits of the number. Double
precision floating point, also known as double, is a commonly used format on PCs due to its wider range
over single precision in spite of its performance and bandwidth cost. This paper aims at developing the
verilog version of the double precision floating point core designed to meet the IEEE 754 standard .This
standard defines a double as sign bit, exponent and mantissa. The aim is to build an efficient FPU that
performs basic functions with reduced complexity of the logic used and also reduces the memory
requirement as far as possible.
Ravikanth P is seeking a position in VLSI design and verification. He has a M.Tech in VLSI and Embedded Systems and 8 years of experience in RTL design using Verilog and verification using SystemVerilog. His skills include digital design, FPGA design, verification methodologies, assertion based verification, and using tools like Riviera Pro and ISE. He has worked on academic projects involving router design, chirp generator design, adder design, and sensor interfacing with microcontrollers.
The document discusses domain specific languages and their use in various applications such as embedded software, data analysis, and business applications. It covers topics like notations for DSLs including text, diagrams, tables and forms. It also discusses how programs can be represented as trees and how languages are defined using concepts. Key challenges discussed include parsing as a bottleneck for expressiveness and directly editing program trees.
This document provides a conceptual framework for building domain-specific languages (DSLs). It discusses key characteristics of DSLs such as their focused domain, small size, and fast evolution compared to general purpose languages. The document outlines design dimensions for DSLs, including expressivity, completeness, coverage, supported paradigms, semantics, modularity, and separation of concerns. It provides examples of DSLs for components, refrigerators, extended C, and pension plans to illustrate concepts. The document argues that DSLs should provide linguistic abstractions that directly represent the semantics of a domain to avoid requiring semantic analysis during processing.
Vivek Dilip Kotwal is an embedded software engineer with over 3 years of experience. He has expertise in embedded C/C++, microcontrollers, protocols like CAN and I2C, and tools such as MATLAB and CANoe. Currently employed at Cresttek Engineering Solutions, his previous projects include developing a biometric attendance system using fingerprint detection and an ARM processor, and a CAN-based body control module for power windows and central locking in passenger cars. He holds a BE in electronics and telecommunication from Pune University.
Gautham Gnanasekar is an electrical engineering graduate with experience developing FPGA prototypes of floating point operators. He has skills in design tools like MATLAB, Simulink, and FPGA tools. He interned at The MathWorks developing high-performance FPGA prototypes for floating point arithmetic and verified ASIC designs as a trainee. He has experience with projects involving floating point adder design, asynchronous FIFO design, and MIPS CPU synthesis.
An embedded system is a microprocessor-based system designed to perform specific tasks and embedded as a component in a larger system. Common application areas include automotive electronics, aircraft electronics, trains, and telecommunications. The key design challenge is to optimize numerous design metrics like unit cost, size, performance, power consumption, and flexibility simultaneously. Common integrated circuit technologies used include full-custom/VLSI, semi-custom ASICs, and programmable logic devices like FPGAs. VHDL and Verilog are hardware description languages used to model and simulate the system at different levels of abstraction from transistors to functional behavior.
Vikas is seeking a position that allows him to share and grow his knowledge of micro-electronics and VLSI design. He has an M.Tech in micro-electronics from IIT Hyderabad with a 7.2 CGPA and a B.Tech in electronics and communication engineering with 78%. His technical skills include Verilog HDL, CADENCE, and MATLAB. He has participated in workshops on ARM processors and Xilinx FPGAs. For his M.Tech project, he analyzed active transformers and their impact on voltage controlled oscillators. His B.Tech project implemented a Huffman encoder using an FPGA with Verilog HDL.
This document contains the resume of KANUGANTI RAVI TEJA. It summarizes his educational qualifications including an M.Tech from Vellore Institute of Technology and a B.Tech from Joginpally B.R Engineering College. It also lists his skills in hardware description languages, EDA tools, and programming languages. The resume describes several ASIC design projects Ravi Teja has worked on related to motion estimation, bus bridges, processors, and FIFO controllers. It was submitted for a position in the semiconductor industry.
Program, Language, & Programming Language
Object Oriented Programming vs Procedure Oriented Programming
About C
Why still Learn C?
Basic Terms
C Stuff
C Syntax
C Program
This document discusses multi-edge type (MET) low-density parity-check (LDPC) codes. MET-LDPC codes use defined protograph structures and density evolution to optimize thresholds and achieve capacity. Puncturing nodes in the protograph changes the influence of trapping sets and can provide cycle-canceling properties to simplify code design and lower error floors. Several examples of MET-LDPC protographs that improve thresholds through puncturing and cascading techniques are presented. The document predicts that MET-LDPC codes will revolutionize channel coding in the next 10 years and become a dominant error correction solution.
Christopher F Clark is an expert in compiler design and development who has successfully led many projects from architecture through implementation. Some of his past roles include architecting regular expression hardware accelerators at Intel, developing the Yacc++ compiler construction tool, and designing optimizing compilers for various organizations. He currently works as a software architect at Intel developing high performance regular expression and pattern matching solutions.
This document contains Himanshu Shivhare's resume. It summarizes his qualifications including 3.2 years of experience in VLSI design at Lattice Semiconductor in Bangalore, India. He has skills in Verilog and SystemVerilog and has experience with EDA tools like Modelsim, Questa, and Lattice Diamond. Some of his projects include designing a UART module using Verilog, verifying a dual port RAM with SystemVerilog, and implementing an I2C protocol on an FPGA. He holds a Bachelor's degree in Electronics and Communication Engineering.
This document describes a unified functional verification approach for mixed analog-digital ASIC designs. It discusses using discrete-time models in VHDL to represent analog blocks and Verilog for digital blocks. Specman is used for random stimulus generation and coverage analysis. The approach is demonstrated on a voice codec chip with digital filters, ADCs, embedded DSP, and analog/digital interfaces. Separate analog and digital environments are unified to improve coverage and reduce duplication. A Simulink model is used as a fast DSP reference model.
This document is a resume for Ramesh Kumar Bankapalli summarizing his objective, qualifications, skills and projects. He has a PG Diploma in ASIC Design from RV-VLSI Design Center and an M.Tech in VLSI. He has experience with synthesis tools like PrimeTime and design tools like IC Compiler. His projects include block level physical design of a torpedo subsystem and static timing analysis using 180nm technology.
This document contains Sai Dheeraj Polagani's resume. It includes his contact information, objective, education history, industrial experience at Intel as a physical design engineer and layout engineer, previous experience at Wipro Technologies as an ASIC physical design and verification engineer, technical skills, projects completed and academic projects during his Master's program. His experience includes full-chip static timing analysis, noise analysis, cross-talk analysis, place and route, timing closure, and physical verification. He has a Master's in Electrical Engineering from San Jose State University and a Bachelors in Information and Communication Technology from DA-IICT, India.
Dech Leanglum has over 5 years of experience in instrument and control engineering projects in various industries. He is responsible for designing control loops, generating wiring diagrams, and recommending products to customers. He has extensive experience using software such as INtools, SmartPlant, AutoCAD, and PDMS to design instrument cable routing, loop diagrams, and other documentation for major projects in Thailand.
Punit Shah is a graduate student at Arizona State University seeking an internship or co-op position in mixed signal circuit design and verification. He has strong academic experience in areas such as VLSI design, hardware design verification, computer architecture, and analog integrated circuits. Some of his academic projects include designing a memory controller, ALU components, a MIPS processor, and a 4x4 router for a NOC network. He implemented a pseudo LRU cache replacement policy and designed a two-stage op-amp. He is currently optimizing a darkroom compiler to enhance edge detection for computer vision applications.
The document provides an overview of Wi-Fi technology and HDL (Hardware Description Language) tools. It discusses VLSI design flow and introduces VHDL. It describes the capabilities of VHDL and different modeling styles (structural, dataflow, behavioral). It also discusses simulation tools like Active-HDL and synthesis tools like Xilinx ISE, covering their design entry methods, implementation processes, and supported standards.
Those slides describe digital design using Verilog HDL,
starting with Design methodologies for any digital circuit then difference between s/w (C/C++) and H/w (Verilog) and the most important constructs that let us start hardware design using Verilog HDL.
VHDL is a hardware description language used to model digital systems. It allows modeling at different levels of abstraction from the system level down to the gate level. The basic VHDL design flow involves creating a block diagram, coding the design in VHDL, compiling and simulating for functional verification, synthesizing to a lower level representation, fitting the design to a technology, and verifying timing.
DOUBLE PRECISION FLOATING POINT CORE IN VERILOGIJCI JOURNAL
A floating-point unit (FPU) is a math coprocessor, a part of a computer system specially designed to carry
out operations on floating point numbers. The term floating point refers to the fact that the radix point can
"float"; that is, it can placed anywhere with respect to the significant digits of the number. Double
precision floating point, also known as double, is a commonly used format on PCs due to its wider range
over single precision in spite of its performance and bandwidth cost. This paper aims at developing the
verilog version of the double precision floating point core designed to meet the IEEE 754 standard .This
standard defines a double as sign bit, exponent and mantissa. The aim is to build an efficient FPU that
performs basic functions with reduced complexity of the logic used and also reduces the memory
requirement as far as possible.
HDL stands for hardware description language. It is a textual language used to formally describe and design electronic circuits and digital logic. HDL allows for automated analysis, simulation, and testing of electronic circuits before they are physically implemented. Common HDLs include VHDL and Verilog. HDL is used to write executable specifications for hardware and model circuits before physical creation, enabling simulation and synthesis into programmable logic devices like FPGAs.
This document provides a summary of Kumar Chandan and Mayank Kumar's summer internship report on RTL design, Verilog, and FPGA programming at Tevatron Technology in Noida, India. It includes an acknowledgements section thanking their mentor and institution for supporting the project. The abstract indicates that the main objective was to study digital circuit behavior and design using Xilinx software. An introduction is provided on topics like VLSI, HDLs, Verilog, modeling styles in Verilog, and system tasks.
Digital principle and computer design Presentation (1).pptxMalligaarjunanN
This document discusses the Hardware Description Language (HDL) VHDL. It provides an overview of VHDL, including that it is used to describe and simulate digital circuits, and is an IEEE standard. The key elements of VHDL are then described - entities define input/output ports, architectures describe how the circuit operates, and configurations define how designs are linked together. Examples of each element are provided. Finally, it briefly discusses VHDL modeling styles and objects like constants, variables, and signals.
VHDL is a hardware description language used to design digital systems. It allows systems to be modeled at different levels of abstraction like behavioral and structural. The behavioral model describes a system's behavior as inputs and outputs, while the structural model shows how system components are interconnected. VHDL uses entities to define a system's ports and architectures to describe its structure or behavior. Examples show implementing a half adder using behavioral and structural modeling in VHDL.
Kroening et al, v2c a verilog to c translatorsce,bhopal
The document describes v2c, a tool that translates Verilog to C. v2c accepts synthesizable Verilog as input and generates equivalent C code called a "software netlist". The translation is based on Verilog's synthesis semantics and preserves cycle accuracy and bit precision. The generated C code can then be used for hardware property verification, co-verification, simulation, and equivalence checking by leveraging software verification techniques.
(eBook PDF) Digital Design: With an Introduction to the Verilog HDL, VHDL, an...smihtmuangu
(eBook PDF) Digital Design: With an Introduction to the Verilog HDL, VHDL, and System Verilog 6th Edition
(eBook PDF) Digital Design: With an Introduction to the Verilog HDL, VHDL, and System Verilog 6th Edition
(eBook PDF) Digital Design: With an Introduction to the Verilog HDL, VHDL, and System Verilog 6th Edition
VHDL is a hardware description language used to model and design digital circuits. It can be used for simulation, synthesis, and verification of circuits. VHDL has different language elements like entities, architectures, processes, and packages that allow modeling at different levels of abstraction like behavioral, dataflow, and structural. Common data types in VHDL include std_logic, std_logic_vector, and integers. VHDL supports modeling concurrency using processes and signal assignments.
This document provides an introduction and overview of Verilog HDL (Hardware Description Language). It begins with acknowledgments and then provides brief definitions and descriptions of what Verilog is, its history and development over time. The rest of the document covers various aspects of Verilog, including its program structure using modules, different data types like registers and wires, modeling designs at different levels of abstraction like gate level and data flow level, and basic syntax concepts. Examples are provided throughout to illustrate different Verilog concepts.
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASIC,paperpublications3
Abstract: A public domain encryption standard is subject to continuous, vigilant, expert cryptanalysis. AES is a symmetric encryption algorithm processing data in block of 128 bits. Under the influence of a key, a 128-bit block is encrypted by transforming it in a unique way into a new block of the same size. To implement AES Rijndael algorithm on FPGA using Verilog and synthesis using Xilinx, Plain text of 128 bit data is considered for encryption using Rijndael algorithm utilizing key. This encryption method is versatile used for military applications. The same key is used for decryption to recover the original 128 bit plain text. For high speed applications, the Non LUT based implementation of AES S-box and inverse S-box is preferred. Development of physical design of AES-128 bit is done using cadence SoC encounter. Performance evaluation of the physical design with respect to area, power, and time has been done. The core consumes 10.11 mW of power for the core area of 330100.742 μm2.
Keywords: Encryption, Decryption Rijndael algorithm, FPGA implementation, Physical Design.
The document discusses VHDL (VHSIC Hardware Description Language). It provides definitions and history of VHDL. It describes the basic constructs and elements of VHDL including entity declaration, architecture body, ports, signals, constants, variables, numeric types, relational and logical operators. It also gives examples of entity declarations for basic gates, comparator, multiplexer and behavioral architecture for a full adder.
Design and Implementation of Area Efficiency AES Algoritham with FPGA and ASICpaperpublications3
Abstract: A public domain encryption standard is subject to continuous, vigilant, expert cryptanalysis. AES is a symmetric encryption algorithm processing data in block of 128 bits. Under the influence of a key, a 128-bit block is encrypted by transforming it in a unique way into a new block of the same size. To implement AES Rijndael algorithm on FPGA using Verilog and synthesis using Xilinx, Plain text of 128 bit data is considered for encryption using Rijndael algorithm utilizing key. This encryption method is versatile used for military applications. The same key is used for decryption to recover the original 128 bit plain text. For high speed applications, the Non LUT based implementation of AES S-box and inverse S-box is preferred. Development of physical design of AES-128 bit is done using cadence SoC encounter. Performance evaluation of the physical design with respect to area, power, and time has been done. The core consumes 10.11 mW of power for the core area of 330100.742 μm2.
This document summarizes research on FPGA hardware designs for LDPC error correction applications. It discusses how LDPC codes offer resilient error correction through iterative decoding algorithms like belief propagation and min-sum. The document reviews several FPGA implementations of LDPC decoders in terms of code length, throughput, resource usage, and other metrics. It finds that FPGAs are well-suited for LDPC decoding due to their parallelism and reconfigurability compared to general processors.
Hardware Description Language (HDL) is used to describe digital systems in a textual format similar to a programming language. HDL represents both the structure and behavior of hardware at different levels of abstraction. It can be used for documentation, simulation to verify design functionality, and synthesis to automate hardware design processes. The two most common HDLs are VHDL and Verilog.
VHDL is defined by IEEE. This standard is known by all the VHDL tool developers. So
there is only one language to learn. This language is used by all the circuit designers around the world. The life time for this language is assured, since it is an IEEE standards. Any investment or learning is assured for lifetime. Abundance of models available from different sources can be used with ease. Some tools might support Foreign Language Interface, by which you can add your model in C language to the VHDL code. It is a modern language, powerful and general. Other advantages include readability of the code and portability. The code developed is portable to any technology at any time. Time to market is short (leads to leadership in the market). Any error found during the simulation phase is less expensive than by discovering the errors after making the circuit board (Investment is saved). The great advantage is that the Project Managers can modify the specification without leading to disaster (only the necessary portion of the code need to be changed). It can deliver designs 100% error free at short duration. New Concepts in
hardware design (for example, in image processing, DSP, etc.,) can be modeled in VHDL and its efficiency or viability can be proven without doing the hardware. A large number of ASICs fail to work when plugged into a system even if they meet their specifications first time. VHDL addresses this issue in two ways: A VHDL specification can be executed in order to achieve a high level of confidence in its correctness before commencing design, and may simulate one to two orders of magnitude faster than a gate level description. A VHDL specification for a part can form the basis for a simulation model to verify the operation of the part in the wider system context (e.g. printed circuit board simulation). This depends on how accurately the specification handles aspects such as timing and initialization.
This document provides an overview of power amplifiers in analog electronic circuits. It discusses classifications of amplifiers including small signal vs large signal amplifiers. It also covers types of coupling such as capacitive, transformer, and direct coupling. The document then describes amplifier classes including classes A, B, C and D. It provides details on topics like load lines, efficiency calculations, distortion and phase splitter circuits as they relate to power amplifier design and operation. Worked examples are included throughout to illustrate key concepts.
This document discusses feedback and oscillator circuits. It begins by explaining the theory of sinusoidal oscillation, where positive feedback in a circuit can produce oscillations without any external input signal. It then covers various oscillator circuits like the phase shift oscillator, Wien bridge oscillator, and tuned oscillator circuits like the Colpitts and Hartley oscillators. It also discusses crystal oscillators, noting characteristics of quartz crystals like their series and parallel resonance frequencies which make them useful for stable frequency generation. Worked examples are provided to illustrate calculating oscillator frequencies and component values.
This document provides an overview of frequency response and analysis for amplifiers. It discusses:
- How the voltage gain of an amplifier decreases at low and high frequencies due to external and internal capacitances.
- Key terms like cutoff frequencies (f1 and f2), midband, and roll-off factor.
- Methods for analyzing the frequency response of BJT and JFET amplifier stages to determine dominant capacitances and calculate cutoff frequencies.
- Examples are provided to demonstrate the analysis process.
The document covers frequency response fundamentals and analysis techniques for characterizing amplifier performance over a range of frequencies.
This document provides information about the small signal model of JFETs. It discusses that JFETs can introduce amplitude distortion if operated with large input signals, so they are typically operated with small input signals. It defines transconductance (gm) as the change in drain current from a change in gate-source voltage. gm represents the slope of the JFET characteristics curve and is largest when VGS is closest to 0V. The document provides examples of calculating gm at different operating points and explains how gm varies with drain current and gate-source voltage. It also discusses the high input impedance and typically lower output impedance of JFETs.
This document discusses different biasing configurations for field-effect transistors (FETs) including fixed bias, self bias, and voltage divider bias. It provides the key relationships for analyzing each configuration graphically or mathematically. Fixed bias uses two supplies with the gate-source voltage (VGS) fixed. Self bias uses a single supply with VGS determined by the drain current and source resistor. Voltage divider bias also uses a single supply but VGS is defined by the voltage divider and drain current. The document also covers a common-gate configuration and derives the small signal model for a JFET.
This document discusses electronics circuits and devices. It covers topics like transistors, diodes, resistors, capacitors, inductors, integrated circuits, analog circuits, digital circuits, and more. Circuit examples include rectifiers, amplifiers, oscillators, filters, logic gates, memories, microprocessors, and more. The document also discusses specific concepts related to JFET devices, including their characteristics, regions of operation, and comparisons to BJT devices. Sample problems are provided to illustrate transfer characteristics of n-channel JFETs.
This is a classroom presentation for the basic concepts of HDL, using Verilog as the programming language. Module 2 deals with simulation and synthesis in Verilog.
This is a classroom presentation for the basic concepts of HDL, using Verilog as the programming language. Module 3 deals with programmable logic devices.
This document contains lessons on leadership for teachers presented by Aravinda K. It includes various quotes and advice related to teaching, leadership, and personal development. Some key points covered are:
- Teachers should inspire students and ensure they have the qualities they expect to see in students.
- Different branches of engineering have different cultures that teachers must adapt to.
- A teacher's performance and sincerity are more important than their seniority or position.
- Teachers, students, and administrators all think the education system belongs to them, but it really belongs to society as a whole.
The document provides advice to help teachers improve and focus on serving students effectively.
This is a slideshow depicting the importance of guru in the spiritual life. And in addition, about the practice of Gaayathree manthra and its specialties.
Shankara Bhagavathpaada was a renowned Indian philosopher who accomplished much in his short life. He became a sanyaasi at age 8, a scholar at 12, and wrote his famous commentaries on the Prasthaanathraya texts at 16. He established four monasteries across India to revive Vedic culture and spread his philosophy of nondualism. Through his writings for different intellectual levels and reforms to rituals, he influenced many spiritual traditions and was exemplary in living according to the paths of karma, jnana, and bhakti yoga.
An introduction to the practice of Ashtangayoga, with some prerequisites and attitudinal changes, concluding with some valid health tips and lifestyle changes.
Preparation to yogic breathing as well as some popular methods of yogic breathing (pranayama) are mentioned here, along with some additional health tips.
These slides are with less text and more pictures, with each slide sequentially related to the next one in an intuitive way, and hence the viewer should follow his/her intuitive skills in order to comprehend the flow. The truth is one, ultimately.
1. The document discusses how memory works and provides tips to improve memory.
2. It explains that the brain does not store all experiences and that what is remembered depends on what we repeatedly think about and what satisfies or hurts our ego.
3. Tips provided to improve memory include focusing while learning, repeating information to retain it, relaxing to recall it, exercising the brain, eating healthy foods like almonds, and taking breaks from screens and excessive work.
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfMohamedAbdelkader115
Glad to be one of only 14 members inside Kuwait to hold this credential.
Please check the members inside kuwait from this link:
https://www.rics.org/networking/find-a-member.html?firstname=&lastname=&town=&country=Kuwait&member_grade=(AssocRICS)&expert_witness=&accrediation=&page=1
☁️ GDG Cloud Munich: Build With AI Workshop - Introduction to Vertex AI! ☁️
Join us for an exciting #BuildWithAi workshop on the 28th of April, 2025 at the Google Office in Munich!
Dive into the world of AI with our "Introduction to Vertex AI" session, presented by Google Cloud expert Randy Gupta.
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxRishavKumar530754
LiDAR-Based System for Autonomous Cars
Autonomous Driving with LiDAR Tech
LiDAR Integration in Self-Driving Cars
Self-Driving Vehicles Using LiDAR
LiDAR Mapping for Driverless Cars
This paper proposes a shoulder inverse kinematics (IK) technique. Shoulder complex is comprised of the sternum, clavicle, ribs, scapula, humerus, and four joints.
We introduce the Gaussian process (GP) modeling module developed within the UQLab software framework. The novel design of the GP-module aims at providing seamless integration of GP modeling into any uncertainty quantification workflow, as well as a standalone surrogate modeling tool. We first briefly present the key mathematical tools on the basis of GP modeling (a.k.a. Kriging), as well as the associated theoretical and computational framework. We then provide an extensive overview of the available features of the software and demonstrate its flexibility and user-friendliness. Finally, we showcase the usage and the performance of the software on several applications borrowed from different fields of engineering. These include a basic surrogate of a well-known analytical benchmark function; a hierarchical Kriging example applied to wind turbine aero-servo-elastic simulations and a more complex geotechnical example that requires a non-stationary, user-defined correlation function. The GP-module, like the rest of the scientific code that is shipped with UQLab, is open source (BSD license).
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYijscai
With the increased use of Artificial Intelligence (AI) in malware analysis there is also an increased need to
understand the decisions models make when identifying malicious artifacts. Explainable AI (XAI) becomes
the answer to interpreting the decision-making process that AI malware analysis models use to determine
malicious benign samples to gain trust that in a production environment, the system is able to catch
malware. With any cyber innovation brings a new set of challenges and literature soon came out about XAI
as a new attack vector. Adversarial XAI (AdvXAI) is a relatively new concept but with AI applications in
many sectors, it is crucial to quickly respond to the attack surface that it creates. This paper seeks to
conceptualize a theoretical framework focused on addressing AdvXAI in malware analysis in an effort to
balance explainability with security. Following this framework, designing a machine with an AI malware
detection and analysis model will ensure that it can effectively analyze malware, explain how it came to its
decision, and be built securely to avoid adversarial attacks and manipulations. The framework focuses on
choosing malware datasets to train the model, choosing the AI model, choosing an XAI technique,
implementing AdvXAI defensive measures, and continually evaluating the model. This framework will
significantly contribute to automated malware detection and XAI efforts allowing for secure systems that
are resilient to adversarial attacks.
In tube drawing process, a tube is pulled out through a die and a plug to reduce its diameter and thickness as per the requirement. Dimensional accuracy of cold drawn tubes plays a vital role in the further quality of end products and controlling rejection in manufacturing processes of these end products. Springback phenomenon is the elastic strain recovery after removal of forming loads, causes geometrical inaccuracies in drawn tubes. Further, this leads to difficulty in achieving close dimensional tolerances. In the present work springback of EN 8 D tube material is studied for various cold drawing parameters. The process parameters in this work include die semi-angle, land width and drawing speed. The experimentation is done using Taguchi’s L36 orthogonal array, and then optimization is done in data analysis software Minitab 17. The results of ANOVA shows that 15 degrees die semi-angle,5 mm land width and 6 m/min drawing speed yields least springback. Furthermore, optimization algorithms named Particle Swarm Optimization (PSO), Simulated Annealing (SA) and Genetic Algorithm (GA) are applied which shows that 15 degrees die semi-angle, 10 mm land width and 8 m/min drawing speed results in minimal springback with almost 10.5 % improvement. Finally, the results of experimentation are validated with Finite Element Analysis technique using ANSYS.
The Fluke 925 is a vane anemometer, a handheld device designed to measure wind speed, air flow (volume), and temperature. It features a separate sensor and display unit, allowing greater flexibility and ease of use in tight or hard-to-reach spaces. The Fluke 925 is particularly suitable for HVAC (heating, ventilation, and air conditioning) maintenance in both residential and commercial buildings, offering a durable and cost-effective solution for routine airflow diagnostics.
Fluid mechanics is the branch of physics concerned with the mechanics of fluids (liquids, gases, and plasmas) and the forces on them. Originally applied to water (hydromechanics), it found applications in a wide range of disciplines, including mechanical, aerospace, civil, chemical, and biomedical engineering, as well as geophysics, oceanography, meteorology, astrophysics, and biology.
It can be divided into fluid statics, the study of various fluids at rest, and fluid dynamics.
Fluid statics, also known as hydrostatics, is the study of fluids at rest, specifically when there's no relative motion between fluid particles. It focuses on the conditions under which fluids are in stable equilibrium and doesn't involve fluid motion.
Fluid kinematics is the branch of fluid mechanics that focuses on describing and analyzing the motion of fluids, such as liquids and gases, without considering the forces that cause the motion. It deals with the geometrical and temporal aspects of fluid flow, including velocity and acceleration. Fluid dynamics, on the other hand, considers the forces acting on the fluid.
Fluid dynamics is the study of the effect of forces on fluid motion. It is a branch of continuum mechanics, a subject which models matter without using the information that it is made out of atoms; that is, it models matter from a macroscopic viewpoint rather than from microscopic.
Fluid mechanics, especially fluid dynamics, is an active field of research, typically mathematically complex. Many problems are partly or wholly unsolved and are best addressed by numerical methods, typically using computers. A modern discipline, called computational fluid dynamics (CFD), is devoted to this approach. Particle image velocimetry, an experimental method for visualizing and analyzing fluid flow, also takes advantage of the highly visual nature of fluid flow.
Fundamentally, every fluid mechanical system is assumed to obey the basic laws :
Conservation of mass
Conservation of energy
Conservation of momentum
The continuum assumption
For example, the assumption that mass is conserved means that for any fixed control volume (for example, a spherical volume)—enclosed by a control surface—the rate of change of the mass contained in that volume is equal to the rate at which mass is passing through the surface from outside to inside, minus the rate at which mass is passing from inside to outside. This can be expressed as an equation in integral form over the control volume.
The continuum assumption is an idealization of continuum mechanics under which fluids can be treated as continuous, even though, on a microscopic scale, they are composed of molecules. Under the continuum assumption, macroscopic (observed/measurable) properties such as density, pressure, temperature, and bulk velocity are taken to be well-defined at "infinitesimal" volume elements—small in comparison to the characteristic length scale of the system, but large in comparison to molecular length scale
The role of the lexical analyzer
Specification of tokens
Finite state machines
From a regular expressions to an NFA
Convert NFA to DFA
Transforming grammars and regular expressions
Transforming automata to grammars
Language for specifying lexical analyzers
5. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 5
CO1
Identify the necessity of HDL for the automation
of VLSI design
CO2
Select Verilog for EDA, and describe its structure
and syntax
CO3
Apply the concepts of HDL on programmable
devices, such as CPLD and FPGA
CO4
Translate the design on state machine into
HDL program
CO5
Write optimized HDL codes for simple and
complex systems
CO6
Employ the FPGA hardware for the implementation
of the HDL codes
COURSE OUTCOMES
6. Term Year Number of gates Examples
SSI 1961 Upto 20 logic gates Flip-flops, Decoders,
Registers
MSI 1966 20 till 200 gates Multiplexers, Adders,
Counters
LSI 1971 200 till 10,000 8-bit Microprocessors, RAM,
ROM
VLSI 1980 10,000 till 1,00,000 Microcontrollers, 16 & 32-bit
Microprocessors, DRAM
ULSI 1990 Above 1,00,000 gates 64-bit Microprocessors,
DSPs, SoC
21/01/2019 6Aravinda K., Dept. of E&C, NHCE
MODULE-1: INTRODUCTION TO VERILOG
7. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 7
DESIGN ENTRY
Schematic capture: Lower level of
abstraction (gates, flip-flops, standard
MSI building blocks)
HDL: Higher level of abstraction -
(behavioral: flow-chart, algorithm)
(structural: specific components or
implementations)
SYNTHESIS
Process of conversion of higher-level
abstraction of the design into actual
components at the gate & flip-flop levels.
The output of the synthesis tool is the
netlist, which is a list of gates and a list of
their interconnections.
As the synthesis tool converts the
design descriptions into hardware, it is
also called as “design compiler” or
“silicon compiler”.
11. 21/01/2019 11Aravinda K., Dept. of E&C, NHCE
After the post-synthesis simulation, the design can
be implemented in several different target
technologies (device lengths).
The target could be a completely custom IC, or could
be implemented using the standard parts that are
available from the vendor.
The standard parts are at the lowest level of
sophistication and density, with the usage of old-
fashioned printed circuit board.
The fully-custom ASIC is at the highest level of
density and performance.
The other devices such as CPLD and FPGA come in
between, as programmable solutions.
13. 21/01/2019 13Aravinda K., Dept. of E&C, NHCE
The current two most common target technologies
are FPGAs and ASICs.
The design is mapped into the specific target
technology (channel length), and placed into specific
parts in the target ASIC or FPGA.
During routing, the selected components are
connected to each other, using the available paths.
In case of an ASIC, the routed design is utilized for
generating a photo-mask, which will be utilized for
manufacturing the IC.
In case of an FPGA, the routed design is translated
into a bit file, for the programming of the selected cells
inside the FPGA.
16. 21/01/2019 16Aravinda K., Dept. of E&C, NHCE
HARDWARE DESCRIPTION LANGUAGES
HDL is a textual method of documenting the circuits, and
feeding them into the simulators in the textual form, as opposed
to the graphic form.
HDLs lead to a top-down design methodology (specified and
tested at a high level), and HDLs are designed to be technology
independent.
HDLs can describe a digital system at three different levels –
behavioral (functional description), data flow (logic equations)
and structural (in terms of subcomponents).
17. 21/01/2019 17Aravinda K., Dept. of E&C, NHCE
VHDL Verilog
Government developed
(Designed and sponsored by US
department of defense), and
became IEEE standard in 1987
Commercially developed
(Designed by Gateway design
system corporation), became
IEEE standard in 1995
Strongly typecast, based on
“Ada” language, and is case-
insensitive
Mildly typecast, based on “C”
language, and is case-sensitive
Structured, and is for large and
complex systems (Difficult to
learn, but more powerful)
Simpler, with less syntax and
fewer constructs (Easier to
learn, and less powerful)
Two popular HDLs are Verilog & VHDL. Verilog was a proprietary
language in 1984, and was later owned and opened up by
Cadence, in order to create a vendor-independent language
specification, and to prevent the industry from shifting to VHDL.
18. 21/01/2019 18Aravinda K., Dept. of E&C, NHCE
In addition, there are system design languages, such as
System C and System Verilog, which describe large digital
systems at a block level behavior.
These languages are primarily used for verification and
validation. They help in reducing the design cycle time for large
systems; the design problems become evident in the early
stages, instead of becoming obvious during system integration.
When different blocks of a large system are designed by
different teams, during the initial design process, one team can
make use of the system level description of a block that is being
designed by the other team.
In addition to the system design languages, there are tools
that have emerged, which can convert the models written in
non-HDL, directly into hardware.
19. 21/01/2019 19Aravinda K., Dept. of E&C, NHCE
UNLIKE THE OTHER PROGRAMMING LANGUAGES,
THE CONSTRUCTS OF HDL ARE TAILORED
FOR THE PURPOSE OF SIMULATION AND SYNTHESIS.
21. 21/01/2019 21Aravinda K., Dept. of E&C, NHCE
Verilog Description of Combinational Circuits
The combinational circuits are always working
simultaneously, and hence they are modeled in Verilog
by concurrent statements or continuous assignments.
Concurrent statements are always ready to execute,
and hence, it is possible to simulate the execution of
the several parts of the circuit at the same time.
The Verilog simulator continuously monitors the
right side of each concurrent statement, and whenever
a signal changes, the expression on the right side gets
immediately re-evaluated.
22. 21/01/2019 22Aravinda K., Dept. of E&C, NHCE
#5 indicates a delay of 5 ns, representing the propagation delay
of each logic gate. If it is not included, then the computation will
be instantaneous.
When the statements get executed, the variable “C” gets
computed after 5 ns, and the variable “E” gets computed after
another 5 ns, thus the total delay becoming as 10 ns.
The order of the concurrent statements is not important. The
output for the following will be the same as the previous one:
23. 21/01/2019 23Aravinda K., Dept. of E&C, NHCE
In this example, when the gate delays have different values, the
outputs also update at different times, even though the
statements execute simultaneously.
If A changes at a time-stamp of 5 ns, then D, E and F change at
7 ns, 6 ns and 8 ns respectively.
24. 21/01/2019 24Aravinda K., Dept. of E&C, NHCE
“Delta delay” is an infinitesimally small delay, which is used to
indicate the sequentiality between dependant concurrent
statements. VHDL simulators display the delta delay, whereas
Verilog simulators do not.
The general form of the signal assignment statement is:
The brackets indicate that the delay is optional.
25. 21/01/2019 25Aravinda K., Dept. of E&C, NHCE
Statement Result
assign #10 CLK= ~CLK; Waveform with name “CLK” is produced
assign #10 Clk= ~Clk; Waveform with name “Clk” is produced
assign CLK= ~CLK; The waveform will never advance
A Verilog identifier or a signal name can contain letters,
numbers, underscore character and dollar sign.
A Verilog identifier must start with a letter or an underscore
character.
A Verilog identifier cannot start with a number or dollar sign.
The dollar sign is reserved as the first character for the
system tasks.
26. 21/01/2019 26Aravinda K., Dept. of E&C, NHCE
Valid identifiers Invalid identifiers
adder 4bit_adder
Mux_input $100
_error_code always
_$500 _#123
Every Verilog statement must be terminated with a
semicolon.
Anything following a double slash is treated as a comment to
the end of the line.
Comments for more than one line start with “/*” and end
with “*/”.
Words such as “and”, “or” and “always”, are reserved words.
27. 21/01/2019 27Aravinda K., Dept. of E&C, NHCE
When the signal is of type wire (or net), it generally has
a value of 0 or 1.
The net values in Verilog are represented as -
<number of bits>’<base><value>.
Hence, 1’b0 means “1 position binary 0”. The decimal and
hexadecimal values are represented with “d” and “h”.
A one-dimensional array of bit signals is referred to as a vector.
A 4 bit-wire can be named as vector B, and can be declared as,
wire B[3:0];.
The vector B has an index range 0 through 3, and its elements
are designated as B[0], B[1], B[2] and B[3].
The statement B=4’b1100 assigns 1 to B[3], 1 to B[2], 0 to B[1]
and 0 to B[0].
28. 21/01/2019 28Aravinda K., Dept. of E&C, NHCE
“&&” is the logical AND operator
“&” is the bitwise AND operator
29. 21/01/2019 29Aravinda K., Dept. of E&C, NHCE
Verilog Modules
A Module is a basic building block that declares input and output
signals, and specifies the internal operation of the module.
All the I/O signals have to be listed in the module statement.
Since “C” is an internal signal, it has to be declared as wire.
31. 21/01/2019 31Aravinda K., Dept. of E&C, NHCE
The interface ports can be of type input, output or inout. VHDL is
very strict in compilation, wheras Verilog produces an output even
when the variable is declared as input. However, a variable has to
be declared as inout, if that variable is used by other modules.
32. 21/01/2019 32Aravinda K., Dept. of E&C, NHCE
module FullAdder (X, Y, Cin, Cout, Sum);
output Cout, Sum;
input X, Y, Cin;
assign #10 Sum = X ^ Y ^ Cin;
assign #10 Cout = ( X && Y) || ( X && Cin) || ( Y && Cin);
endmodule
33. 21/01/2019 33Aravinda K., Dept. of E&C, NHCE
In the structural description,
the 4-bit adder is declared as a
module, and the full adder
module is instantiated inside the
4-bit adder module.
Here, each instance of Full
adder has a port map, which
corresponds one-to-one with the
signals in the component port
(FullAdder module).
This method, in which the
order of the signals in the
portmap is same as the order of
the signals in the ports of the
module, is called as “positional
association”.
If the ports are mapped by
name, then it is called as “named
association”.
34. 21/01/2019 34Aravinda K., Dept. of E&C, NHCE
Verilog Assignments
Continuous Procedural
Blocking Non-blockingExplicit Implicit
Keyword: assign Keywords: initial, always
36. 21/01/2019 36Aravinda K., Dept. of E&C, NHCE
Procedural Assignments
Combinational logic constantly reacts to input changes,
whereas synchronous sequential logic responds to changes that
are dependent on the clock.
Therefore, the procedural assignments are used to model the
sequential logic, such as registers and finite state machines.
Unlike the continuous assignments, with procedural
assignments, the execution of statements happens with a
sequence of operations.
The two types of procedural assignment blocks in Verilog are
“initial” and “always”; the LHS of the assignment statements,
inside these blocks, have to be declared as of data type “reg”.
37. 21/01/2019 37Aravinda K., Dept. of E&C, NHCE
initial always
Executes only once Executes in a loop
Executes without waiting Executes after an event
Useful in simulation & verification Useful for synthesis
39. 21/01/2019 39Aravinda K., Dept. of E&C, NHCE
In this example, assuming
the initial values as:
A=1’b1, B=1’b0, C=1’b1,
D=1’b0,
the outputs after completion
of the execution are:
A=1’b0, B=1’b0, C=1’b0,
D=1’b1.
We should be very careful while using “always” to represent
combinational logic. If any input signals are accidentally omitted
from the sensitivity list, there will be mismatches between
simulation and synthesis outcomes.
The statement “always @(*)” avoids such accidental errors.
41. 21/01/2019 41Aravinda K., Dept. of E&C, NHCE
input and inout ports have to be of type “wire”; output ports can
be of either “wire” or “reg” type.
Here, D and E are declared as “reg”, as they are at LHS. Therefore,
D cannot be declared as “inout”.
When the sensitivity list contains “*”, the “always” block gets
triggered for any input signal changes.
42. 21/01/2019 42Aravinda K., Dept. of E&C, NHCE
Note
1. “wire” does not store information, whereas “reg” stores
information. The initial value of a “wire” is “z” (high impedance),
and that of “reg” is “x” (unknown).
2. The operator “=” has a blocking nature inside “always”, whereas
it has a non-blocking (concurrent) nature outside “always”.
3. The operator “<=” has a non-blocking nature inside “always”,
and has no usage as an assignment operator outside “always”.
4. The LHS elements inside the procedural blocks have to be
declared as “reg” data type. But “reg” data type cannot be present
at the LHS of a continuous assignment statement.
5. For synthesizable codes, it is better to use non-blocking
assignments for sequential logic, and blocking assignments for
combinational logic, and not to mix both in the same block.
44. 21/01/2019 44Aravinda K., Dept. of E&C, NHCE
Modeling of flip-flops using “always” block
When a rising edge of the clock
occurs, Q is set equal to D. If the
flip-flop has a delay of 5 ns, then
the statement can be: Q <= #5 D;
If Q changes when D changes,
then it is a transparent latch. In
this code, Q changes when G = 1.
Either (G or D) or (G, D) are
acceptable, in the sensitivity list.
This flip-flop is with active-low
asynchronous “clear” input.
When clear = 0, the flip-flop is
reset; otherwise, Q is updated
with the rising edge of the clock.
45. 21/01/2019 45Aravinda K., Dept. of E&C, NHCE
“if” statements cannot be used
as concurrent. Brace indicates
that any number of “else if” can
be included. Bracket indicates
that “else” is optional.
46. 21/01/2019 46Aravinda K., Dept. of E&C, NHCE
J K Qn
0 0 Qn-1
0 1 0
1 0 1
1 1 Q’n-1
This flip-flop is with active-low
asynchronous “preset” (SN) and
“clear” (RN) inputs, and triggers
on the falling edge of clock.
The characteristic equation of
the flip-flop is, Q+ = JQ’ + K’Q.
47. 21/01/2019 47Aravinda K., Dept. of E&C, NHCE
“Qint” is defined as an internal signal because, RHS cannot have
an output identifier, and inout type cannot be declared as reg.
8 ns represents the time taken to set or to clear, and 10 ns
represents the time taken for Q to change.
In the “if” statement, either (~RN) or (RN == 1’b0) are acceptable.
48. 21/01/2019 48Aravinda K., Dept. of E&C, NHCE
“always” blocks using event control statements
When sensitivity list is not specified or not
required, event control statements such as
“wait” can be used.
In contrast, when wait statements are
included, the always block cannot have
sensitivity list.
The wait statement is used as a level-
sensitive event control. It can also be used
to handshake between two processes.
49. 21/01/2019 49Aravinda K., Dept. of E&C, NHCE
1. (a) It will compile, but will not simulate correctly because, the
“carry” statement has no dependency on “add” signal.
2. (d) It will not compile because, when compiler gets to “else”, it
does not find the corresponding “if” before.
Note: Both codes can be corrected by adding “begin” and “end”.
1 2
(a) It will compile, but will not simulate correctly.
(b) It will compile and simulate, but will not synthesize correctly.
(c) It will work correctly both in simulation and synthesis.
(d) It will not get compiled at all.
50. 21/01/2019 50Aravinda K., Dept. of E&C, NHCE
Verilog data types
Net Variable
Keywords
wire (connections)
tri (tristate)
wand (wired and)
wor (wired or)
Keywords
reg (register)
time (stores timing)
integer (without point)
real (floating point)
realtime (fractional time)
51. 21/01/2019 Aravinda K., Dept. of E&C, NHCE 51
wand and wor indicate that the net is being driven by more inputs;
the synthesis tool automatically generates the respective gates.
module p1(x,y,z);
input x,y;
output z;
wor p;
assign p=x&y;
assign p=~x&~y;
assign z=p;
endmodule
module p2(x,y,z);
input x,y;
output z;
wire p;
assign p=x&y;
assign p=~x&~y;
assign z=p;
endmodule
module p3(x,y,z);
input x,y:
output z;
wire p,q ;
assign p=x&y;
assign q=~x&~y;
assign z=p|q;
endmodule
WRONG CODE GENERAL CODE
52. 21/01/2019 52Aravinda K., Dept. of E&C, NHCE
Verilog operators
Unary Arithmetic
+ plus
- minus
! logical negation
~ bitwise negation
& reduction AND
| reduction OR
^ reduction XOR
Relational and shift
+ add
- subtract
* multiply
/ divide
% modulus
** exponent
< less than
> greater than
<= less than or equal
>= greater than or equal
<< logical left shift
>> logical right shift
<<< arithmetic left shift
>>> arithmetic right shift
53. 21/01/2019 53Aravinda K., Dept. of E&C, NHCE
Verilog operators contd…
Logical Bitwise
== equality
!= inequality
=== case equality
!== case inequality
&& logical AND
|| logical OR
Other
& AND
| OR
^ XOR
^~ ~^ equal
?: conditional
{} concatenation
{{}} replication
55. 21/01/2019 55Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
C >> 2 Shift right by 2 places 000110
C >> 2 & D Bitwise AND 000010
~ B Bitwise INVERT 000
{A, ~B} Concatenate 110000
({A, ~B}) | (C >> 2 & D) Bitwise OR 110010
(({A, ~B}) | (C >> 2 & D)) & D Bitwise AND 110010
(({A, ~B}) | (C >> 2 & D)) & D ==
110010
Equality check TRUE
Example: A = 110, B = 111, C = 011000, D = 111011
56. 21/01/2019 56Aravinda K., Dept. of E&C, NHCE
Unary reduction reduces a vector into a single bit.
When parentheses are not used, “Unary” operators have the
highest precedence and “Other” operators have the lowest
precedence, in the class in which the operators are listed.
Operators belonging to the same class have same precedence,
and are applied from left to right in an expression.
& &&
Operates on Boolean type as
well as on binary data
Operates only on the Boolean
data type (TRUE or FALSE)
Evaluates both sides of the
expression
Evaluates only the LHS of the
expression
When A = 5, B = 4, C = 3, then
(A>=B) && (B<=C) yields (1) && (0) yields (0).
57. 21/01/2019 57Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
A >> 4 Logical right shift 00001010
A >>> 4 Arithmetic right shift 11111010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
reg signed [7:0] A = 8’hA5;
(A = 10100101)
Expression Operation Result
B >> 4 Logical right shift 00001010
B >>> 4 Arithmetic right shift 00001010
B << 4 Logical left shift 01010000
B <<< 4 Arithmetic left shift 01010000
reg [7:0] B = 8’hA5;
(B = 10100101)
58. 21/01/2019 58Aravinda K., Dept. of E&C, NHCE
Expression Operation Result
A >> 4 Logical right shift 00001010
A >>> 4 Arithmetic right shift 00001010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
integer signed A = 8’hA5;
(A = 00000000000000000000000010100101)
integer A = 8’shA5;
(A = 11111111111111111111111110100101)
Expression Operation Result
A >> 4 Logical right shift 11111010
A >>> 4 Arithmetic right shift 11111010
A << 4 Logical left shift 01010000
A <<< 4 Arithmetic left shift 01010000
59. 21/01/2019 59Aravinda K., Dept. of E&C, NHCE
Verilog models for Multiplexers
The expression for the output is,
F = A’I0+AI1
60. 21/01/2019 60Aravinda K., Dept. of E&C, NHCE
The expression for the output is,
F = A’B’I0+A’BI1+AB’I2+ABI3
Code with the procedural assignment, using the “case” statement
Code with the continuous statement
61. 21/01/2019 61Aravinda K., Dept. of E&C, NHCE
Code with the procedural assignment, using the “if” statement
Important coding practices while writing synthesizable Verilog:
1. Whenever possible, use concurrent assignments to design
the combinational logic.
2. Whenever procedural assignments are used for the
combinational logic, use blocking assignments.
3. Use “always @(*)”, to avoid accidental omissions of inputs
in the sensitivity list.
63. 21/01/2019 63Aravinda K., Dept. of E&C, NHCE
Concurrent Blocking Non-blocking
assign y = a & b; y = a & b; y <= a & b;
Assignment is
immediate
Assignment is
immediate
Assignment is
parallel
Suitable for
combinational logic
Suitable for
combinational logic
Suitable for
sequential logic
Order of the
statements is not
important
Order of the
statements is
important
Order of the
statements is not
important
64. 21/01/2019 64Aravinda K., Dept. of E&C, NHCE
Synthesis output: A 3-bit shift
register, with serial input A,
and outputs Q1, Q2, Q3.
Synthesis output: A single flip-
flop, with input A, and a single
output Q3.
65. 21/01/2019 65Aravinda K., Dept. of E&C, NHCE
1. Register with
synchronous
“clear” and “load”
2. Register with “left
shift” operation and
concatenation
66. 21/01/2019 66Aravinda K., Dept. of E&C, NHCE
3. Synchronous
counter
4. Standard synchronous
counter, 74163
67. 21/01/2019 67Aravinda K., Dept. of E&C, NHCE
P is “enable” signal and T is “carry connection” signal. “clear” overrides
“load” and “count” functions, and “load” overrides “count” function.
68. 21/01/2019 68Aravinda K., Dept. of E&C, NHCE
This is a structural
modeling, which
interconnects the
previous defined
modules. c74163
is component’s
name; ct1, ct2 are
instance names.
5. Cascading of
74163, to get
8-bit counter
69. 21/01/2019 69Aravinda K., Dept. of E&C, NHCE
Synthesis of “Left
shift” register
Verilog cannot synthesize delays.
Similarly, “initial” blocks are
ignored by the synthesis tools.
70. 21/01/2019 70Aravinda K., Dept. of E&C, NHCE
This code is meant for a
combinational circuit, but
creates an additional latch
to hold the value of F, when
Sel changes to 2’b11. This
latch creates timing issues.
The additional latch can be
avoided, if all possible cases
of the inputs are included.
When all possible execution
paths are covered, holding a
value is not necessary.
The additional latch can also
be avoided, by initializing
the combinational output in
the beginning of “always”
block. In this way, holding a
value becomes unnecessary.
71. 21/01/2019 71Aravinda K., Dept. of E&C, NHCE
Important coding practices while writing synthesizable Verilog:
4. Use an edge-triggered clock in the sensitivity list (using the
“posedge” or “negedge” keywords).
5. Should not make assignments to the same variable, in
more than one “always” block.
6. Unwanted latches can be avoided, by means of –
i) including “else” clauses for “if” statements. ii) specifying
all cases for “case” statements, or having a “default” clause
at the end. iii) initializing the combinational outputs at the
beginning of the “always” block.
72. 21/01/2019 72Aravinda K., Dept. of E&C, NHCE
Behavioral and Structural Verilog
Any circuit can be represented in multiple forms
of abstraction; e.g., different designers think of
NAND gate in different representations. In the
same way, the function F = AB + BC can be
described in two different ways:
73. 21/01/2019 73Aravinda K., Dept. of E&C, NHCE
Behavioral
models
Data flow (RTL)
models
Structural
models
These models describe the system
at a higher level of abstraction,
without implying any particular
structure or technology. (e.g., full
adder’s truth table description)
These models describe the system
at a lower level of abstraction, by
means of components and their
interconnections. (e.g., full adder in
terms of half adders)
These models describe the system
at an intermediate level, called as
Register Transfer Language. (e.g.:
full adder’s algebraic expressions)
74. EXAMPLE: SEQUENCE DETECTOR THAT DETECTS “101”
Modeling a sequential machine
21/01/2019 Aravinda K., Dept. of E&C, NHCE 74
77. 21/01/2019 77Aravinda K., Dept. of E&C, NHCE
Behavioral modeling for a Mealy sequential circuit
State table
An example is the state machine of a
BCD to excess-3 code converter, which
can be designed in four different ways:
1. Behavioral: with two “always” blocks
2. Behavioral: with one “always” block
3. Data flow: with combinational logic
4. Structural: with combinational logic
78. 21/01/2019 78Aravinda K., Dept. of E&C, NHCE
1. With two “always” blocks:
i) One for combinational part
ii) Other for state register
79. 21/01/2019 79Aravinda K., Dept. of E&C, NHCE
2. With one “always” block
When compared to this
model, the earlier one is
better because,
it corresponds more
closely to the hardware
implementation.
80. 21/01/2019 80Aravinda K., Dept. of E&C, NHCE
3. With combinational logic
(data flow model)
This model
requires
state
assignments,
and the
derivation of
the next
state
equations.
81. 21/01/2019 81Aravinda K., Dept. of E&C, NHCE
4. With combinational logic
(structural model)
This model exactly corresponds to
the hardware that was intended,
but requires more effort to
produce. Hence, to have quicker
“time-to-market”, designers often
use behavioral model.