HDL_toolflow - david-macmahon/wiki_convert_test GitHub Wiki

HDL based toolflow

We have finally settled on a design for the new toolflow. It will be based on a library of parameterized primitives wrapped with python using the MyHDL framework. This will allow the design of higher level DSP blocks using python function calls to these primitives.

  • Bus Management

    • Precompiler Directives?
    • Possibly manage in the MyHDL convert function?
  • Clock management

  • Base Design

    • Clocking Infrastructure
    • WB/EPB Bridge
    • Permanent Registers
  • Clock Domain Crossing

Primitives

Primitive.png

The Primitives will have the option to instantiate Xilinx or Altera primitives or our parameterized ones. There will also be options to instruct the synthesizer how to implement the primitives in the fabric, be it as a DSP slice, memory etc. This will aid in optimization of the DSP blocks.

Primitive Modules

Module Description Developer/s Status Notes
Counter Rurik and Wes Complete
Mux Multiplexer Rurik and Wes In Dev
Slice Wes In Dev
Bit Shift Wes In Dev
Adder Kaushal In Dev
Demux Demultiplexer Kaushal In Dev
Multiplier Kaushal In Dev
Delay Wes In Dev
BRAM Wes In Dev
FIFO Wes In Dev

DSP Blockset

The DSP Blockset will need to be rewritten using the library of python wrapped primitives. This should be a primarily python task, so any designer of these blocks will not need to know an HDL language.

DSP Modules

Module Description Developer/s Status Notes
FFT Not Yet Started
PFB Not Yet Started
Decimator Wes In Dev

Controllers

Each of the existing controller blocks (Verilog) will be wrapped in python (MyHDL) and can be given simulation logic. This will enable the controllers to be pulled into a design with the call of a python function.

Controller Modules

Module Description Developer/s Status Notes
Software Reg Wes In Dev
WB/EPB Bridge Wes In dev
iADC Not Yet Started
katADC Wes In Dev
DDR3 Not Yet Started
GPIOs Not Yet Started
1GE Not Yet Started
TGE - CX4 Not Yet Started
TGE - SFP Not Yet Started

ROACH2 Base Modules

Module Description Developer/s Status Notes
clk_gen Clock Generation Wes Complete
epb_infrastructure EPB Bus infrastructure Wes Complete
epb_wb_bridge_reg EPB Wishbone Bridge Wes Complete
infrastructure Wes Complete
sys_block system Block Wes Complete
wbs_arbiter Wishbone Slave Arbiter Wes Complete