Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Spinal HDL, Describe your digital hardware in Scala [WIP]

Status
Not open for further replies.

dolu1990

Newbie level 2
Joined
Dec 4, 2009
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Swissland
Activity points
1,305
Hi,

We are in 2015, VHDL and Verilog are dinosaurs and don't give the possibility to build abstraction and to describe a complex generic design without pain.

Spinal HDL is a Scala internal domain specific language that try to increase productivity by some way :
  • All the syntax of Scala is usable.
  • Allow you to build abstraction, for example, you can describe the AXI bus, and then instantiate and connect it in one line. Goodbye endless declaration, wiring and mistake from it.
  • No restriction to genericity, For example you can define a FIFO with a generic data type.
  • Remove useless (for syntetisis) process/always syntax, you don't have to play with sensitivity list.
  • ClockDomain, you don't need to wire it everywhere, it do it for you. You define clocking area, and all logic that is into use the clock. Additionally it checks cross clock domain violations.

Technically, the language is a Scala library that allows the user to describe his digital hardware by building into the PC memory a graph. Then this graph is flushed into VHDL (for the moment).

The project has a good advancement, the most of features are already functional :
  • VHDL backend : The HDL is flushed into a synthesizable VHDL file
  • Base Types : Bool, Bits, UInt, SInt, Enum
  • Bundle : That allow you to describe a data structure with the possibility for each element to specify the direction (in,out). That is useful to describe bus.
  • Vec : That allow you to create an array of data.
  • BlackBox : Allow you to instantiate a third party HDL component.
  • Conditional blocks and operators

We are now looking for motivated person to test, feedback and contribute to the language.

There is the git : https://github.com/SpinalHDL/SpinalCore

Have a nice week.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top