3 == Ports ===========================================================
10 == TeX ==============================================================
12 == Fleeterpreter ====================================================
13 public void service() { }
14 == FleetSim ==============================================================
16 == FPGA ==============================================================
20 reg dram_write_data_push;
21 reg dram_read_data_pop;
22 reg [`DATAWIDTH:0] out_d;
23 wire [31:0] dram_addr__;
25 assign dram_addr_r_ = dram_addr_r;
26 assign dram_isread_ = dram_isread;
27 assign dram_addr__ = !dram_isread ? inAddrWrite_d[31:0] : inAddrRead_d[31:0];
28 assign dram_addr_ = { dram_addr__[30:6], 1'b0, dram_addr__[5:0] };
29 assign dram_write_data_push_ = dram_write_data_push;
30 assign dram_read_data_pop_ = dram_read_data_pop;
31 assign dram_write_data_ = inDataWrite_d;
32 // assign dram_write_data_ = inDataWrite_d[(`DATAWIDTH-1):0];
33 assign out_d_ = out_d;
35 always @(posedge clk) begin
41 dram_read_data_pop <= 0;
47 if (dram_addr_r && !dram_addr_a) begin
49 end else if (dram_addr_r && dram_addr_a && !dram_isread) begin
54 out_d <= { 1'b1, 37'b0 };
55 end else if (dram_addr_r && dram_addr_a && dram_isread) begin
59 out_d <= { 1'b0, dram_read_data[36:0] };
60 end else if (`out_empty && `inAddrWrite_full && `inDataWrite_full && !dram_addr_r && !dram_addr_a) begin
63 end else if (`out_empty && `inAddrRead_full && !dram_addr_r && !dram_addr_a) begin
71 == Test ========================================================
74 == Constants ========================================================
76 == Contributors =========================================================
77 Adam Megacz <megacz@cs.berkeley.edu>