Thursday 8 March 2012

Digital system design flow




Specification:
We need to define the requirements and implementation constraints of our system like we design a software architecture. 

High-Level Design:
We need to define the top-level architecture, which includes the modules needed in the design and how they communicate with each other.

Low-Level Design:
Each module in this stage should be implemented using simple design components like memories, regsisters, state machines, etc.

HDL Coding:
Here we need to use HDL to write code to implement the low-level design. Here HDL code must be synthesisable.

Functional Simulation:
Here we use the software simulator to test if the HDL design does the right things which are required by the specification.

Synthesis:
After the simulation verified the design complete the requirement by specification, then map the HDL design to the target technology primitives, initial timing info is obtained.

Placement & Routing:
Here all the primitives in the synthesised netlist are mapped to a location on the target. Then connect the inputs and outputs to pins of FPGA. (passing of signals, clock trees are generated detailed timing information is obtained)

Tming Simulation:
After synthesis, you need to simulate the target again to chech that if the whole design meets the timing constraints set in the specification.

Fabrication:
For FPGA design, now all the works have been done. For an ASIC, mask sets are produced and silicon wafers are etched.

Post Silicon Validation:
After the chip is manufactured, we are supposed to test it in field conditions again. If there are bugs here, then all the chips become rubbish.

No comments:

Post a Comment

Difference between "docker stop" and "docker kill"

 To stop a running container, you can use either "docker stop" or "docker kill" command to do so. Although it seems doin...