2016-12-03 49 views
2

這似乎在鑿2工作,但現在無法正常工作:鑿3分配到比特範圍

class TestX extends Module 
{ 
    val io = IO(new Bundle { 
     val a = Output(UInt(width=2)) 
    }) 

    io.a(1, 0) := UInt(0) 
} 

錯誤:[模塊TestX]表達T_4用作FEMALE而只能被用作一位男士。

這個改變的解決方法是什麼?

回答

3

Chisel3當前不支持子字賦值。該錯誤消息是相當無益的,但我提出了一個問題:https://github.com/ucb-bar/chisel3/issues/399

您可以通過提取和拼接解決這個問題:

class TestX extends Module { 
    val io = IO(new Bundle { 
    val a = Input(UInt(width = 4)) 
    val b = Output(UInt(width = 4)) 
    }) 
    io.b := Cat(io.a(3, 2), UInt(0, width = 2)) 

}