VHDL 2 Identifiers, data objects and data types

Slides:



Advertisements
Similar presentations
Multiplexers Section 3-7 Mano & Kime. Multiplexers & Demultiplexers Multiplexers (Selectors) Lab 1 – Behavioral VHDL -- Multiplexers MUX as a Universal.
Advertisements

VHDL 4 Building blocks of a computer VHDL 4 : (ver.5a) 1.
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
History TTL-logic PAL (Programmable Array Logic)
VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Thomson Engineering.
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
VHDL Data Types Module F3.1. VHDL Data Types Scalar Integer Enumerated Real (floating point)* Physical* Composite Array Record Access (pointers)* * Not.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
ELEN 468 Lecture 191 ELEN 468 Advanced Logic Design Lecture 19 VHDL.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi Some of the slides were taken from K Gaj’s lecture slides from GMU’s.
VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.
Programming in VHDL Using Processes. How Processes Run A process is either in suspend mode or is running. For a process to run, there has to be a change.
Introduction to VHDL Multiplexers Discussion D1.1.
第6章 VHDL NUMBERS, STRINGS, AND EXPRESSIONS 義守大學電機工程學系 陳慶瀚
Introduction to VHDL (part 2)
Concordia University 1 Lecture #8 In this lecture we will cover the following material: The standard package, The std_logic_1164  Objects & data Types.
Reconfigurable Computing - VHDL - Types John Morris Chung-Ang University The University of Auckland.
1 Part I: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
IAY 0600 Digital Systems Design
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
1 Introduction to VHDL Spring What is VHDL? VHDL can be uses to model and synthesise digital systems. VHDL = VHSIC Hardware Description Language.
Introduction to VHDL Spring EENG 2920 Digital Systems Design Introduction VHDL – VHSIC (Very high speed integrated circuit) Hardware Description.
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
1 Introduction to VHDL part 1 Fall Preliminary Class web page egre365/index.html Syllabus Grades: –Quizzes.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Reconfigurable Computing - VHDL - Types John Morris Chung-Ang University The University of Auckland.
VHDL Basics. VHDL BASICS 2 OUTLINE –Component model –Code model –Entity –Architecture –Identifiers and objects –Operations for relations VHDL ET062G &
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Lecture #7 Page 1 Lecture #7 Agenda 1.VHDL Data Types Announcements 1.n/a ECE 4110– Digital Logic Design.
Chapter 5 Introduction to VHDL. 2 Hardware Description Language A computer language used to design circuits with text-based descriptions of the circuits.
L19 – Resolved Signals. Resolved Signals  What are resolved signals In systems In VHDL Resolution – Isn’t that for resolving conflicts?  Ref: text Unit.
IAY 0600 Digital Systems Design
DATA TYPES 1.Pre-Defined Data Types 2. User-Defined Data Types.
8-Jan-16EE5141 Chapter 6 Subprograms & Packages Subprogram declaration Subprogram body Package declaration Package body Resolution function Subprogram.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
5-1 Logic System Design I VHDL Design Principles ECGR2181 Reading: Chapter 5.0, 5.1, 5.3 port ( I: in STD_LOGIC_VECTOR (1 to 9); EVEN, ODD: out STD_LOGIC.
BASIC VHDL LANGUAGE ELEMENTS Digital Design for Instrumentation with VHDL 1.
VHDL 2 Identifiers, data objects and data types
ECOM 4311—Digital System Design with VHDL
VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY Design descriptions & Design constructions examples are taken from foundation series examples exercise 3:
Signals & Data-typesVer 1.1, Copyright 1997, TS, Inc. VHDL S i g n a l s & D a t a T y p e s Page 1.
VHDL 7: use of signals v.5a1 VHDL 7 Use of signals In processes and concurrent statements.
VHDL 4 Building blocks of a computer VHDL 4 : (ver.6a) 1.
1 - CPRE 583 (Reconfigurable Computing): VHDL overview 1 Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 2: 8/26/2011 (VHDL Overview.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
IAY 0600 Digital Systems Design
Basic Language Concepts
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
Design Entry: Schematic Capture and VHDL
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
Reconfigurable Computing - VHDL - Types
VHDL 5 FINITE STATE MACHINES (FSM)
In processes and concurrent statements
ECE 434 Advanced Digital System L17
ECE 434 Advanced Digital System L15
CHAPTER 10 Introduction to VHDL
VHDL 1. ver.7a VHDL1 INTRODUCTION TO VHDL (VERY-HIGH-SPEED-INTEGRATED-CIRCUITS HARDWARE DESCRIPTION LANGUAGE) KH WONG (w2 begins) (Some pictures are.
Building blocks of a computer
Data Flow Modeling of Combinational Logic
CPE/EE 422/522 Advanced Logic Design L11
IAS 0600 Digital Systems Design
CPE 528: Lecture #5 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
Introduction to VHDL part 1
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
IAS 0600 Digital Systems Design
CPRE 583 Reconfigurable Computing
VHDL Data Types Module F3.1.
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

VHDL 2 Identifiers, data objects and data types Chapter2 Identifiers Data objects constants Signals Variables Data types VHDL 2. Identifiers, data objects and data types ver.6a

Identifiers It is about how to create names Used to represent an object (constant, signal or variable) Chapter2 Identifiers Data objects constants Signals Variables Data types VHDL 2. Identifiers, data objects and data types ver.6a

VHDL 2. Identifiers, data objects and data types ver.6a Rules for Identifiers Names for users to identify data objects: signals, variables etc. First character must be a letter last character cannot be an underscore Not case sensitive Two connected underscores are not allowed Examples of identifiers: a, b, c, axy, clk ...

Example: a,b,equals are Identifiers of signals VHDL 2. Identifiers, data objects and data types ver.6a Example: a,b,equals are Identifiers of signals 1 entity eqcomp4 is 2 port (a, b: in std_logic_vector(3 downto 0); 3 equals: out std_logic); 4 end eqcomp4; 5 6 architecture dataflow1 of eqcomp4 is 7 begin 8 equals <= '1' when (a = b) else '0’; 9-- “comment” equals is active high 10 end dataflow1;

VHDL 2. Identifiers, data objects and data types ver.6a

VHDL 2. Identifiers, data objects and data types ver.6a Chapter2 Identifiers Data objects Constants (Global) Signals Variables (Local) Data types Constant Signals variables VHDL 2. Identifiers, data objects and data types ver.6a

Data objects: 3 different objects VHDL 2. Identifiers, data objects and data types ver.6a Data objects: 3 different objects 1 Constants: hold values that cannot be changed within a design. e.g. constant width: integer :=8 2 Signals: to represent wire connections e.g. signal count: bit_vector (3 downto 0) -- count means 4 wires; they are count(3),count(2), count(1), count(0). 3 Variables: internal representation used by programmers; do not exist physically.

Recall: if a signal is used as input/output declared in port It has 4 modes e.g. entity eqcomp4 is port (a, b: in std_logic_vector(3 downto 0 ); equals: out std_logic); end eqcomp4; Modes in port in out inout buffer VHDL 2. Identifiers, data objects and data types ver.6a

Syntax to create data objects VHDL 2. Identifiers, data objects and data types ver.6a Syntax to create data objects In entity declarations

Constants with initialized values VHDL 2. Identifiers, data objects and data types ver.6a Constants with initialized values constant CONST_NAME: <type_spec> := <value>; -- Examples: constant CONST_NAME: BOOLEAN := TRUE; constant CONST_NAME: INTEGER := 31; constant CONST_NAME: BIT_VECTOR (3 downto 0) := "0000"; constant CONST_NAME: STD_LOGIC := 'Z'; constant CONST_NAME: STD_LOGIC_VECTOR (3 downto 0) := "0-0-"; -- ‘-’ is don’t care

Signals with initialized values VHDL 2. Identifiers, data objects and data types ver.6a Signals with initialized values signal sig_NAME: type_name [: init. Value]; -- examples signal s1_bool : BOOLEAN; -- no initialized value signal xsl_int1: INTEGER :=175; signal su2_bit: BIT :=‘1’;

Variables with initialized values VHDL 2. Identifiers, data objects and data types ver.6a Variables with initialized values variable V_NAME: type_name [: init. Value]; -- examples variable v1_bool : BOOLEAN:= TRUE; variable val_int1: INTEGER:=135; variable vv2_bit: BIT; -- no initialized value

Signal and variable assignments VHDL 2. Identifiers, data objects and data types ver.6a Signal and variable assignments SIG_NAME <= <expression>; VAR_NAME :=<expression>;

VHDL 2. Identifiers, data objects and data types ver.6a Student ID: __________________ Name: ______________________ Date:_______________ (Submit this at the end of the lecture.) Exercise 2.1: On signals Fill in the blanks. Identifiers are: __________ Input signals are: Signal arrays are: Signal type of DIN: Mode of DOUT 1-- 4-bit parallel load register with asynchronous reset 2-- CLK, ASYNC ,LOAD, : in STD_LOGIC; 3-- DIN: in STD_LOGIC_VECTOR(3 downto 0); 4-- DOUT: out STD_LOGIC_VECTOR(3 downto 0); 5 process (CLK, ASYNC) 6 begin 7 if ASYNC='1' then 8 DOUT <= "0000"; 9 elsif CLK='1' and CLK'event then 10 if LOAD='1' then 11 DOUT <= DIN; 12 end if; 13 end if; 14 end process

VHDL 2. Identifiers, data objects and data types ver.6a Different types of wires Each type has a certain range of logic levels

VHDL 2. Identifiers, data objects and data types ver.6a Chapter2 Identifiers Data objects Constants (Global) Signals Variables (Local) Data types VHDL 2. Identifiers, data objects and data types ver.6a

VHDL 2. Identifiers, data objects and data types ver.6a User can design the type for a data object. E.g. a signal can have the type ‘bit’ E.g. a variable can have the type ‘std_logic’ Only same type can interact.

VHDL 2. Identifiers, data objects and data types ver.6a Types must match Different types : bit and std_logic 1 entity test is port ( 2 in1: in bit; 3 out1: out std_logic ); 4 end test; 5 architecture test_arch of test is 6 begin 7 out1<=in1; 8 end test_arch; Not allowed

VHDL 2. Identifiers, data objects and data types ver.6a Exercise 2.2: (a) Declare a signal “signx” with type bit in line 2 (b) Can you assign an IO mode to this signal (Yes or No) , and why? Answer:______________________________ 1 Architecture test2_arch of test2 2 ?_________________ 3 begin 4 ... 5 … 6 end test_arch

VHDL 2. Identifiers, data objects and data types ver.6a Exercise 2.3: (a) Where do you specify the types for signals? (b) Draw the schematic of this circuit. Answer for (a) : Specify types of signals in (i)____________________ (ii)____________________ 1 entity nandgate is 2 port (in1, in2: in STD_LOGIC; 3 out1: out STD_LOGIC); 4 end nandgate; 5 architecture nandgate_arch of nandgate is 6 signal connect1: STD_LOGIC; 7 begin 8 connect1 <= in1 and in2; 9 out1<= not connect1; 10 end nandgate_arch; Answer for (b)

Revision (so far we learned) (w3 begins) Chapter2 Identifiers Data objects Constants (Global) Signals Variables (Local) Data types Data object Constants, signal, Variables Signal in port (external pins) In Out Inout Buffer Data type Many types: integer, float, bit, std_logic, etc. VHDL 2. Identifiers, data objects and data types ver.6a

VHDL 2. Identifiers, data objects and data types ver.6a Exercise: 2.4: (a) Underline the IO signal (b) Underline the Internal Signal 1 entity nandgate is 2 port (in1, in2: in STD_LOGIC; 3 out1: out STD_LOGIC); 4 end nandgate; 5 architecture nandgate_arch of nandgate is 6 signal connect1: STD_LOGIC; 7 begin 8 connect1 <= in1 and in2; 9 out1<= not connect1; 10 end nandgate_arch;

VHDL 2. Identifiers, data objects and data types ver.6a Different data types

VHDL 2. Identifiers, data objects and data types ver.6a Different data types Chapter2 Identifiers Data objects Constants (Global) Signals Variables (Local) Data types Data types Enumeration: Red, blue Boolean: “TRUE”, ”FALSE” Bit: 0,1 Character ‘a’,’b’ String: “text” Integer: 13234,23 Float: 0.124 standard logic: Resolved, Unresolved VHDL 2. Identifiers, data objects and data types ver.6a

Examples of some common types VHDL 2. Identifiers, data objects and data types ver.6a Examples of some common types Type BOOLEAN is (FALSE, TRUE) type bit is (‘0’ ,’1’); type character is (-- ascii string) type INTEGER is range of integer numbers type REAL is range of real numbers Type Standard logic( with initialized values): signal code_bit : std_logic := ‘1’; --for one bit , init to be ‘1’, or ‘0’ signal codex : std_logic_vector (1 downto 0) :=“01”; -- 2-bit signal codey : std_logic_vector (7 downto 0) :=x“7e”; --8-bit hex 0x7e Note: Double quote “ ” for more than one bit Single quote ‘ ’ for one bit

VHDL 2. Identifiers, data objects and data types ver.6a Boolean, Bit Types Boolean (true/false), character, integer, real, string, these types have their usual meanings. In addition, VHDL has the types: bit, bit_vector, The type “bit” can have a value of '0' or '1'. A bit_vector is an array of bits. See VHDL Quick Reference http://www.doulos.com/knowhow/vhdl_designers_guide/

VHDL 2. Identifiers, data objects and data types ver.6a Integer type (depends on your tool; it uses large amount of logic circuits for the implementation of integer/float operators) E.g. Range from -(2^31) to (2^31)-1

VHDL 2. Identifiers, data objects and data types ver.6a Floating type -3.4E+38 to +3.4E+38 For encoding floating numbers, but usually not supported by synthesis tools of programmable logic because of its huge demand of resources.

VHDL 2. Identifiers, data objects and data types ver.6a exercise Enumeration types: How to input an abstract concept into a circuit ? E.g.1 color: red, blue, yellow, orange etc, we need 2 bits E.g.2 Language type: Chinese, English, Spanish, Japanese, Arabic. How many bits needed? Answer: 5 different combinations: 3 bits 中文字, Chinese characters, caracteres chinos,漢字,الأحرف الصينية ,

VHDL 2. Identifiers, data objects and data types ver.6a Enumeration types: An enumeration type is defined by listing (enumerating) all possible values Examples: type COLOR is (BLUE, GREEN, YELLOW, RED); type MY_LOGIC is (’0’, ’1’, ’U’, ’Z’); -- then MY_LOGIC can be one of the 4 values

VHDL 2. Identifiers, data objects and data types ver.6a Exercises 2.5 Example of the enumeration type of the menu of a restaurant: type food is (hotdog, tea, sandwich, cake, chick_wing); (a) Declare the enumeration type of the traffic light. Answer: _______________________________________ (b) Declare the enumeration type of the outcomes of rolling a dice. (c) Declare the enumeration type of the 7 notes of music.

VHDL 2. Identifiers, data objects and data types ver.6a Define Array or a bus

Std_logic_vector (array of bits) for bus implementation VHDL 2. Identifiers, data objects and data types ver.6a Std_logic_vector (array of bits) for bus implementation bit Bit_vector To turn bits into a bus ‘bit’ or ‘std_logic’ is ‘0’, ‘1’ etc. Std_logic_vector is “000111”etc. 1 entity eqcomp3 is 2 port (a, b: in std_logic_vector(2 downto 0); 3 equals: out std_logic); 4 end eqcomp3; So a, b are 3-bit vectors: a(2), a(1), a(0), b(2), b(1), b(0), bit

Exercise 2.6 Difference between “to” and “downto” VHDL 2. Identifiers, data objects and data types ver.6a Exercise 2.6 Difference between “to” and “downto” (a) Given: signal a : std_logic_vector( 2 downto 0); Create a 3-bit bus c using “to”instead of “downto” in the declaration. Answer: ______________________________ (b) Draw the circuit for this statement: c<=a;

Resolved, Unresolved logic (Concept of Multi-value logic) VHDL 2. Identifiers, data objects and data types ver.6a An advanced topic Resolved, Unresolved logic (Concept of Multi-value logic)

Resolved logic concept (Multi-value Signal logic) VHDL 2. Identifiers, data objects and data types ver.6a Resolved logic concept (Multi-value Signal logic) Can the outputs be connected together to drive a device ? The connected output is driving a device (e.g. a buffer) to produce an output. A device is usually having high input impedance (e.g. 10M) output C1 Rin Rin=Input impedance 10M ?? C2

Resolved signal concept VHDL 2. Identifiers, data objects and data types ver.6a Resolved signal concept Signal c1,c2, b1: bit; b1<=c1; A device b1 c1 no problem

Resolved signal concept VHDL 2. Identifiers, data objects and data types ver.6a Resolved signal concept Signal c1,c2, b1: bit; b1<=C1; b1<=C2; b1 A device ?? illegal C1 ?? C2 We need "resolved type" to resolve this problem

Type Std_logic and std_ulogic VHDL 2. Identifiers, data objects and data types ver.6a Type Std_logic and std_ulogic A device Std_logic is a type of resolved logic, that means a signal can be driven by 2 inputs std_ulogic: (the “u”: means unresolved) Std_ulogic type is unresolved logic, that means a signal cannot be driven by 2 inputs

Although VHDL allows resolved types, but Xilinx has not implemented it VHDL 2. Identifiers, data objects and data types ver.6a Although VHDL allows resolved types, but Xilinx has not implemented it Error message # 400 Signal 'name' has multiple drivers. The compiler has encountered a signal that is being driven in more than one process. Note that it is legal VHDL to have a signal with multiple drivers if the signals type is a resolved type (i.e. has a resolution function) such as 'std_logic' (but not 'std_ulogic'). (Metamor, Inc.)

Standard logic type and resolved logic (Multi-Value Signal Types) VHDL 2. Identifiers, data objects and data types ver.6a Standard logic type and resolved logic (Multi-Value Signal Types) The IEEE_1164 library -- the industrial standard And some of its essential data types

To use the library, add the two lines at the front VHDL 2. Identifiers, data objects and data types ver.6a To use the library, add the two lines at the front Library IEEE use IEEE.std_logic_1164.all entity architecture

VHDL 2. Identifiers, data objects and data types ver.6a The 9-valued logic standard logic system of IEEE_1164, It specifies the possible states of a signal(Multi-Value Signal Types) ‘U’ Uninitialized ‘X’ Forcing Unknown ‘0’ Forcing 0 ‘1’ Forcing 1 ‘Z’ High Impedance=float ‘W’ Weak Unknown ‘L’ Weak 0 ‘H’ Weak 1 ‘-’ Don’t care ? state

Resolved rules of the 9-level logic VHDL 2. Identifiers, data objects and data types ver.6a Resolved rules of the 9-level logic There are weak unknown, weak 0, weak 1 and force unknown, force 0, force 1 when 2 signals tight together, the forcing signal dominates. It is used to model the internal of a device. In our applications here, the subset of the IEEE forcing values ‘X’ ‘0’ ‘1’ ‘Z’ are used.

VHDL 2. Identifiers, data objects and data types ver.6a Exercise 2.7: Resolution table when two std_logic signals S1,S2 meet (X=forcing unknown, Z=float) Fill in the blanks “?”

From: http://zeus.phys.uconn.edu/wiki/index.php/VHDL_tutorial VHDL 2. Identifiers, data objects and data types ver.6a From: http://zeus.phys.uconn.edu/wiki/index.php/VHDL_tutorial ‘U’ Uninitialized ‘X’ Forcing Unknown ‘0’ Forcing 0 ‘1’ Forcing 1 ‘Z’ Float ‘W’ Weak Unknown ‘L’ Weak 0 ‘H’ Weak 1 ‘-’ Don’t care

Understanding multi-level logic using Ohms law VHDL 2. Identifiers, data objects and data types ver.6a Understanding multi-level logic using Ohms law Connection junction Driving voltage Level (Vj) Rj Ri Driving voltage Level (Vi) The junction is driving a device Rin=10M output Level type Ri or Rj (vraiable resistor dpends on the level-type) Driving Voltage Vi or Vj (in Voltage) ‘U’ Uninitialized unknown Unknown ‘X’ Forcing Unknown 50 :(low R for forcing) ‘0’ Forcing 0 ‘1’ Forcing 1 5 ‘Z’ Float 10M (Very high R for float) Not connected ‘W’ Weak Unknown 100 K :(high R for weak) ‘L’ Weak 0 ‘H’ Weak 1 ‘-’ Don’t care

VHDL 2. Identifiers, data objects and data types ver.6a Calculation Example Proof Vc  5V Answer: using Kirchhoff law at junction: i1+i2+i3=0 i1=(5-Vc)/50 i2=(0-Vc)/100K i3=(0-Vc)/10M, so (5-Vc)/50+(0-Vc)/100K+(0-Vc)/10M=0, since 50<<100K &10M 5-Vc  0, hence Vc  5 Connection Junction (Vc)  5V=high Driving voltage Level (Vj=1=5V) Forcing high Rj=50 i2 Ri=100K Driving voltage Level (Vi=L) Weak Low Output= i1 i3 Rin=10M output Vc

Examples (you can use Ohms and Kirchhoff laws to verify results) VHDL 2. Identifiers, data objects and data types ver.6a Examples (you can use Ohms and Kirchhoff laws to verify results) Connection Junction  5V=high Example1 Example 2 Example3 Driving voltage Level (Vj=1=5V) Forcing high Rj=50 Ri=100K Driving voltage Level (Vi=L=0v) Weak Low Output= Rin=10M output Connection Junction0v=low Driving voltage Level (Vj=0=0V) Forcing low Rj=50 Ri=100K Driving voltage Level (Vi=H=5v) Weak high Connection Junction2.5V=X (forcing unknown) , current is high Driving voltage Level (Vj=1=5V) Forcing high Rj=50 Ri=50 Driving voltage Level (Vi=0) Forcing low

VHDL 2. Identifiers, data objects and data types ver.6a More examples Example 4 Example 5a Example 5b Connection Junction0=0V (Low) , Driving voltage Level (Vj=Z, not connected) Rj=10M Ri=50 Driving voltage Level (Vi=0) Forcing Low Connection Junction2.5V=W, weak unknown Driving voltage Level (Vi=L=0V) Weak Low Driving voltage Level (Vj=H=5V), Weak High Rj=100K Ri1=100K Connection Junction0V=Low, Driving voltage Level (Vi=L=0V) Weak Low Driving voltage Level (Vj=H=5V), Weak High Rj=100K Ri1=100K Driving voltage Level (Vi=L=0V) Forcing Low Ri2=50

Exercise 2.8: use Ohms and Kirchhoff laws to verify results VHDL 2. Identifiers, data objects and data types ver.6a Exercise 2.8: use Ohms and Kirchhoff laws to verify results Calculate Vc for the following 2 cases: Ex2.8A: for example5a in lecture note2 Ex2.8B: for example5b in lecture note2 Connection Junction2.5V=W, weak unknown Driving voltage Level (Vj=H=5V), Weak High Driving voltage Level (Vi=L=0V) Weak Low Rj=100K Ri1=100K Vc Connection Junction0V=Low, Driving voltage Level (Vi=L=0V) Weak Low Driving voltage Level (Vj=H=5V), Weak High Rj=100K Ri1=100K Vc Driving voltage Level (Vi=L=0V) Forcing Low Ri2=50

VHDL 2. Identifiers, data objects and data types ver.6a Answer 2.8A Exercise2.8A (for exercise 2.8B students need to produce the answer on their own) Answer: using Kirchhoff law at junction: i1+i2+i3=0 i1=(5-Vc)/100K i2=(0-Vc)/100K i3=(0-Vc)/10M, so (5-Vc)/100K+(0-Vc)/100K+(0-Vc)/10M=0, since 100K << 10M 5-Vc+(0-Vc)=5-2*Vc  0, hence Vc  2.5 (unknown but is weak) Why it is weak because I1=(5-Vc)/100K=2.5/100K=0.025mA current is weak. Connection Junction (Vc)  5V=high Driving voltage Level (Vj=H=5V), Weak High Rj=100K i2 Ri1=100K Driving voltage Level (Vi=L=0v) Weak Low Output= i1 i3 Rin=10M output Vc

Alternative answers for exercise 2.8 VHDL 2. Identifiers, data objects and data types ver.6a Alternative answers for exercise 2.8 For example 5a 5V---100K  -----junction------100K  ----0V Junction is 2.5 is an unknown level but is weak. For example 5b 5V---100K -----junction------100K  ----0V ^---------50 ----0V Equivalent to 5V---100K -----junction------100K//50 ----0V Or (when 100K is in parallel to 50 , the equivalent resistance is very close to 50 ), so the circuit becomes 5V---100K -----junction------50 ----0V So junction is low (nearly 0 Volt)

Appendix 1 Example of using IEEE1164 VHDL 2. Identifiers, data objects and data types ver.6a Appendix 1 Example of using IEEE1164 library IEEE; use IEEE.std_logic_1164.all; -- defines std_logic types --library metamor; entity jcounter is port ( clk : in STD_LOGIC; q : buffer STD_LOGIC_VECTOR (7 downto 0) );

VHDL 2. Identifiers, data objects and data types ver.6a Quick Revision You should have learnt Identifier and usage Different data objects (constant, signals, variables) Different data types (Boolean , bit, stad_logic, std_logic_vector integer etc) Resolved logic