From d8bf7de8c3b7c3e37716fcbc7afc617213c1561b Mon Sep 17 00:00:00 2001 From: azidar Date: Tue, 1 Sep 2015 13:04:21 -0700 Subject: Added a conditional readport example, with new idea of representing a read enable with muxing the index with poison bits --- test/features/CondRead.fir | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 test/features/CondRead.fir (limited to 'test') diff --git a/test/features/CondRead.fir b/test/features/CondRead.fir new file mode 100644 index 00000000..8961715e --- /dev/null +++ b/test/features/CondRead.fir @@ -0,0 +1,25 @@ +; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s +; XFAIL: * +circuit CondRead : + module CondRead : + input pred : UInt<1> + input index : UInt<6> + input clk : Clock + output out : UInt<20> + + smem mem : UInt<20>[128],clk + + poison xxx : UInt<20> + wire data : UInt<20> + data := xxx + when pred : + read accessor readport = mem[index] + data := readport + + out := data + + +; CHECK: poison index_0 : UInt<6> +; CHECK: read accessor readport = mem[mux(pred,index,index_0)] +; CHECK: Done! + -- cgit v1.2.3