Download presentation
Presentation is loading. Please wait.
Published byΒηθεσδά Αλιβιζάτος Modified over 6 years ago
1
RTL Design Methodology Transition from Pseudocode & Interface
Lecture 3 RTL Design Methodology Transition from Pseudocode & Interface to a Corresponding Block Diagram
2
Structure of a Typical Digital System
Data Inputs Control & Status Inputs Control Signals Datapath (Execution Unit) Controller (Control Unit) Status Signals Data Outputs Control & Status Outputs
3
Hardware Design with RTL VHDL
Pseudocode Interface Datapath Controller ASM chart Block diagram VHDL code VHDL code
4
Steps of the Design Process
Text description Interface Pseudocode Block diagram of the Datapath Interface divided into Datapath and Controller ASM chart of the Controller RTL VHDL code of the Datapath, Controller, and Top-Level Unit Testbench for the Datapath, Controller, and Top-Level Unit Functional simulation and debugging Synthesis and post-synthesis simulation Implementation and timing simulation Experimental testing using FPGA board
5
Steps of the Design Process Introduced in Class Today
Text description Interface Pseudocode Block diagram of the Datapath Interface divided into Datapath and Controller ASM chart of the Controller RTL VHDL code of the Datapath, Controller, and Top-level Unit Testbench for the Datapath, Controller, and Top-Level Unit Functional simulation and debugging Synthesis and post-synthesis simulation Implementation and timing simulation Experimental testing using FPGA board
6
Class Exercise 1 STATISTICS
7
Pseudocode no_1 = no_2 = no_3 = sum = 0 for i=0 to k-1 do
sum = sum + din if din > no_1 then no_3 = no_2 no_2 = no_1 no_1 = din elseif (din > no_2) then no_2 = din elseif (din > no_3) then no_3 = din end if end for avr = sum / k
8
Circuit Interface n 2 clk reset din go done dout dout_mode Statistics
9
Interface Table Port Width Meaning clk 1 System clock. reset
System reset. din n Input Data. go Signal active high for k clock cycles during which Input Data is read by the circuit. done Signal set to high after the output is ready. dout Output dependent on the dout_mode input. dout_mode 2 Control signal determining value available at the output. 00: avr, 01: no_1, 10: no_2, 11: no_3.
10
STATISTICS: Solutions
11
Block diagram of the Datapath
din n n n en1 en reset rst n+m clk clk A gt1 n+m no_1 A>B n esum en reset n B rst clk clk 1 s2 sum n+m en2 enc en reset en reset rst rst clk clk clk clk A gt2 no_2 m A>B n+m n n B i 1 s3 >> m = k-1 en3 en reset rst n clk clk A gt3 avr A>B n no_3 zk no_1 no_2 no_3 B n n n dout_mode 00 01 10 11 2 n dout Block diagram of the Datapath
12
Interface with the division into the Datapath and the Controller
dout_mode din clk reset go n 2 gt1 gt2 gt3 Datapath Controller zk en1 en2 en3 esum enc s2 s3 n dout done
13
Class Exercise 2 CIPHER
14
Pseudocode Split input I into four words, I3, I2, I1, I0, of the size of w bits each A = I3; B = I2; C = I1; D=I0 B = B + S[0] D = D + S[1] for i = 1 to r do { T = (B*(2B + 1)) <<< k U = (D*(2D + 1)) <<< k A = ((A ⊕ T) <<< U) + S[2i] C = ((C ⊕ U) <<< T) + S[2i + 1] (A, B, C, D) = (B, C, D, A) } A = A + S[2r + 2] C = C + S[2r + 3] O = (A, B, C, D)
15
Notation w: word size, e.g., w=8 (constant) k: log2(w) (constant)
A, B, C, D, U, T: w-bit variables I3, I2, I1, I0: Four w-bit words of the input I r: number of rounds (constant) O: output of the size of 4w bits S[j] : 2r+4 round keys stored in two RAMs. Each key is a w-bit word. The first RAM stores values of S[j=2i], i.e., only round keys with even indices. The second memory stores values of S[j=2i+1], i.e., only round keys with odd indices.
16
Operations ⊕ : XOR + : addition modulo 2w – : subtraction modulo 2w
* : multiplication modulo 2w X <<< Y : rotation of X to the left by the number of positions given in Y X >>> Y : rotation of X to the right by the number of positions (A, B, C, D) : Concatenation of A, B, C, and D.
17
Circuit Interface CIPHER clk reset O I write_I DONE Sj Write_Sj j 4w
m
18
Interface Table Note: m is a size of index j. It is a minimum integer, such that 2m -1 2r+3.
19
Protocol (1) An external circuit first loads all round keys
S[0], S[1], S[2], …, S[2r+2], [2r+3] to the two internal memories of the CIPHER unit. The first memory stores values of S[j=2i], i.e., only round keys with even indices. The second memory stores values of S[j=2i+1], i.e. only round keys with odd indices. Loading round keys is performed using inputs: Sj, j, write_Sj, clk. Then, the external circuits, loads an input block I to the CIPHER unit, using inputs: I, write_I, clk. After the input block I is loaded to the CIPHER unit, the encryption starts automatically.
20
Protocol (2) When the encryption is completed, signal DONE becomes active, and the output O changes to the new value of the ciphertext. The output O keeps the last value of the ciphertext at the output, until the next encryption is completed. Before the first encryption is completed, this output should be equal to zero.
21
Assumptions • 2r+4 clock cycles are used to load round keys to internal RAMs one round of the main for loop of the pseudocode executes in one clock cycle • you can access only one position of each internal memory of round keys per clock cycle As a result, the encryption of a single input block I should last r+2 clock cycles.
22
Question 1: Explain how to perform the following operations
a) Z = X+Y mod 28 b) Z = X*Y mod 28 using an 8-bit adder with carry in (cin) and carry out (cout), and an 8x8 multiplier, respectively, where X, Y, and Z are 8-bit variables.
23
Question 2: Explain using simple diagrams (based on medium-scale logic
components) how to efficiently perform the following operations in hardware using combinational logic only a) Y = X <<< 3 b) Y = X >>> Z, where X, Y, and Z are 8-bit variables.
24
Question 3: Explain how to perform the following operation using simple arithmetic and logic circuits: Y = (X*(2X + 1)) mod 28, where X and Y are 8-bit variables.
25
Question 4: Explain how to perform the following operation using
a single-port ROM only: Y = (X*(2X + 1)) mod 28, where X and Y are 8-bit variables. Show the implementation as a ROM, including the width of the address input and the width of the data output, as well as the contents of memory locations with addresses 0, 1, 8 and 16.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.