2013-12-02

vak: (Улыбка)
Рождается новый симпатичный язычок для разработки хардвера: Chisel. Порождает код на Verilog, не уступающий по качеству написанному вручную, а также cycle-accurate симулятор на Си++, работающий в восемь раз быстрее чем Synopsys VCS. Сделан на основе языка Scala. Пример кода:

import Chisel._

class GCD extends Module {
  val io = new Bundle {
    val a  = UInt(INPUT,  16)
    val b  = UInt(INPUT,  16)
    val e  = Bool(INPUT)
    val z  = UInt(OUTPUT, 16)
    val v  = Bool(OUTPUT)
  }
  val x  = Reg(UInt())
  val y  = Reg(UInt())
  when   (x > y) { x := x - y }
  unless (x > y) { y := y - x }
  when (io.e) { x := io.a; y := io.b }
  io.z := x
  io.v := y === UInt(0)
}

object Example {
  def main(args: Array[String]): Unit = {
    chiselMain(args, () => Module(new GCD()))
  }
}

Мне кажется, эта штука должна вытеснить SystemC на ура. Из документации есть DAC2012 Introduction Paper (PDF) и Chisel Tutorial (PDF).