Design Problem 5 Solutions

Size: px
Start display at page:

Download "Design Problem 5 Solutions"

Transcription

1 CS/EE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solutions Jon Turner Due 5/4/04 1. (100 points) In this problem, you will implement a simple shared memory multiprocessor system and run a small test program using it. Your system will use two copies of the simple processor introduced in class (with a couple modifications). These will each connect to a separate port of a two port memory module. Both processors will execute a program stored in the memory module and will exchange data through the memory. You will need to make two changes to the processor. First, add an input signal called pid (this stands for processor id). In your top level entity, you will instantiate the cpu module twice. One instance will have its pid input connected to a constant 0 and the other will have its pid input connected to a constant 1. Now, inside the cpu module itself, add a new instruction to load the value of the pid input into the accumulator. Use 0002 as the numerical value for this instruction. Next, you will need to create a different version of the memory module. This version will have two sets of ports (0 and 1), each with its own enable, r/w signal, address and data. These two sets of ports will operate independently of one another, so that one processor can read a location in the memory at the same time that the other processor is writing a different location. Note that if both processors attempt to write the same location at the same time, the result may be unpredictable. It s up to the person who programs the processors to make sure this doesn t happen. In the top level module, connect your processors to the corresponding ports of the memory module. To test your multiprocessor system, write a simple program that causes the two processors pass a value back and forth, incrementing the value between each pass. Both processors will be executing the same program (which they get from the shared memory), but the behavior of processor 0 will be slightly different from processor 1. To allow the processors to behave differently, your program will need to look at the pid value and perform some operations differently, based on the pid. Your program should use memory location 63 (hex 3f) to store a count (which the processors will each increment) and location 62 to store a flag to control access to the count. The flag is used as follows. Whenever the flag value is equal to the processor s pid value, that tells the processor that it is its turn to increment the count. After the processor increments the counter, it writes the pid of the other processor into the flag location. When the flag value is not equal to the processor s pid, the processor should just wait in a loop, checking the flag on each iteration, and exiting the loop when the flag value matches its pid. Both processors should stop as soon as the value of the counter is greater than 20. For your design notes, make a copy of the processor block diagram on page 6.19 of the notes and modify it to show where the pid comes in. Include notes with the block diagram - 1 -

2 explaining how the pid is used. The figure below is a block diagram of the memory module. Draw a similar diagram for the two port memory module. This should correspond to your VHDL for the memory. Your notes should also include a brief description of what parts of the VHDL source code need to be modified to implement the changes and an explanation of the changes necessary. Also, include a pseudo-code description of your test program and a listing of the machine language instructions that implement the pseudo-code. Include the pseudo-code in the form of comments along with your machine language instructions. Turn in your VHDL source code, with all the changes that you made highlighted. Perform a functional simulation of the running program. Turn in simulation output for the first several iterations, highlighting the instructions that increment the count. Also, show the last iteration; this should show both processors halting. Since you will only be doing a functional simulation, it s not necessary to bring all the CPU registers out to external signals, since you can display these using the simulator. Be sure to show all the internal registers for both processors (including state and tick), as well as both address and data buses and both sets of memory control signals. Organize the signals to make it easy to follow what s going on. In particular, put all the signals for processor 0 together, followed by all the signals for processor 1 and list them in the same order. Use hex format for all registers and buses. Make sure that everything is legible. dbus 0 D C word 0 Q 0 1 D C word 1 Q 1 decoder (6-64) 27 D C word 27 Q 27 dbus 63 D C word 63 Q 63 abus en r/w - 2 -

3 Design notes. The processor diagram is shown below. The pid appears as another input to the accumulator (with zeros in bits 15 downto 1). Wnen the processor performs a load pid instruction, the control circuit will select that input to the multiplexor when performing the load. Addr Bus Data Bus IREG LD decode PC LD + IAR LD 0..0 & pid ACC LD compare ALU OP Control Logic (combinational circuit) mem_en mem_rw state tick - 3 -

4 The dual port memory block diagram is shown below. The circuitry at left allows two writes to take place at the same time, so long as they don t access the same word. Similarly, the circuitry at right allows two reads to take place at the same time (in this case, it s ok if they access the same word. Also, of course, you can have a write that is simultaneous with the read, but if they access the same word, the result of the read may be unpredictable. dbus0 dbus1 0 0 D C word 0 Q 0 0 decoder (6-64) 27 decoder (6-64) 27 D C word 27 Q dbus0 dbus D C word 63 Q abus0 abus1 en0 en1 r/w1-4 -

5 The pseudo-code for the test program is shown below. The processor waits in the first while loop until the flag matches its pid value. It then checks if the count has reached the limit or not and halts if it has. Otherwise, it increments the count, then checks again to see if the limit has been reached. If it has, it changes the flag before halting, so that the other processor will halt. loop forever while flag /= pid wait; if count = 20 then halt; count := count + 1; if count = 20 then if pid = 0 then flag := 1; else flag := 0; halt; if pid = 0 then flag := 1; else flag := 0; end loop; The machine language version of the program is shown below while flag /= pid wait; a03e fec -- if count = 20 then halt; 0006 a03f a a count := count + 1; 000b a03f 000c 403f 000d 1fec -- if count = 20 then 000e a03f 000f if pid = 0 then flag := 1 else flag := 0; e e halt if pid = 0 then flag := 1 else flag := 0; 001a 701e 001b c 403e 001d e f 403e goto top; 003e flag (initialized to 0) 003f count (initialized to 0) - 5 -

6 VHDL Source. The changes are highlighted in bold. package commonconstants is constant wordsize: integer := 16; constant adrlength: integer := 16; end package commonconstants; library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use work.commonconstants.all; entity ram2port is port ( reset: in STD_LOGIC; en0, r_w0: in STD_LOGIC; abus0: in STD_LOGIC_VECTOR(adrLength-1 downto 0); dbus0: inout STD_LOGIC_VECTOR(wordSize-1 downto 0); en1, r_w1: in STD_LOGIC; abus1: in STD_LOGIC_VECTOR(adrLength-1 downto 0); dbus1: inout STD_LOGIC_VECTOR(wordSize-1 downto 0)); end ram2port; architecture ramarch of ram2port is constant resadrlength: integer := 6; -- address length restricted within architecture constant memsize: integer := 2**resAdrLength; type ram_typ is array(0 to memsize-1) of STD_LOGIC_VECTOR(wordSize-1 downto 0); signal ram: ram_typ; begin process(reset, en0, r_w0, abus0, dbus0, en1, r_w1, abus1, dbus1) begin if reset = '1' then -- basic instruction check ram(0) <= x"0002"; -- while flag /= pid wait; ram(1) <= x"0001"; ram(2) <= x"a03e"; ram(3) <= x"7005"; ram(4) <= x"6000"; ram(5) <= x"1fec"; -- if count = 20 then halt; ram(6) <= x"a03f"; ram(7) <= x"7009"; ram(8) <= x"600a"; ram(9) <= x"0000"; ram(10) <= x"1001"; -- count := count + 1; ram(11) <= x"a03f"; ram(12) <= x"403f"; ram(13) <= x"1fec"; -- if count = 20 then ram(14) <= x"a03f"; ram(15) <= x"7011"; ram(16) <= x"6019"; ram(17) <= x"0002"; -- if pid = 0 then flag := 1 else flag := 0; ram(18) <= x"7016"; ram(19) <= x"1000"; ram(20) <= x"403e"; ram(21) <= x"6018"; ram(22) <= x"1001"; ram(23) <= x"403e"; ram(24) <= x"0000"; -- halt ram(25) <= x"0002"; -- if pid = 0 then flag := 1 else flag := 0; ram(26) <= x"701e"; ram(27) <= x"1000"; ram(28) <= x"403e"; ram(29) <= x"6020"; - 6 -

7 ram(30) <= x"1001"; ram(31) <= x"403e"; ram(32) <= x"6000"; -- goto top; ram(62) <= x"0000"; -- flag (initialized to 0) ram(63) <= x"0000"; -- count (initialized to 0) else if en0 = '1' and r_w0 = '0' then ram(conv_integer(unsigned(abus0(resadrlength-1 downto 0)))) <= dbus0; if en1 = '1' and r_w1 = '0' then ram(conv_integer(unsigned(abus1(resadrlength-1 downto 0)))) <= dbus1; end process; dbus0 <= ram(conv_integer(unsigned(abus0(resadrlength-1 downto 0)))) when reset = '0' and en0 = '1' and r_w0 = '1' else (dbus0'range => 'Z'); dbus1 <= ram(conv_integer(unsigned(abus1(resadrlength-1 downto 0)))) when reset = '0' and en1 = '1' and r_w1 = '1' else (dbus1'range => 'Z'); end ramarch; library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; use work.commonconstants.all; entity cpu is port ( clk, reset, pid : in std_logic; m_en, m_rw : out std_logic; abus : out std_logic_vector(adrlength-1 downto 0); dbus : inout std_logic_vector(wordsize-1 downto 0)); end cpu; architecture cpuarch of cpu is type state_type is ( reset_state, fetch, halt, negate, loadpid, mload, dload, iload, dstore, istore, branch, brzero, brpos, brneg, add ); signal state: state_type; type tick_type is (t0, t1, t2, t3, t4, t5, t6, t7); signal tick: tick_type; signal pc: std_logic_vector(adrlength-1 downto 0); -- program counter signal ireg: std_logic_vector(wordsize-1 downto 0); -- instruction register signal iar: std_logic_vector(adrlength-1 downto 0); -- indirect address register signal acc: std_logic_vector(wordsize-1 downto 0); -- accumulator signal alu: std_logic_vector(wordsize-1 downto 0); -- alu output begin alu <= (not acc) + x"0001" when state = negate else acc + dbus when state = add else (alu'range => '0'); process(clk) -- perform actions that occur on rising clock edges - 7 -

8 function nexttick(tick: tick_type) return tick_type is begin -- return next logical value for tick case tick is when t0 => return t1; when t1 => return t2; when t2 => return t3; when t3 => return t4; when t4 => return t5; when t5 => return t6; when t6 => return t7; when others => return t0; end case; end function nexttick; procedure decode is begin -- Instruction decoding. case ireg(15 downto 12) is when x"0" => if ireg(11 downto 0) = x"000" then state <= halt; elsif ireg(11 downto 0) = x"001" then state <= negate; elsif ireg(11 downto 0) = x"002" then state <= loadpid; when x"1" => state <= mload; when x"2" => state <= dload; when x"3" => state <= iload; when x"4" => state <= dstore; when x"5" => state <= istore; when x"6" => state <= branch; when x"7" => state <= brzero; when x"8" => state <= brpos; when x"9" => state <= brneg; when x"a" => state <= add; when others => state <= halt; end case; end procedure decode; procedure wrapup is begin -- Do this at end of every instruction state <= fetch; tick <= t0; end procedure wrapup; begin if clk'event and clk = '1' then if reset = '1' then state <= reset_state; tick <= t0; pc <= (pc'range => '0'); ireg <= (ireg'range => '0'); acc <= (acc'range => '0'); iar <= (iar'range => '0'); else tick <= nexttick(tick) ; -- advance time by default case state is when reset_state => state <= fetch; tick <= t0; when fetch => if tick = t1 then ireg <= dbus; if tick = t2 then decode; pc <= pc + '1'; tick <= t0; when halt => tick <= t0; -- do nothing when negate => acc <= alu; wrapup; when loadpid => acc <= x"000" & "000" & pid; wrapup; -- load instructions when mload => if ireg(11) = '0' then -- sign extension acc <= x"0" & ireg(11 downto 0); else acc <= x"f" & ireg(11 downto 0); - 8 -

9 wrapup; when dload => if tick = t1 then acc <= dbus; if tick = t2 then wrapup; when iload => if tick = t1 then iar <= dbus; if tick = t4 then acc <= dbus; if tick = t5 then wrapup; -- store instructions when dstore => if tick = t4 then wrapup; when istore => if tick = t1 then iar <= dbus; if tick = t7 then wrapup; -- branch instructions when branch => pc <= x"0" & ireg(11 downto 0); wrapup; when brzero => if acc = x"0000" then pc <= x"0" & ireg(11 downto 0); wrapup; when brpos => if acc(15) = '0' and acc /= x"0000" then pc <= x"0" & ireg(11 downto 0); wrapup; when brneg => if acc(15) = '1' then pc <= x"0" & ireg(11 downto 0); wrapup; -- arithmetic instructions when add => if tick = t1 then acc <= alu; if tick = t2 then wrapup; when others => state <= halt; end case; end process; process(clk) begin -- perform actions that occur on falling clock edges if clk'event and clk ='0' then if reset = '1' then m_en <= '0'; m_rw <= '1'; abus <= (abus'range => '0'); dbus <= (dbus'range => 'Z'); else case state is when fetch => if tick = t0 then m_en <= '1'; abus <= pc; if tick = t2 then m_en <= '0'; abus <= (abus'range=> '0'); when dload => if tick=t0 then m_en<='1'; abus<=x"0" & ireg(11 downto 0); if tick = t2 then m_en <= '0'; abus <= (abus'range=> '0'); when iload => if tick=t0 then m_en<='1'; abus<=x"0" & ireg(11 downto 0); if tick = t2 then m_en <= '0'; abus <= (abus'range=> '0'); if tick = t3 then m_en <= '1'; abus <= iar; - 9 -

10 if tick = t5 then m_en <= '0'; abus <= (abus'range=> '0'); when dstore => if tick=t0 then m_en<='1'; abus<=x"0" & ireg(11 downto 0); if tick = t1 then m_rw <= '0'; dbus <= acc; if tick = t3 then m_rw <= '1'; if tick = t4 then m_en <= '0'; abus <= (abus'range => '0'); dbus <= (dbus'range => 'Z'); when istore => if tick=t0 then m_en<='1'; abus<=x"0" & ireg(11 downto 0); if tick = t2 then m_en <= '0'; abus <= (abus'range=> '0'); if tick = t3 then m_en <= '1'; abus <= iar; if tick = t4 then m_rw <= '0'; dbus <= acc; if tick = t6 then m_rw <= '1'; if tick = t7 then m_en <= '0'; abus <= (abus'range => '0'); dbus <= (dbus'range => 'Z'); when add => if tick=t0 then m_en<='1'; abus<=x"0" & ireg(11 downto 0); if tick = t2 then m_en <= '0'; abus <= (abus'range=> '0'); when others => -- do nothing end case; end process; end cpuarch; library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use work.commonconstants.all; entity top is port( clk, reset: in STD_LOGIC); end top; architecture toparch of top is component ram2port port ( reset: in STD_LOGIC; en0, r_w0: in STD_LOGIC; abus0: in STD_LOGIC_VECTOR(adrLength-1 downto 0); dbus0: inout STD_LOGIC_VECTOR(wordSize-1 downto 0); en1, r_w1: in STD_LOGIC; abus1: in STD_LOGIC_VECTOR(adrLength-1 downto 0); dbus1: inout STD_LOGIC_VECTOR(wordSize-1 downto 0) ); end component; component cpu port ( clk, reset, pid: in STD_LOGIC; m_en, m_rw: out STD_LOGIC; abus: out STD_LOGIC_VECTOR(adrLength-1 downto 0); dbus: inout STD_LOGIC_VECTOR(wordSize-1 downto 0)); end component; signal mem_en0, mem_rw0: STD_LOGIC;

11 signal abus0, dbus0: STD_LOGIC_VECTOR(15 downto 0); signal mem_en1, mem_rw1: STD_LOGIC; signal abus1, dbus1: STD_LOGIC_VECTOR(15 downto 0); begin ramc: ram2port port map(reset, mem_en0, mem_rw0, abus0, dbus0, mem_en1, mem_rw1, abus1, dbus1); cpu0: cpu port map(clk, reset,'0',mem_en0, mem_rw0, abus0, dbus0); cpu1: cpu port map(clk, reset,'1',mem_en1, mem_rw1, abus1, dbus1); end toparch;

12 Simulation results. The simulation results shown below cover the first increment step. The instruction performed by processor 0 that updates the count is highlighted. From the PC for processor 1, we can see that it s staying in the wait loop. direct store at location 12 makes count = 1 cpu1 in wait loop

13 More simulation results. These results show the second increment step. The instruction performed by processor 1 that updates the count is highlighted. From the PC for processor 0, we can see that it s staying in the wait loop. cpu0 in wait loop direct store at location 12 makes count =

14 More simulation results. The simulation results shown below cover the third increment step. The instruction performed by processor 0 that updates the count is highlighted. From the PC for processor 1, we can see that it s staying in the wait loop. direct store at location 12 makes count = 3 cpu1 in wait loop

15 More simulation results. These results show the fourth increment step. The instruction performed by processor 1 that updates the count is highlighted. From the PC for processor 0, we can see that it s staying in the wait loop. cpu0 in wait loop direct store at location 12 makes count =

16 More simulation results. These results show the final increment step. The instruction performed by processor 1 that updates the count is highlighted. From the PC for processor 0, we can see that it s staying in the wait loop, but then exits from the wait loop and halts. cpu0 in wait loop direct store at location 12 makes count = 20 cpu0 exits wait loop, then halts

Introduction to Computer Design

Introduction to Computer Design Introduction to Computer Design Memory (W 800-840) Basic processor operation Processor organization Executing instructions Processor implementation using VHDL 1 Random Access Memory data_in address read/write

More information

Design Problem 5 Solution

Design Problem 5 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 5 Solution Jon Turner Due 5/3/05 1. (150 points) In this problem, you are to extend the design of the basic processor to implement

More information

CS/EE Homework 9 Solutions

CS/EE Homework 9 Solutions CS/EE 260 - Homework 9 Solutions 4/16/2001 1. (20 points) Consider the program on page 1-21 and 1-22 of the lecture notes. Suppose the simple processor is augmented with a direct-mapped instruction cache

More information

Design Problem 6 Solution

Design Problem 6 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 6 Solution Jon Turner The modifications to the VHDL for the console appear below entity console end console; architecture a1 of

More information

Problem Set 10 Solutions

Problem Set 10 Solutions CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory

More information

Problem Set 1 Solutions

Problem Set 1 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Problem Set 1 Solutions 1. Give a brief definition of each of the following parts of a computer system: CPU, main memory, floating

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014 CSE 260 Introduction to Digital Logic and Computer Design Jonathan Turner Exam 1 Your name 2/13/2014 1. (10 points) Draw a logic diagram that implements the expression A(B+C)(C +D)(B+D ) directly (do not

More information

Design Problem 4 Solutions

Design Problem 4 Solutions CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solutions Jon Turner The block diagram appears below. The controller includes a state machine with three states (normal, movecursor,

More information

Sequential Statement

Sequential Statement Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution

The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 2005 Homework #6 Solution 5.3(a)(2), 5.6(c)(2), 5.2(2), 8.2(2), 8.8(2) The University of Alabama in Huntsville Electrical and Computer Engineering CPE/EE 422/522 Spring 25 Homework #6 Solution 5.3 (a) For the following SM chart:

More information

The CPU Bus : Structure 0

The CPU Bus : Structure 0 The CPU Bus : Structure 0 The following can be applied to both the internal CPU buses and the external system buses. This distinction becomes blurred when we discuss Systems on a single Chip (SoC). The

More information

Sequential Logic - Module 5

Sequential Logic - Module 5 Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the

More information

CSE 260 Digital Computers: Organization and Logical Design. Exam 2. Jon Turner 3/28/2012

CSE 260 Digital Computers: Organization and Logical Design. Exam 2. Jon Turner 3/28/2012 CSE 260 Digital Computers: Organization and Logical Design Exam 2 Jon Turner 3/28/2012 1. (15 points). Draw a diagram for a circuit that implements the VHDL module shown below. Your diagram may include

More information

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering

EENG 2910 Project III: Digital System Design. Due: 04/30/2014. Team Members: University of North Texas Department of Electrical Engineering EENG 2910 Project III: Digital System Design Due: 04/30/2014 Team Members: University of North Texas Department of Electrical Engineering Table of Content i Contents Abstract...3 Introduction...3 Report...4

More information

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions

CSE 260 Digital Computers: Organization and Logical Design. Exam 2 Solutions CSE 260 Digital Computers: Organization and Logical Design Exam 2 Solutions Jon Turner 1. (10 points). The table at right shows a table with 5 rows and three columns with each column having a heading.

More information

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components

More information

ENGR 2031 Digital Design Laboratory Lab 7 Background

ENGR 2031 Digital Design Laboratory Lab 7 Background ENGR 2031 Digital Design Laboratory Lab 7 Background What we will cover Overview of the Simple Computer (scomp) Architecture Register Flow Diagrams VHDL Implementation of scomp Lab 7 scomp Architecture

More information

Design Problem 3 Solutions

Design Problem 3 Solutions CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This

More information

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a

Schedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November

More information

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14

COE 405, Term 062. Design & Modeling of Digital Systems. HW# 1 Solution. Due date: Wednesday, March. 14 COE 405, Term 062 Design & Modeling of Digital Systems HW# 1 Solution Due date: Wednesday, March. 14 Q.1. Consider the 4-bit carry-look-ahead adder (CLA) block shown below: A 3 -A 0 B 3 -B 0 C 3 4-bit

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION

More information

Control and Datapath 8

Control and Datapath 8 Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system

More information

Example 15: Moving Sprites with Flash Background

Example 15: Moving Sprites with Flash Background Displaying an Image Read from Flash Memory 95 Listing 2.5 (cont.) vga_flash_n2_top.vhd clr

More information

VHDL in 1h. Martin Schöberl

VHDL in 1h. Martin Schöberl VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset

More information

Contents. Chapter 9 Datapaths Page 1 of 28

Contents. Chapter 9 Datapaths Page 1 of 28 Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for

More information

Solution to Assignment 3 RTL Design

Solution to Assignment 3 RTL Design EECE 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 2000/2001 WINTER SESSION, TERM 1 Solution to Assignment 3 RTL Design Question 1 The cputypes Package This package defines the types and constants

More information

Example 58: Traffic Lights

Example 58: Traffic Lights 208 Chapter 8 Listing 8.7(cont.) doorlock2_top.vhd btn012

More information

Asynchronous FIFO Architectures (Part 1)

Asynchronous FIFO Architectures (Part 1) Asynchronous FIFO Architectures (Part 1) Vijay A. Nebhrajani Designing a FIFO is one of the most common problems an ASIC designer comes across. This series of articles is aimed at looking at how FIFOs

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution Spring 2016

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution Spring 2016 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution Spring 2016 1. (15 points) Write a VHDL function that accepts a std_logic_vector of arbitrary length and an integer

More information

In our case Dr. Johnson is setting the best practices

In our case Dr. Johnson is setting the best practices VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry

More information

VHDL And Synthesis Review

VHDL And Synthesis Review VHDL And Synthesis Review VHDL In Detail Things that we will look at: Port and Types Arithmetic Operators Design styles for Synthesis VHDL Ports Four Different Types of Ports in: signal values are read-only

More information

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.

More information

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085. (1) Draw and explain the internal architecture of 8085. The architecture of 8085 Microprocessor is shown in figure given below. The internal architecture of 8085 includes following section ALU-Arithmetic

More information

Single-Cycle CPU VITO KLAUDIO CSC343 FALL 2015 PROF. IZIDOR GERTNER

Single-Cycle CPU VITO KLAUDIO CSC343 FALL 2015 PROF. IZIDOR GERTNER Single-Cycle CPU CSC343 FALL 2015 PROF. IZIDOR GERTNER 1 Single-Cycle CPU Table of contents 1. Objective... pg. 2 2. Functionality... pg. 3 2.1 Part I (ADD/SUB)... pg. 7 2.2 Part II (ORI & BITWISE OPERATIONS)...

More information

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)

COVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points) EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential

More information

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for

More information

COVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points)

COVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points) EEL 4712 Midterm 2 Spring 2010 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

Sign here to give permission for your test to be returned in class, where others might see your score:

Sign here to give permission for your test to be returned in class, where others might see your score: EEL 4712 Midterm 2 Spring 216 VERSION 1 Name: UFID: Sign here to give permission for your test to be returned in class, where others might see your score: IMPORTANT: Please be neat and write (or draw)

More information

ENGR 5865 DIGITAL SYSTEMS

ENGR 5865 DIGITAL SYSTEMS ENGR 5865 DIGITAL SYSTEMS ModelSim Tutorial Manual January 22, 2007 Introduction ModelSim is a CAD tool widely used in the industry for hardware design. This document describes how to edit/add, compile

More information

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution March 2, 2006

The University of Alabama in Huntsville ECE Department CPE Midterm Exam Solution March 2, 2006 The University of Alabama in Huntsville ECE Department CPE 526 01 Midterm Exam Solution March 2, 2006 1. (15 points) A barrel shifter is a shift register in which the data can be shifted either by one

More information

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004

The University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004 The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique

More information

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions CSE 6 Introduction to igital Logic and Computer esign Exam Solutions Jonathan Turner /3/4. ( points) raw a logic diagram that implements the expression (B+C)(C +)(B+ ) directly (do not simplify first),

More information

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR

Counters. Counter Types. Variations. Modulo Gray Code BCD (Decimal) Decade Ring Johnson (twisted ring) LFSR CE 1911 Counters Counter Types Modulo Gray Code BC (ecimal) ecade Ring Johnson (twisted ring) LFSR Variations Asynchronous / Synchronous Up/own Loadable 2 tj Modulo-n (n = a power of 2) Asynchronous Count

More information

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes) Last (family) name: Answer Key First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Midterm

More information

The VHDL Hardware Description Language

The VHDL Hardware Description Language The VHDL Hardware Description Language p. 1/? The VHDL Hardware Description Language CSEE W4840 Prof. Stephen A. Edwards Columbia University The VHDL Hardware Description Language p. 2/? Why HDLs? 1970s:

More information

Test Benches - Module 8

Test Benches - Module 8 Test Benches Module 8 Jim Duckworth, WPI 1 Overview We have concentrated on VHDL for synthesis Can also use VHDL as a test language Very important to conduct comprehensive verification on your design To

More information

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit) Csc 343 Lab 2 Sep 28. 07 Objective: Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Structure: Input A (4 bits) Input B (4 bit) Adder Output Sum(4 bits) Output carry(1 bit) input cin

More information

EEL 4712 Digital Design Test 1 Spring Semester 2007

EEL 4712 Digital Design Test 1 Spring Semester 2007 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)

More information

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated. 8-1 Name Binary code IDLE 000 Register operation or output R 0 RUN 0 1 Condition (a) State box (b) Example of state box (c) Decision box IDLE R 0 From decision box 0 1 START Register operation or output

More information

Blog -

Blog - . Instruction Codes Every different processor type has its own design (different registers, buses, microoperations, machine instructions, etc) Modern processor is a very complex device It contains Many

More information

Timing in synchronous systems

Timing in synchronous systems BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines

More information

13/06/56 8 ก ก. 08-Case Study

13/06/56 8 ก ก. 08-Case Study 8 ก ก ก 1 ก 2 1 3 VHDL DIVIDER200Hz use IEEE.std_logic_1164.all; entity DIVIDER200Hz is generic (fin: integer :=25000000; --Input frequency fout: integer :=200); --Output frequency end DIVIDER200Hz; architecture

More information

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits

EECE 353: Digital Systems Design Lecture 10: Datapath Circuits EECE 353: Digital Systems Design Lecture 10: Datapath Circuits Cristian Grecu grecuc@ece.ubc.ca Course web site: http://courses.ece.ubc.ca/353 Introduction to lecture 10 Large digital systems are more

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering

More information

In this section we cover the following: State graphs introduction Serial Adder Multiplier Divider STATE GRAPHS FOR CONTROL NETWORKS What are the

In this section we cover the following: State graphs introduction Serial Adder Multiplier Divider STATE GRAPHS FOR CONTROL NETWORKS What are the In this section we cover the following: State graphs introduction Serial Adder Multiplier Divider STATE GRAPHS FOR CONTROL NETWORKS What are the conditions for having a proper state graph? If an arc is

More information

COVER SHEET: Total: Regrade Info: 7 (6 points) 2 (10 points) 9 (5 points) 8 (12 points) 12 (5 points) 11 (25 points)

COVER SHEET: Total: Regrade Info: 7 (6 points) 2 (10 points) 9 (5 points) 8 (12 points) 12 (5 points) 11 (25 points) EEL 4712 Midterm 3 Spring 2012 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

COE Design Process Tutorial

COE Design Process Tutorial COE 758 - Design Process Tutorial I. Introduction This tutorial describes a formal design process for the creation of digital systems. The aim of this design process is to provide a systematic approach

More information

EEL 4712 Digital Design Test 1 Spring Semester 2008

EEL 4712 Digital Design Test 1 Spring Semester 2008 IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. Also, as always, the best answer gets the most points. COVER SHEET: Problem:

More information

ECE 545: Lecture 11. Programmable Logic Memories

ECE 545: Lecture 11. Programmable Logic Memories ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Memory Resources:

More information

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines FINITE STATE MACHINES (FSMs) Classification: Moore Machine: Outputs depend only on the current state

More information

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs

ECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Resources: User

More information

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID:

COVER SHEET: Total: Regrade Info: 5 (14 points) 7 (15 points) Midterm 1 Spring 2012 VERSION 1 UFID: EEL 4712 Midterm 1 Spring 2012 VERSION 1 Name: UFID: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. As always, the best answer

More information

Concurrent & Sequential Stmts. (Review)

Concurrent & Sequential Stmts. (Review) VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-

More information

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended

More information

XSV Flash Programming and Virtex Configuration

XSV Flash Programming and Virtex Configuration XSV Flash Programming and Virtex Configuration July 5, 2001 (Version 1.1) Application Note by D. Vanden Bout Summary This application note describes the circuits that let the XC95108 CPLD program the Flash

More information

Lattice VHDL Training

Lattice VHDL Training Lattice Part I February 2000 1 VHDL Basic Modeling Structure February 2000 2 VHDL Design Description VHDL language describes a digital system as a set of modular blocks. Each modular block is described

More information

CS/EE 260. Digital Computers Organization and Logical Design

CS/EE 260. Digital Computers Organization and Logical Design CS/EE 260. Digital Computers Organization and Logical Design David M. Zar Computer Science and Engineering Department Washington University dzar@cse.wustl.edu http://www.cse.wustl.edu/~dzar/class/260 Digital

More information

ECE 448 Lecture 13. FPGA Memories. George Mason University

ECE 448 Lecture 13. FPGA Memories. George Mason University ECE 448 Lecture 13 FPGA Memories George Mason University Recommended reading Spartan-6 FPGA Block RAM Resources: User Guide Google search: UG383 Spartan-6 FPGA Configurable Logic Block: User Guide Google

More information

Lab 3: Standard Combinational Components

Lab 3: Standard Combinational Components Lab 3: Standard Combinational Components Purpose In this lab you will implement several combinational circuits on the DE1 development board to test and verify their operations. Introduction Using a high-level

More information

Summary of FPGA & VHDL

Summary of FPGA & VHDL FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:

More information

Getting Started with VHDL

Getting Started with VHDL Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component Entities can be primitive objects or complex objects Architectures are associated

More information

ECE 699: Lecture 9. Programmable Logic Memories

ECE 699: Lecture 9. Programmable Logic Memories ECE 699: Lecture 9 Programmable Logic Memories Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques Sections: RAM HDL Coding Techniques ROM

More information

Writing VHDL for RTL Synthesis

Writing VHDL for RTL Synthesis Writing VHDL for RTL Synthesis Stephen A. Edwards, Columbia University December 21, 2009 The name VHDL is representative of the language itself: it is a two-level acronym that stands for VHSIC Hardware

More information

CCE 3202 Advanced Digital System Design

CCE 3202 Advanced Digital System Design CCE 3202 Advanced Digital System Design Lab Exercise #2 This lab exercise will show you how to create, synthesize, and test a 3-bit ripple counter. A ripple counter is simply a circuit that outputs the

More information

CS/EE Homework 7 Solutions

CS/EE Homework 7 Solutions CS/EE 260 - Homework 7 Solutions 4/2/2001 1. (20 points) A 4 bit twisted ring counter is a sequential circuit which produces the following sequence of output values: 0000, 1000, 1100, 1110, 1111, 0111,

More information

Microcontroller Systems

Microcontroller Systems µcontroller systems 1 / 43 Microcontroller Systems Engineering Science 2nd year A2 Lectures Prof David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/2co Michaelmas 2014 µcontroller

More information

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN

Control Unit: Binary Multiplier. Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Control Unit: Binary Multiplier Arturo Díaz-Pérez Departamento de Computación Laboratorio de Tecnologías de Información CINVESTAV-IPN Example: Binary Multiplier Two versions Hardwired control Microprogrammed

More information

Mid-Term Exam Solutions

Mid-Term Exam Solutions CS/EE 26 Digital Computers: Organization and Logical Design Mid-Term Eam Solutions Jon Turner 3/3/3. (6 points) List all the minterms for the epression (B + A)C + AC + BC. Epanding the epression gives

More information

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6

DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 DIGITAL LOGIC DESIGN VHDL Coding for FPGAs Unit 6 FINITE STATE MACHINES (FSMs) Moore Machines Mealy Machines Algorithmic State Machine (ASM) charts FINITE STATE MACHINES (FSMs) Classification: Moore Machine:

More information

CS303 LOGIC DESIGN FINAL EXAM

CS303 LOGIC DESIGN FINAL EXAM JANUARY 2017. CS303 LOGIC DESIGN FINAL EXAM STUDENT NAME & ID: DATE: Instructions: Examination time: 100 min. Write your name and student number in the space provided above. This examination is closed

More information

!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"

!#$%&&'(')*+%,%-.#'/'.001$$ !"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"!!"#$%&'#()#*+"+#,-."/0110#230#4."50",+"+#)6# 6+-+#(.6+-0#)4475.8)60#0/#.65-0#230#9+**+"+# 2.48).-0#(.6+-0#! 2+"*5."5*:#,."/0110#;)**0! *),".6*:#-.99-0*0"5."+#2+660,.40"5)#;)*)2)#

More information

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL

DESCRIPTION OF DIGITAL CIRCUITS USING VHDL DESCRIPTION OF DIGITAL CIRCUITS USING VHDL Combinatinal circuits Sequential circuits Design organization. Generic design Iterative operations Authors: Luis Entrena Arrontes, Celia López, Mario García,

More information

Design Problem 4 Solution

Design Problem 4 Solution CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily

More information

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated. 8-1 Name Binary code IDLE 000 Register operation or output R 0 RUN Condition (a) State box (b) Example of state box (c) Decision box IDLE R 0 From decision box START Register operation or output PC 0 (d)

More information

COVER SHEET: Total: Regrade Info: Problem#: Points. 7 (14 points) 6 (7 points) 9 (6 points) 10 (21 points) 11 (4 points)

COVER SHEET: Total: Regrade Info: Problem#: Points. 7 (14 points) 6 (7 points) 9 (6 points) 10 (21 points) 11 (4 points) EEL 4712 Midterm 3 Spring 2013 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read

More information

ECE 459/559 Secure & Trustworthy Computer Hardware Design

ECE 459/559 Secure & Trustworthy Computer Hardware Design ECE 459/559 Secure & Trustworthy Computer Hardware Design VHDL Overview Garrett S. Rose Spring 2016 Recap Public Key Encryption (PKE) RSA (Rivest, Shamir and Adelman) Encryption Advanced Encryption Standard

More information

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:

More information

16.1. Unit 16. Computer Organization Design of a Simple Processor

16.1. Unit 16. Computer Organization Design of a Simple Processor 6. Unit 6 Computer Organization Design of a Simple Processor HW SW 6.2 You Can Do That Cloud & Distributed Computing (CyberPhysical, Databases, Data Mining,etc.) Applications (AI, Robotics, Graphics, Mobile)

More information

Getting Started with the CPU Design

Getting Started with the CPU Design Getting Started with the CPU Design In this tutorial we will create a skeleton of your top-level computer and CPU. You may want to create a new library for these designs, but you may feel free to use your

More information

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering

More information

ECE 545 Lecture 11 Addendum

ECE 545 Lecture 11 Addendum ECE 545 Lecture 11 Addendum Controllers for Keccak_F and AES George Mason University ECE 448 FPGA and ASIC Design with VHDL Keccak_F 1600 din start done Keccak_F rst 1600 dout ready Note: Bold line represents

More information

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden Synthesis from VHDL Krzysztof Kuchcinski Krzysztof.Kuchcinski@cs.lth.se Department of Computer Science Lund Institute of Technology Sweden March 23, 2006 Kris Kuchcinski (LTH) Synthesis from VHDL March

More information

Computer Organization (Autonomous)

Computer Organization (Autonomous) Computer Organization (Autonomous) UNIT II Sections - A & D Prepared by Anil Kumar Prathipati, Asst. Prof., Dept. of CSE. SYLLABUS Basic Computer Organization and Design: Instruction codes Stored Program

More information

Codec. WM8731 Audio Codec

Codec. WM8731 Audio Codec Codec WM8731 Audio Codec Codec Coder / Decoder Audio, Video Compression/decompression signal coding 2 tj WM8731 3 tj WM8731 Data Path Basic Connection 4 tj WM8731 Data Path Basic Timing 5 tj WM8731 Data

More information

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control ENGG330: Computer Organization and Design Lab5: Microprogrammed Control School of Engineering, University of Guelph Winter 201 1 Objectives: The objectives of this lab are to: Start Date: Week #5 201 Due

More information

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous

More information

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS

MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS MICROPROCESSOR AND MICROCONTROLLER BASED SYSTEMS UNIT I INTRODUCTION TO 8085 8085 Microprocessor - Architecture and its operation, Concept of instruction execution and timing diagrams, fundamentals of

More information

Esempio FSM Description : library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity esempiofsm is port ( clk: in STD_LOGIC; p: in STD_LOGIC; reset:

More information

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab

Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Department of Electronics & Communication Engineering Lab Manual E-CAD Lab Prasad V. Potluri Siddhartha Institute of Technology (Sponsored by: Siddhartha Academy of General & Technical Education) Affiliated

More information