mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-14 09:56:16 +00:00
Add SRL16 and SRL32 sim models
This commit is contained in:
parent
8aab7fe7e6
commit
73ddab6960
1 changed files with 39 additions and 0 deletions
|
@ -186,3 +186,42 @@ module RAM128X1D (
|
||||||
wire clk = WCLK ^ IS_WCLK_INVERTED;
|
wire clk = WCLK ^ IS_WCLK_INVERTED;
|
||||||
always @(posedge clk) if (WE) mem[A] <= D;
|
always @(posedge clk) if (WE) mem[A] <= D;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
module SRL16E (
|
||||||
|
output Q,
|
||||||
|
input A0, A1, A2, A3, CE, CLK, D
|
||||||
|
);
|
||||||
|
parameter [15:0] INIT = 16'h0000;
|
||||||
|
parameter [0:0] IS_CLK_INVERTED = 1'b0;
|
||||||
|
|
||||||
|
reg [15:0] r = INIT;
|
||||||
|
assign Q = r[{A3,A2,A1,A0}];
|
||||||
|
generate
|
||||||
|
if (IS_CLK_INVERTED) begin
|
||||||
|
always @(negedge CLK) if (CE) r <= { r[14:0], D };
|
||||||
|
end
|
||||||
|
else
|
||||||
|
always @(posedge CLK) if (CE) r <= { r[14:0], D };
|
||||||
|
endgenerate
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module SRLC32E (
|
||||||
|
output Q,
|
||||||
|
output Q31,
|
||||||
|
input [4:0] A,
|
||||||
|
input CE, CLK, D
|
||||||
|
);
|
||||||
|
parameter [31:0] INIT = 32'h00000000;
|
||||||
|
parameter [0:0] IS_CLK_INVERTED = 1'b0;
|
||||||
|
|
||||||
|
reg [31:0] r = INIT;
|
||||||
|
assign Q31 = r[31];
|
||||||
|
assign Q = r[A];
|
||||||
|
generate
|
||||||
|
if (IS_CLK_INVERTED) begin
|
||||||
|
always @(negedge CLK) if (CE) r <= { r[30:0], D };
|
||||||
|
end
|
||||||
|
else
|
||||||
|
always @(posedge CLK) if (CE) r <= { r[30:0], D };
|
||||||
|
endgenerate
|
||||||
|
endmodule
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue