[Chisel] Casting integer type
Want I want to do
I want to expand a chisel.UInt type variable defined in 32bit to 64bit.
What is impossible
First, the following will result in a compile error
val x = 1.U(32.W)
val y = x.asUInt(64.W)
Official site also says it is not possible to cast to widen the bit width.
From hardware point of view, it seems that it is not possible to suddenly add more lines to a 32-bit bus.
How to solve
So what to do is to substitute a 32-bit value into the 64-bit value prepared in advance.
val op1_data = 1.U(32.W)
var op1_64 = UInt(64.W);
op1_64 = op1_data;
I don't know if this is the officially recommended method;
Recent Posts
See AllPhenomenon There is an array Check whether the index variable is within the size of the array, and access the element only if it is...
Overview When communicating data using a Queue, the following operations are possible: Queue.io.enq.valid: When set to false, data will...
What I want to do There are multiple similar units Most of processes are the same, only some differences. Select an appropriate unit...
Comentarios