blob: 7146f026993ba57aad61a8555fb5fc92d4bdc623 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
; RUN: firrtl -i %s -o %s.v -X verilog -p c &> %s.out ; cat %s.v | FileCheck %s
circuit top :
module top :
output rdata : UInt<32>
input index : UInt<2>
input ren : UInt<1>
input clk : Clock
mem m :
data-type => UInt<32>
depth => 4
read-latency => 1
write-latency => 1
reader => c
m.c.addr <= index
m.c.en <= ren
m.c.clk <= clk
rdata <= m.c.data
; CHECK: module top(
; CHECK: output [31:0] rdata,
; CHECK: input [1:0] index,
; CHECK: input ren,
; CHECK: input clk,
; CHECK: );
; CHECK: reg [31:0] m [0:3];
; CHECK: wire [31:0] m_c_data;
; CHECK: wire [1:0] m_c_addr;
; CHECK: wire m_c_en;
; CHECK: wire m_c_clk;
; CHECK: reg [1:0] GEN;
; CHECK: reg GEN_1;
; CHECK: assign rdata = m_c_data
; CHECK: assign m_c_addr = index
; CHECK: assign m_c_en = ren
; CHECK: assign m_c_clk = clk
; CHECK: `ifndef SYNTHESIS
; CHECK: integer initvar;
; CHECK: initial begin
; CHECK: #0.002;
; CHECK: for (initvar = 0; initvar < 4; initvar = initvar+1)
; CHECK: m[initvar] = {1{$random}};
; CHECK: end
; CHECK: `endif
; CHECK: always @(posedge m_c_clk) begin
; CHECK: GEN <= m_c_addr
; CHECK: GEN_1 <= m_c_en
; CHECK: if(GEN_1) begin
; CHECK: m_c_data <= m[GEN]
; CHECK: end
; CHECK: end
; CHECK: endmodule
|