======= Fixes to Jonathan's Front-end ====== == TODO == convert -> cvt as-UInt -> asUInt as-SInt -> asSInt add-wrap -> addw sub-wrap -> subw bit-and -> and bit-or -> or bit-xor -> xor on-reset -> onreset reg now has reset and clock cmem/smem now has clock accessor -> infer accessor "Clock" is now a type, so the following declares a clock port: module Queue : input clk : Clock ... Fixing chisel3 front-end bugs: LFSR16: "concat" -> "cat" MemorySearch: name collision with node done and output done Mul: shr/shl take one expression argument, and one int argument. node T_59 = UInt(2, 2) node T_60 = shl(x, T_59) ==> node T_60 = shl(x, 2) Outer: "instance" => "inst" Stack: bug in firrtl! thanks! == Completed == Remove type from node emission Currently, these are not equivalent because we will fail a type check: output in { input x : UInt, input y : UInt} => input in {x : UInt, y : UInt} Switch "input" -> "flip" and "output" to "" within a bundle Switch "add-mod" -> "add-wrap" Switch "multiplex" -> "mux" Switch "greater" -> "gt"