I get the following errors when trying to compile a dual-ported ram in icarus. I'm sure my syntax must be bad somewhere, but I can't see where.
duram.v:31: internal error: The indices are not constant for array ``ram''. duram.v:36: error: Could not find variable ``ram'' in ``duram'' duram.v:37: error: Unable to bind wire/reg/memory `ram' in `duram' duram.v:43: error: Could not find variable ``ram'' in ``duram'' duram.v:44: error: Unable to bind wire/reg/memory `ram' in `duram' 5 error(s) during elaboration. The code follows: module duram (data_a, data_b, wren_a, wren_b, address_a, address_b, clock_a, clock_b, q_a, q_b); parameter DATA_WIDTH = 32; parameter ADDR_WIDTH = 5; localparam ADDR_DEPTH = 2**ADDR_WIDTH; input [DATA_WIDTH-1:0] data_a; input wren_a; input [ADDR_WIDTH-1:0] address_a; input clock_a; output reg [DATA_WIDTH-1:0] q_a; input [DATA_WIDTH-1:0] data_b; input wren_b; input [ADDR_WIDTH-1:0] address_b; input clock_b; output reg [DATA_WIDTH-1:0] q_b; reg [DATA_WIDTH-1:0] ram [0:ADDR_DEPTH-1]; always @(posedge clock_a) begin if(wren_a) ram[address_a] <= data_a; q_a <= ram[address_a]; end always @(posedge clock_b) begin if(wren_b) ram[address_b] <= data_b; q_b <= ram[address_b]; end endmodule // duram Thanks, Matt _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user