mirror of https://github.com/YosysHQ/yosys.git
Merge pull request #250 from azonenberg/master
Add support for more GreenPak cells (edge detector, delay, pattern generator)
This commit is contained in:
commit
0b3885bbfd
|
@ -131,9 +131,8 @@ endmodule
|
|||
module GP_DELAY(input IN, output reg OUT);
|
||||
|
||||
parameter DELAY_STEPS = 1;
|
||||
|
||||
//TODO: additional delay/glitch filter mode
|
||||
|
||||
parameter GLITCH_FILTER = 0;
|
||||
|
||||
initial OUT = 0;
|
||||
|
||||
generate
|
||||
|
@ -241,6 +240,16 @@ module GP_DFFSRI(input D, CLK, nSR, output reg nQ);
|
|||
end
|
||||
endmodule
|
||||
|
||||
module GP_EDGEDET(input IN, output reg OUT);
|
||||
|
||||
parameter EDGE_DIRECTION = "RISING";
|
||||
parameter DELAY_STEPS = 1;
|
||||
parameter GLITCH_FILTER = 0;
|
||||
|
||||
//not implemented for simulation
|
||||
|
||||
endmodule
|
||||
|
||||
module GP_IBUF(input IN, output OUT);
|
||||
assign OUT = IN;
|
||||
endmodule
|
||||
|
@ -296,6 +305,27 @@ module GP_PGA(input wire VIN_P, input wire VIN_N, input wire VIN_SEL, output reg
|
|||
|
||||
endmodule
|
||||
|
||||
module GP_PGEN(input wire nRST, input wire CLK, output reg OUT);
|
||||
initial OUT = 0;
|
||||
parameter PATTERN_DATA = 16'h0;
|
||||
parameter PATTERN_LEN = 5'd16;
|
||||
|
||||
reg[3:0] count = 0;
|
||||
always @(posedge CLK) begin
|
||||
if(!nRST)
|
||||
OUT <= PATTERN_DATA[0];
|
||||
|
||||
else begin
|
||||
count <= count + 1;
|
||||
OUT <= PATTERN_DATA[count];
|
||||
|
||||
if( (count + 1) == PATTERN_LEN)
|
||||
count <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
||||
module GP_POR(output reg RST_DONE);
|
||||
parameter POR_TIME = 500;
|
||||
|
||||
|
@ -409,7 +439,8 @@ endmodule
|
|||
//keep constraint needed to prevent optimization since we have no outputs
|
||||
(* keep *)
|
||||
module GP_SYSRESET(input RST);
|
||||
parameter RESET_MODE = "RISING";
|
||||
parameter RESET_MODE = "EDGE";
|
||||
parameter EDGE_SPEED = 4;
|
||||
|
||||
//cannot simulate whole system reset
|
||||
|
||||
|
|
Loading…
Reference in New Issue