An Introduction to Verilog-A: Transitioning from Verilog

Slides:



Advertisements
Similar presentations
Chapter 3 Gate-Level Minimization
Advertisements

Numeric Types & Ranges. ASCII Integral Type Numerical Inaccuracies Representational error – Round-off error – Caused by coding a real number as a finite.
Chapter 4 Methods F Introducing Methods –Benefits of methods, Declaring Methods, and Calling Methods F Passing Parameters –Pass by Value F Overloading.
Methods Java 5.1 A quick overview of methods
An Introduction to Verilog: Transitioning from VHDL
Setting the PYTHONPATH PYTHONPATH is where Python looks for modules it is told to import List of paths Add new path to the end with: setenv PYTHONPATH.
Perkovic, Chapter 7 Functions revisited Python Namespaces
COP 2800 Lake Sumter State College Mark Wilson, Instructor.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
ENEL111 Digital Electronics
The Verilog Hardware Description Language
Functions. COMP104 Functions / Slide 2 Introduction to Functions * A complex problem is often easier to solve by dividing it into several smaller parts,
Programming for Artists ART 315 Dr. J. R. Parker Art/Digital Media Lab Lec 13 Fall 2010.
12- Agenda Introduction 1 Verilog-A Modules 2 DAY 1 Synopsys 60-I-032-BSG-005 © 2007 Synopsys, Inc. All Rights Reserved Simulating Variability – Design.
Chapter 7 Introduction to Procedures. So far, all programs written in such way that all subtasks are integrated in one single large program. There is.
Verilog Intro: Part 1.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
Advanced uses of the Mathematics attribute OpendTect Master Class June 15, 2014.
Concepts when Python retrieves a variable’s value Namespaces – Namespaces store information about identifiers and the values to which they are bound –
FORTRAN.  Fortran or FORmula TRANslation was developed in the 1950's by IBM as an alternative to Assembly Language. First successfull high level language.
Introduction to Matlab. Entering Commands Constants and Functions >> pi ans = >> eps ans = e-016 >> sin(pi/2) ans = 1 >> log(1000) ans =
1 Python Chapter 2 © Samuel Marateck, After you install the compiler, an icon labeled IDLE (Python GUI) will appear on the screen. If you click.
Today’s Lecture Process model –initial & always statements Assignments –Continuous & procedural assignments Timing Control System tasks.
CSC 110 Numeric data types [Reading: chapter 3] CSC 110 D 1.
Python  By: Ben Blake, Andrew Dzambo, Paul Flanagan.
ECE 2372 Modern Digital System Design
1 TAC2000/ Protocol Engineering and Application Research Laboratory (PEARL) MATH Functions in C Language.
Computer Science 111 Fundamentals of Programming I Basic Program Elements.
Modules and Decomposition UW CSE 190p Summer 2012 download examples from the calendar.
Verilog Language Concepts
1 Math Expressions and Operators. 2 Some C++ Operators Precedence OperatorDescription Higher ( )Function call +Positive - Negative *Multiplication / Division.
1 Week 2: Variables and Assignment Statements READING: 1.4 – 1.6 EECS Introduction to Computing for the Physical Sciences.
Calculations Chapter 11 Library of math functions, and constants cos, sin, tan, abs, min, max, log, random, sqrt, pow, exp Constants.PI,.E Use care with.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHDL – Basic Language Elements  Identifiers: –basic identifier: composed of a sequence of one or more.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
MA/CS 375 Fall 2002 Lecture 3. Example 2 A is a matrix with 3 rows and 2 columns.
Department of Electrical and Computer Engineering Introduction to C++: Primitive Data Types, Libraries and Operations By Hector M Lugo-Cordero August 27,
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE498AL, University of Illinois, Urbana-Champaign 1 ECE498AL Lecture 4: CUDA Threads – Part 2.
CSCE 121: Introduction to Program Design and Concepts, Honors J. Michael Moore Spring 2015 Set 14: Plotting Functions and Data 1.
PHY 107 – Programming For Science. Announcements  Lectures may not cover all material from readings  Material that is most difficult or challenging.
Mathematics in WebCT III Bill Moss Clemson University Clemson, SC USA.
Parallel Programming Basics  Things we need to consider:  Control  Synchronization  Communication  Parallel programming languages offer different.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
Built-in SQL Functions. 2 Type of Functions Character Functions returning character values returning numeric values Numeric Functions Date Functions Conversion.
MA/CS 375 Fall 2003 Lecture 3. .* Multiplication We can use the.* operator to perform multiplication entry by entry of two matrices:
MA/CS 375 Fall 2002 Lecture 2. Motivation for Suffering All This Math and Stuff Try the Actor demo from
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
Chapter 14 LISP – Practical 3 Instructor: Haris Shahzad Artificial Intelligence CS-402.
Matlab Tutorial Iman Moazzen First Session – September 11, 2013.
1 (c) , W. J. Dally Digital Design: A Systems Approach Lecture 1: The Digital Abstraction Combinational Logic Verilog.
CSE 110: Programming Language I Afroza Sultana UB 1230.
An Introduction to Verilog: Transitioning from VHDL
Chapter 8: FET Amplifiers
Hardware Description Language
Chapter 6 - Functions modular programming general function format
Matlab Introduction.
Verilog Introduction Fall
Verilog-HDL-1 by Dr. Amin Danial Asham.
FET Amplifiers.
What is an Op-Amp Low cost integrating circuit consisting of:
By William Vides Edited by Dr. George Engel
C Short Overview Lembit Jürimägi.
Introduction to Verilog
Lecture 1.3 Hardware Description Languages (HDLs)
Chapter 8: FET Amplifiers
ECE498AL Spring 2010 Lecture 4: CUDA Threads – Part 2
Introduction to Small Signal Model
Web Programming Language
Terminal-Based Programs
Presentation transcript:

An Introduction to Verilog-A: Transitioning from Verilog Tutorial 1 An Introduction to Verilog-A: Transitioning from Verilog

Lesson Plan (Tentative) Week 1: Transitioning from VHDL to Verilog, Introduction to Cryptography Week 2: A5 Cipher Implementaion, Transitioning from Verilog to Verilog-A Week 3: Verilog-A Mixer Analysis

Analog Verilog (Verilog-AMS) Verilog introduced as IEEE Standard 1364 Dire need for analog circuits to be modelled as a language VHDL and Verilog come up with analog equivalents: AHDL and Verilog-AMS (Analog and Mixed Signal)

New Types in Verilog-A Integer/Real (same as Verilog) Electrical (electrical wire) Parameter (parameter constants) Genvar (local variables eg for loops and such)

Parameters Example: Parameter real gain = 1 from [1:1000]; Second keyword real specifies optional type (real or integer) From is used to specifies optional range of the parameter. [] is used to indicate that the end values are allowable while () means end values are not.

Parameters Parameters cannot be changed at run time, but can be changed at compile time using defparam Example: module annotate; defparam tgate.m1.gate_width = 5e-6, tgate.m2.gate_width = 10e-6; endmodule

Parameters Can also exclude ranges, eg Can be arrayed, eg Parameter real res = 1.0 from [0:inf) exclude (10:20) exclude 100; Can be arrayed, eg Parameter real poles[0:3] = {1.0, 2.0, 3.83, 4.0}; Can be strings, eg Parameter string type = “NPN” from { “NPN”, “PNP” };

Operators Mostly same as Verilog, but has extra functions for analog design Built-in mathematical functions: ln(x), log(x), exp(x), sqrt(x), min(x,y), max(x,y), abs(x), pow(x,y), floor(x), ceil(x) sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x)

Operators (con’t) Voltage/Current access: V(b1), V(n1) access the branch voltage and node voltage wrt ground V(n1,n2) accesses the difference between n1 and n2 I(b1), I(n1) access the branch current and node current flowing to ground

Operators (con’t) Voltage/Current access: I(n1,n2) accesses the current flowing between n1 and n2 I(<p1>) accesses the current flowing into p1, a port

Analog Operators (Filters) Cannot be placed in any loop or conditional (for, while, if, case, repeat) because internal state must be maintained Only in an analog block Argument list cannot be null

Analog Operators ddt(x), calculates the time derivative of x idt(x,opt_ic), calculates the time integral of x (with or without initial condition) laplace_zp, laplace_zd, laplace_np, laplace_nd (various laplace transforms)

Analog Operators Analysis types Noise models Analysis() returns true(1) if analysis done is of that type (AC, DC, tran, noise, etc) Noise models Can use white_noise, flicker_noise, noise_table

User-Defined Functions Syntax: analog function real geomcalc; input l, w ; output area, perim ; real l, w, area, perim ; begin area = l * w ; perim = 2 * ( l + w ); end endfunction Called as follows: dummy = geomcalc(l-dl, w-dw, ar, per) ;

Signals and Models Let’s take an example of a resistor (modelled as a voltage-controlled current source) module my_resistor(p,n); parameter real R=1; electrical p,n; branch (p,n) res; analog begin V(res) <+ R * I(res); end endmodule

Signals and Models (con’t) Other current/voltage sources: V(out) <+ A * V(in); //VCVS I(out) <+ A * V(in); //VCCS V(out) <+ A * I(in); //CCVS I(out) <+ A * I(in); //CCCS

Signals and Models RLC Circuit model Series: Parallel: V(p, n) <+ R*I(p, n) + L*ddt(I(p, n)) + idt(I(p, n))/C; Parallel: I(p, n) <+ V(p, n)/R + C*ddt(V(p, n)) + idt(V(p, n))/L;

Simple Amplifier Example: module amp(out, in); input in; output out; electrical out, in; parameter real Gain = 1; analog V(out) <+ Gain*V(in); endmodule

Mixed Signal Models Note that wires are used with electricals. Example: one-bit DAC module onebit_dac (in, out); input in; inout out; wire in; electrical out; real x; analog begin if (in == 0) x = 0.0; else x = 3.0; V(out) <+ x; end endmodule Note that wires are used with electricals. The digital signals in this context are represented as bits

Conclusions Verilog is so useful that it has been redesigned for analog/mixed signal applications Designer Guide (surprisingly easy to read) http://www.designers-guide.org/VerilogAMS/VlogAMS-2.1-pub.pdf