An online tool to design custom optimized encoders

0 downloads 0 Views 2MB Size Report
(Altera, Xilinx, Mentor, etc) do not provide a custom ... execution or web execution) to create parametrized ... The most related tool is EUDOXUS web tool from.
Encoders & Decores from the web DASYGENIS Minas

Introduction

An online tool to design custom optimized encoders and decoders

Related Work Our Tool Experimental Results Conclusions

Minas Dasygenis [email protected] Department of Informatics and Telecommunications Engineering University of Western Macedonia, Kozani, Greece Presentation is delivered by: Mrs Tsourma Maria, Dipl. Eng

EUC2016 1

Presentation Outline Encoders & Decores from the web



Introduction & Motivation



Related work

Introduction



Tool architecture

Related Work



Experimental results



Conclusions & Future work

DASYGENIS Minas

Our Tool Experimental Results Conclusions

EUC2016 2

Encoders and Decoders are utilized in every programmable architecture Encoders & Decores from the web



Encoders are mostly used: –

DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 3



Detection of hardware interrupts. Every peripheral is connected with a bit line to the interrupt controller, and the interrupt controller encodes these inputs to a multibit line and transmits these to the processing core for interrupt handling.

Decoders are mostly used: –

Register file → Bank of memory locations. The distinction of what memory should be written is done by a decoder block.



Random Access Memory → Each RAM consists of multiple row and column decoders that operate in parallel memory bit planes. The number of parallel row or column decoders defines the bitwidth of the RAM For example, a 32x32 bitwidth RAM could be implemented with a decoder to select one of the 32 rows and a decoders for the appropriate columns.

Encoders and Decoders are utilized in every programmable architecture Encoders & Decores from the web DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 4

Decoder is used in RAM

Decoder is used in Register File

Encoders and Decoders are utilized in every programmable architecture Encoders & Decores from the web DASYGENIS Minas

Introduction

Encoders are used in handling the interrupt request of peripherals with priority

Related Work Our Tool Experimental Results Conclusions

EUC2016 5

CPU

IRQ

n

0

Peripheral 1

priority 1 encoder

Peripheral 2 ...

n

Peripheral N

Fundamental encoder and decoder types Encoders & Decores from the web DASYGENIS Minas



Encoder (2n → n) –

Introduction Related Work

Priority: Accepts inputs with multiple ‘1’ and outputs the binary representation of the highest value. in3 in2 in1 in0 out1 out0 V ● 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 0 0 0 1 –

Our Tool Experimental Results Conclusions

EUC2016 6

Normal: Accepts 2n inputs with only one ‘1’ and the rest ‘0’, outputs the binary representation n. It has a valid output to report the validity of the input (e.g. if more than one ‘1’ exist in input the output is invalid).

Fundamental encoder and decoder types Encoders & Decores from the web DASYGENIS Minas



Decoder (n → 2n) –

Normal: Break the combination of inputs to a set of values that have no activation (‘0’) except one that is active (‘1’).



Inverted: Implemented using NAND gates, inverted operation (not activated outputs bear ‘1’, with the one activated value to have ‘0’).

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 7

in1in1 0 0 0 0 1 1 1 1

in0 in0 00 11 00 11

out3 out3 00 00 00 11

out2 out2 00 00 11 00

out1 out1 00 11 00 00

out0 out0 11 00 00 00

Encoders & Decores from the web DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 8

Our tool creates all types of encoders and decoders IP blocks We present a public web accessible tool that designers accepts a number of user parameters and creates an IP block of an optimized encoder or decoder and a random generated test bench.

Our tool is fully parametrized Encoders & Decores from the web

The inputs to our tool are:

DASYGENIS Minas ●

Introduction Related Work



Our Tool Experimental Results Conclusions

EUC2016 9

Types of IP blocks –

Normal or priority encoders



Normal or Inverted decoders

Design parameters –

Maximum available inputs per gate



Insertion or not of input latches



Insertion or not of output latches



Insertion of not of enable module input



Degree of pipelineability



The number of requested test vectors



Creation of a schematic or not

Our web tool is user friendly Encoders & Decores from the web DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 10

The automation of decoders and encoders is very important Encoders & Decores from the web



DASYGENIS Minas

Introduction



Related Work Our Tool Experimental Results Conclusions

EUC2016 11





Rapid design space exploration requires the automation of HDL circuits. Designing by hand is a very complicated process, which cannot be automated with GENERIC constructs. These IP blocks are used in every modern programmable architecture. Automation allows fast design space exploration for evaluating circuits methodologies that make use of them.

Our tool is the first to provide such functionality

Encoders & Decores from the web



DASYGENIS Minas



Introduction Related Work ●

Our Tool Experimental Results



Conclusions ●

EUC2016 12

IP block generators from major EDA vendors (Altera, Xilinx, Mentor, etc) do not provide a custom design capability for encoders and decoders. Nobody until now has published a tool (local execution or web execution) to create parametrized HDL descriptions of these. The most related tool is EUDOXUS web tool from D. Bakalis, 2006 but it does not create decodes/encoders. Also, Flopoco from Florent de Dinechin designs Ip cores, but not decoders/encoders. There are tools to create HDL codes from High level synthesis, but they do not provide the granularity required for encoders and decoders.

Our tool architecture has a frontend and backend Encoders & Decores from the web DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results ●

Conclusions



EUC2016 13

Frontend –

User input form.



Input validation.

Backend –

IP block generator.

The frontend parses the input and feeds the backend with data Encoders & Decores from the web



Presents the user input forms.



Validates the data.

DASYGENIS Minas

Introduction



Related Work ●

Our Tool ●

Experimental Results Conclusions

EUC2016 14

Performs sanitization of user inputs (for web security) Creates the input string for the backend. Executes python code with that input string.

The backend uses a number of modules Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work



Our tool has a modular structure. It consists of three major components. –

(1/3) Decoder/Encoder aHDL generator.



(2/3) HDL generator.



(3/3) Test bench Generator.

Our Tool Experimental Results Conclusions

EUC2016 15

IP

Decoder/encoder

(1/3) The first module creates the encoder/decoder aHDL netlist Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work





Our Tool Experimental Results Conclusions

EUC2016 16



This module creates the intermediate net list format aHDL (abstracted HDL). Uses a number of reductions, until output connections have been formulated Creates gradually all the iterations (~operational cycles). Inserts appropriate gates (AND/NAND/not etc) and D-flip-flops at appropriate positions of the 3D-netlist. The abstracted HDL net list format is a 3D net list, where components are placed in nodes. Every node carries a number of input vectors.

(1/3) The aHDL module is optimized Encoders & Decores from the web DASYGENIS Minas



The module creates a sophisticated gate tree for every decoder/encoder design: –

The number of inputs define the number of bits that take part in the formulation of every output and require bitwise operations on this number of bits. The user selects the max number of inputs per gate in order not to use large multi-input gates that have large fan in, are area and energy inefficient and pose significant latency.



Our tool inserts as many gates as necessary (max gate inputs) respecting dependencies.



Stray bits are handled using heuristics:

Introduction Related Work Our Tool Experimental Results



Conclusions



EUC2016 17



If gate has been added in this iteration leave stray bit for next iteration. Otherwise, connect them to a gate with neutral unused inputs (either ‘1’ or ‘0’ depending on the gate).

Performs correct cascade of gates (cascading OR is different than NAND which reverses output).

(1/3) The aHDL is pipeline parametrizable Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work





Our Tool Experimental Results



Conclusions ●

EUC2016 18

An important parameter is the level of pipeline The pipeline level specifies every how many logic levels a pipeline latch is inserted. If the user has defined pipeline level 0, then no pipeline is used. if the user specified pipeline level 2, then every two gates, a pipeline latch is inserted and so on. We are using pipeline D flip-flop latches in a master-slave configuration, in order to ensure the correct timings.

(1/3) The aHDL computes correct timing on multiple paths Encoders & Decores from the web



DASYGENIS Minas

Designing encoders/decoders is difficult, especially when clocked elements are used. –

Introduction Related Work Our Tool



Our tool correctly handles all these problems as follow: –

it creates a directed graph of every sub-circuit that must be of equal delay and computes all paths from every input to every output, taking into consideration the encountered clocked elements.



All the sub-circuits are equalized by appending the correct number of D flip-flops to the outputs.



Every clocked module has outputs synchronized and placed simultaneously at the I/O buffers.

Experimental Results Conclusions

EUC2016 19

There are multiple outputs computed from independent computational paths, all outputs paths must have equal latency.

(2/3) The HDL generator Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work



Our Tool ●

Experimental Results Conclusions ●

EUC2016 20

The HDL generator is a generic engine developed at our laboratories, that accepts a aHDL structural netlist description and outputs a syntactically correct VHDL. It performs a number of safety checks to ensure that the output VHDL is correct. It has been used to synthesize various components (see http://arch.icte.uowm.gr/hdl). It is used for more than 3 years.

(3/3) The test bench generator creates parametrized random vectors Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 21



The last module is the test bench generator. For the number of test vectors requested by the user the following is repeated: –

Creates a random number for every input.



Computes the correct output.



Inserts the signal assignment for the input vectors, the wait statement for the result to be computed and the assert statement to test the output.

(3/3) The created test bench file allows automatic verification Encoders & Decores from the web



DASYGENIS Minas

Introduction Related Work Our Tool Experimental Results Conclusions

EUC2016 22





The generated code can be compiled and simulated. The designer is not required to check manually the outputs. In the simulation the messages OK or FAIL will be reported.

-- input vector: 49 signal0

Suggest Documents