Skip to content

ASIC (Application-Specific Integrated Circuit) implementation of SIMD (Single Instruction, Multiple Data) processor

Notifications You must be signed in to change notification settings

jalakjk13/SIMD-Processor-using-OpenLane

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIMD-Processor-using-OpenLane

Application-Specific Integrated Circuit (ASIC) implementation of 16 bit SIMD processor

The Verilog source code used for this project was implemented by Tingyuan LIANG: https://github.com/zslwyuan/Basic-SIMD-Processor-Verilog-Tutorial

SIMD Architecture

SIMD stands for Single Instruction, Multiple Data. It is a parallel computing architecture where a single instruction is applied to multiple data elements simultaneously, enabling efficient processing of large datasets. The core of the processor is a 16 bit SIMD ALU with three basic computation units: SIMD adder, SIMD multiplier and SIMD shifter. The ALU operation will take two clocks. The first clock cycle will be used to load values into the registers. The second will be for performing the operations. There are 48 operations supported by the processor consisting of 18-bit instructions with 6 bit opcode.

image

Source code

Verilog modules

WhatsApp Image 2024-03-19 at 15 46 19_8075aee1

SDC file

sdc file

OpenLane flow

  • init/pin_order.cfg : The pin_order file decides the placement of input-output pins at the periphery of the floorplan

  • init/config.json : The configuration parameters are declared using the config.json file. These parameters help in exploring various designs. We observe a trade-off between power, area and delay at various stages of OpenLane execution depending on the parameters declared

Nine synthesis strategies are explored in the interactive mode using the run_synth_explore command. The strategies are compared on the basis of best area, gate count and delay. A strategy is chosen for synthesis depending on the defined cost function.
WhatsApp Image 2024-03-25 at 22 41 17_2fe79c0d

Results

WhatsApp Image 2024-03-25 at 20 06 38_a218b3d9

The layout can also be viewed using gui.py :

WhatsApp Image 2024-03-25 at 21 16 27_766947d9

Errors and fixes

Global Placement Error

WhatsApp Image 2024-03-19 at 3 52 10 PM

Above error can be fixed by increasing the die area i.e, FP_DIE_AREA in config.json file.

Negative Slack

Pasted image

To fix the above error we can reduce CTS_SINK_CLUSTERING_SIZE and CTS_SINK_CLUSTERING_MAX_DIAMETER to overcome negative slack or all together increase clock period.

DRC error

WhatsApp Image 2024-03-26 at 1 31 54 AM

The minimum width for layer metal5 is 1.6um.

Routing congestion error

Pasted image 1

Decreasing PL_TARGET_DENSITY can reduce the routing congestion.

About

ASIC (Application-Specific Integrated Circuit) implementation of SIMD (Single Instruction, Multiple Data) processor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published