小编mto*_*sch的帖子

从Chisel代码生成Verilog代码的最简单方法

从现有的Chisel代码生成Verilog代码的最简单方法是什么?

我是否必须创建自己的构建文件

例如,从一个独立的scala文件(AND.scala),如下所示..

import Chisel._

class AND extends Module {
  val io = IO(new Bundle {
    val a = Bool(INPUT)
    val b = Bool(INPUT)
    val out = Bool(OUTPUT)
  })
  io.out := io.a & io.b
}
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 16.4下安装了完整的Chisel3工具链.

scala verilog build chisel

4
推荐指数
1
解决办法
1823
查看次数

Chisel3.功能模块Mux4

我正在学习Chisel,遵循Github上的文档

到目前为止,一切都完美无瑕.但我坚持第13章 "功能模块创建"

无法让代码工作.我在凿子模板项目的副本中创建了所有的.scala类.以下是我编写/复制以创建具有可变位宽Mux4的内容:

/ chisel-template/src/main/scala/Mux4.scala

import Chisel._

class Mux4(w: Int) extends Module {
  val io = IO(new Bundle {
        val sel = UInt(INPUT, 2)
        val in0 = UInt(INPUT, w)
        val in1 = UInt(INPUT, w)
        val in2 = UInt(INPUT, w)
        val in3 = UInt(INPUT, w)
        val out = UInt(OUTPUT, w)
  })

  io.out := Mux2(io.sel(1), 
                    Mux2(io.sel(0), io.in0, io.in1),
                    Mux2(io.sel(0), io.in2, io.in3))
}


class Mux2(w: Int) extends Module {
  val io = IO(new …
Run Code Online (Sandbox Code Playgroud)

scala module mux chisel riscv

2
推荐指数
1
解决办法
270
查看次数

具有不同类型算术的嵌套可变参数模板参数的构造函数

跟进从可变参数模板数组引用构造函数初始化双重嵌套的 std::array

问题

我有一Matrix门课可以做一些数学。但这纯粹是关于初始化......

Matrix

// helper functions
template <std::size_t N, typename T, std::size_t... Is>
std::array<T, N> to_array_impl(const T (&arr)[N], std::index_sequence<Is...>) {
  return std::array<T, N>{arr[Is]...};
}

template <std::size_t N, typename T>
std::array<T, N> to_array(const T (&arr)[N]) {
  return to_array_impl(arr, std::make_index_sequence<N>{});
}

// Matrix
template <std::size_t N, std::size_t M, typename T>
class Matrix{
  public:

    template <typename... TArgs,
      std::enable_if_t<sizeof...(TArgs) == N &&
             (std::is_same_v<T, std::remove_reference_t<TArgs>> &&...), int> = 0>
    Matrix(TArgs const(&&... rows)[M]) : data_{to_array(rows)...} {}

    // ...

    private:
      std::array<Vector<M,T>, N> …
Run Code Online (Sandbox Code Playgroud)

c++ constructor sfinae variadic-templates c++14

1
推荐指数
1
解决办法
380
查看次数

标签 统计

chisel ×2

scala ×2

build ×1

c++ ×1

c++14 ×1

constructor ×1

module ×1

mux ×1

riscv ×1

sfinae ×1

variadic-templates ×1

verilog ×1