2017-08-20 5 views
0

があり、私はそれは、「階層パス」と呼ばれていた知っているように、ここで、他のモジュールのものにアクセスするような方法であるチゼル/スカラの「階層パス」の使い方は? Verilogで

module A; 
    reg a; 
endmodule 
module tb; 
    A u_A(); 
    wire b; 
    assign b = u_A.a; // hierarchical path 
endmodule 

は、あなたがどのようにレッグ/その他のワイヤーにアクセスするために私をENLIGHTでしたVerilog RTLにありますチゼル/スカラのモジュール?

答えて

1

AFAIK、これはチゼル3では不可能です。試してみるとエラーが発生します

An exception or error caused a run to abort: Connection between sink ([email protected]) and source ([email protected]) failed @: Source is unreadable from current module. 
chisel3.internal.ChiselException: Connection between sink ([email protected]) and source ([email protected]) failed @: Source is unreadable from current module 

外部モジュールに公開したい場合は、ioの仕組みを使用してください。 実験的な機能を使用して、モジュールへの直接アクセスの構文上の外観を作成することができると言われています。

import chisel3._ 
import chisel3.experimental._ 

class A extends MultiIOModule { 
    val reg = Reg(UInt(16.W)) 
    val r = IO(Output(reg)) 
    r := reg 
} 

class B extends MultiIOModule { 
    val u_A = Module(new A) 
    val b = Wire(UInt(16.W)) 
    b := u_A.r 
}