2017-08-20 5 views
0

En Verilog il y a une telle façon d'accéder stuff autre module, comme je sais qu'il a été appelé « voie hiérarchique », voici une Verilog RTLComment utiliser "chemin hiérarchique" de ciseau/scala?

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

Pourriez-vous me illuminera comment accéder à Reg/fil d'autres Modules dans Chisel/Scala? AFAIK, ce n'est pas possible dans chisel3.

Répondre

1

Si vous essayez, vous obtiendrez une erreur

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 

Si vous voulez l'exposer à des modules externes, vous devez le faire par le biais du mécanisme io. Cela étant dit, il est possible de créer l'apparence syntaxique de l'accès direct au module en utilisant la fonction expérimentale MultiIOModule

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 
}