aboutsummaryrefslogtreecommitdiffstats
path: root/tests/memories/wide_write.v
blob: 5c4cc41f93de59bc9dd4b7f2fd5cda89b4f9ddf7 (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
// expect-wr-ports 4
// expect-rd-ports 1
// expect-wr-wide-continuation 4'1110

module test(
	input clk,
	input [3:0] we,
	input [7:0] ra,
	input [5:0] wa,
	input [31:0] wd,
	output [7:0] rd
);

reg [7:0] mem[0:255];

assign rd = mem[ra];

always @(posedge clk) begin
	if (we[0])
		mem[{wa, 2'b00}] <= wd[7:0];
	if (we[1])
		mem[{wa, 2'b01}] <= wd[15:8];
	if (we[2])
		mem[{wa, 2'b10}] <= wd[23:16];
	if (we[3])
		mem[{wa, 2'b11}] <= wd[31:24];
end

endmodule