3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-14 18:06:16 +00:00

greenpak4: Cleaned up trailing spaces in cells_sim

This commit is contained in:
Andrew Zonenberg 2016-12-14 14:14:45 +08:00
parent c77e6e6114
commit 262f8f913c

View file

@ -16,7 +16,7 @@ module GP_4LUT(input IN0, IN1, IN2, IN3, output OUT);
endmodule endmodule
module GP_ABUF(input wire IN, output wire OUT); module GP_ABUF(input wire IN, output wire OUT);
assign OUT = IN; assign OUT = IN;
//must be 1, 5, 20, 50 //must be 1, 5, 20, 50
@ -24,7 +24,7 @@ module GP_ABUF(input wire IN, output wire OUT);
parameter BANDWIDTH_KHZ = 1; parameter BANDWIDTH_KHZ = 1;
//cannot simulate mixed signal IP //cannot simulate mixed signal IP
endmodule endmodule
module GP_ACMP(input wire PWREN, input wire VIN, input wire VREF, output reg OUT); module GP_ACMP(input wire PWREN, input wire VIN, input wire VREF, output reg OUT);
@ -33,9 +33,9 @@ module GP_ACMP(input wire PWREN, input wire VIN, input wire VREF, output reg OUT
parameter VIN_ATTEN = 1; parameter VIN_ATTEN = 1;
parameter VIN_ISRC_EN = 0; parameter VIN_ISRC_EN = 0;
parameter HYSTERESIS = 0; parameter HYSTERESIS = 0;
initial OUT = 0; initial OUT = 0;
//cannot simulate mixed signal IP //cannot simulate mixed signal IP
endmodule endmodule
@ -44,37 +44,37 @@ module GP_BANDGAP(output reg OK);
parameter AUTO_PWRDN = 1; parameter AUTO_PWRDN = 1;
parameter CHOPPER_EN = 1; parameter CHOPPER_EN = 1;
parameter OUT_DELAY = 100; parameter OUT_DELAY = 100;
//cannot simulate mixed signal IP //cannot simulate mixed signal IP
endmodule endmodule
module GP_COUNT8(input CLK, input wire RST, output reg OUT); module GP_COUNT8(input CLK, input wire RST, output reg OUT);
parameter RESET_MODE = "RISING"; parameter RESET_MODE = "RISING";
parameter COUNT_TO = 8'h1; parameter COUNT_TO = 8'h1;
parameter CLKIN_DIVIDE = 1; parameter CLKIN_DIVIDE = 1;
//more complex hard IP blocks are not supported for simulation yet //more complex hard IP blocks are not supported for simulation yet
reg[7:0] count = COUNT_TO; reg[7:0] count = COUNT_TO;
//Combinatorially output whenever we wrap low //Combinatorially output whenever we wrap low
always @(*) begin always @(*) begin
OUT <= (count == 8'h0); OUT <= (count == 8'h0);
end end
//POR or SYSRST reset value is COUNT_TO. Datasheet is unclear but conversations w/ Silego confirm. //POR or SYSRST reset value is COUNT_TO. Datasheet is unclear but conversations w/ Silego confirm.
//Runtime reset value is clearly 0 except in count/FSM cells where it's configurable but we leave at 0 for now. //Runtime reset value is clearly 0 except in count/FSM cells where it's configurable but we leave at 0 for now.
//Datasheet seems to indicate that reset is asynchronous, but for now we model as sync due to Yosys issues... //Datasheet seems to indicate that reset is asynchronous, but for now we model as sync due to Yosys issues...
always @(posedge CLK) begin always @(posedge CLK) begin
count <= count - 1'd1; count <= count - 1'd1;
if(count == 0) if(count == 0)
count <= COUNT_TO; count <= COUNT_TO;
/* /*
if((RESET_MODE == "RISING") && RST) if((RESET_MODE == "RISING") && RST)
count <= 0; count <= 0;
@ -82,18 +82,18 @@ module GP_COUNT8(input CLK, input wire RST, output reg OUT);
count <= 0; count <= 0;
if((RESET_MODE == "BOTH") && RST) if((RESET_MODE == "BOTH") && RST)
count <= 0; count <= 0;
*/ */
end end
endmodule endmodule
module GP_COUNT14(input CLK, input wire RST, output reg OUT); module GP_COUNT14(input CLK, input wire RST, output reg OUT);
parameter RESET_MODE = "RISING"; parameter RESET_MODE = "RISING";
parameter COUNT_TO = 14'h1; parameter COUNT_TO = 14'h1;
parameter CLKIN_DIVIDE = 1; parameter CLKIN_DIVIDE = 1;
//more complex hard IP blocks are not supported for simulation yet //more complex hard IP blocks are not supported for simulation yet
endmodule endmodule
@ -156,14 +156,14 @@ module GP_DCMPMUX(input SEL, input IN0, input IN1, input IN2, input IN3, output
endmodule endmodule
module GP_DELAY(input IN, output reg OUT); module GP_DELAY(input IN, output reg OUT);
parameter DELAY_STEPS = 1; parameter DELAY_STEPS = 1;
parameter GLITCH_FILTER = 0; parameter GLITCH_FILTER = 0;
initial OUT = 0; initial OUT = 0;
generate generate
//TODO: These delays are PTV dependent! For now, hard code 3v3 timing //TODO: These delays are PTV dependent! For now, hard code 3v3 timing
//Change simulation-mode delay depending on global Vdd range (how to specify this?) //Change simulation-mode delay depending on global Vdd range (how to specify this?)
always @(*) begin always @(*) begin
@ -178,9 +178,9 @@ module GP_DELAY(input IN, output reg OUT);
end end
endcase endcase
end end
endgenerate endgenerate
endmodule endmodule
module GP_DFF(input D, CLK, output reg Q); module GP_DFF(input D, CLK, output reg Q);
@ -358,9 +358,9 @@ module GP_EDGEDET(input IN, output reg OUT);
parameter EDGE_DIRECTION = "RISING"; parameter EDGE_DIRECTION = "RISING";
parameter DELAY_STEPS = 1; parameter DELAY_STEPS = 1;
parameter GLITCH_FILTER = 0; parameter GLITCH_FILTER = 0;
//not implemented for simulation //not implemented for simulation
endmodule endmodule
module GP_IBUF(input IN, output OUT); module GP_IBUF(input IN, output OUT);
@ -377,16 +377,16 @@ module GP_INV(input IN, output OUT);
endmodule endmodule
module GP_LFOSC(input PWRDN, output reg CLKOUT); module GP_LFOSC(input PWRDN, output reg CLKOUT);
parameter PWRDN_EN = 0; parameter PWRDN_EN = 0;
parameter AUTO_PWRDN = 0; parameter AUTO_PWRDN = 0;
parameter OUT_DIV = 1; parameter OUT_DIV = 1;
initial CLKOUT = 0; initial CLKOUT = 0;
//auto powerdown not implemented for simulation //auto powerdown not implemented for simulation
//output dividers not implemented for simulation //output dividers not implemented for simulation
always begin always begin
if(PWRDN) if(PWRDN)
CLKOUT = 0; CLKOUT = 0;
@ -396,7 +396,7 @@ module GP_LFOSC(input PWRDN, output reg CLKOUT);
CLKOUT = ~CLKOUT; CLKOUT = ~CLKOUT;
end end
end end
endmodule endmodule
module GP_OBUF(input IN, output OUT); module GP_OBUF(input IN, output OUT);
@ -433,10 +433,10 @@ module GP_PGEN(input wire nRST, input wire CLK, output reg OUT);
OUT <= PATTERN_DATA[count]; OUT <= PATTERN_DATA[count];
if( (count + 1) == PATTERN_LEN) if( (count + 1) == PATTERN_LEN)
count <= 0; count <= 0;
end end
end end
endmodule endmodule
module GP_PWRDET(output reg VDD_LOW); module GP_PWRDET(output reg VDD_LOW);
@ -445,10 +445,10 @@ endmodule
module GP_POR(output reg RST_DONE); module GP_POR(output reg RST_DONE);
parameter POR_TIME = 500; parameter POR_TIME = 500;
initial begin initial begin
RST_DONE = 0; RST_DONE = 0;
if(POR_TIME == 4) if(POR_TIME == 4)
#4000; #4000;
else if(POR_TIME == 500) else if(POR_TIME == 500)
@ -457,64 +457,64 @@ module GP_POR(output reg RST_DONE);
$display("ERROR: bad POR_TIME for GP_POR cell"); $display("ERROR: bad POR_TIME for GP_POR cell");
$finish; $finish;
end end
RST_DONE = 1; RST_DONE = 1;
end end
endmodule endmodule
module GP_RCOSC(input PWRDN, output reg CLKOUT_HARDIP, output reg CLKOUT_FABRIC); module GP_RCOSC(input PWRDN, output reg CLKOUT_HARDIP, output reg CLKOUT_FABRIC);
parameter PWRDN_EN = 0; parameter PWRDN_EN = 0;
parameter AUTO_PWRDN = 0; parameter AUTO_PWRDN = 0;
parameter HARDIP_DIV = 1; parameter HARDIP_DIV = 1;
parameter FABRIC_DIV = 1; parameter FABRIC_DIV = 1;
parameter OSC_FREQ = "25k"; parameter OSC_FREQ = "25k";
initial CLKOUT_HARDIP = 0; initial CLKOUT_HARDIP = 0;
initial CLKOUT_FABRIC = 0; initial CLKOUT_FABRIC = 0;
//output dividers not implemented for simulation //output dividers not implemented for simulation
//auto powerdown not implemented for simulation //auto powerdown not implemented for simulation
always begin always begin
if(PWRDN) begin if(PWRDN) begin
CLKOUT_HARDIP = 0; CLKOUT_HARDIP = 0;
CLKOUT_FABRIC = 0; CLKOUT_FABRIC = 0;
end end
else begin else begin
if(OSC_FREQ == "25k") begin if(OSC_FREQ == "25k") begin
//half period of 25 kHz //half period of 25 kHz
#20000; #20000;
end end
else begin else begin
//half period of 2 MHz //half period of 2 MHz
#250; #250;
end end
CLKOUT_HARDIP = ~CLKOUT_HARDIP; CLKOUT_HARDIP = ~CLKOUT_HARDIP;
CLKOUT_FABRIC = ~CLKOUT_FABRIC; CLKOUT_FABRIC = ~CLKOUT_FABRIC;
end end
end end
endmodule endmodule
module GP_RINGOSC(input PWRDN, output reg CLKOUT_HARDIP, output reg CLKOUT_FABRIC); module GP_RINGOSC(input PWRDN, output reg CLKOUT_HARDIP, output reg CLKOUT_FABRIC);
parameter PWRDN_EN = 0; parameter PWRDN_EN = 0;
parameter AUTO_PWRDN = 0; parameter AUTO_PWRDN = 0;
parameter HARDIP_DIV = 1; parameter HARDIP_DIV = 1;
parameter FABRIC_DIV = 1; parameter FABRIC_DIV = 1;
initial CLKOUT_HARDIP = 0; initial CLKOUT_HARDIP = 0;
initial CLKOUT_FABRIC = 0; initial CLKOUT_FABRIC = 0;
//output dividers not implemented for simulation //output dividers not implemented for simulation
//auto powerdown not implemented for simulation //auto powerdown not implemented for simulation
always begin always begin
if(PWRDN) begin if(PWRDN) begin
CLKOUT_HARDIP = 0; CLKOUT_HARDIP = 0;
@ -527,7 +527,7 @@ module GP_RINGOSC(input PWRDN, output reg CLKOUT_HARDIP, output reg CLKOUT_FABRI
CLKOUT_FABRIC = ~CLKOUT_FABRIC; CLKOUT_FABRIC = ~CLKOUT_FABRIC;
end end
end end
endmodule endmodule
module GP_SHREG(input nRST, input CLK, input IN, output OUTA, output OUTB); module GP_SHREG(input nRST, input CLK, input IN, output OUTA, output OUTB);
@ -535,19 +535,19 @@ module GP_SHREG(input nRST, input CLK, input IN, output OUTA, output OUTB);
parameter OUTA_TAP = 1; parameter OUTA_TAP = 1;
parameter OUTA_INVERT = 0; parameter OUTA_INVERT = 0;
parameter OUTB_TAP = 1; parameter OUTB_TAP = 1;
reg[15:0] shreg = 0; reg[15:0] shreg = 0;
always @(posedge CLK, negedge nRST) begin always @(posedge CLK, negedge nRST) begin
if(!nRST) if(!nRST)
shreg = 0; shreg = 0;
else else
shreg <= {shreg[14:0], IN}; shreg <= {shreg[14:0], IN};
end end
assign OUTA = (OUTA_INVERT) ? ~shreg[OUTA_TAP - 1] : shreg[OUTA_TAP - 1]; assign OUTA = (OUTA_INVERT) ? ~shreg[OUTA_TAP - 1] : shreg[OUTA_TAP - 1];
assign OUTB = shreg[OUTB_TAP - 1]; assign OUTB = shreg[OUTB_TAP - 1];
@ -558,9 +558,9 @@ endmodule
module GP_SYSRESET(input RST); module GP_SYSRESET(input RST);
parameter RESET_MODE = "EDGE"; parameter RESET_MODE = "EDGE";
parameter EDGE_SPEED = 4; parameter EDGE_SPEED = 4;
//cannot simulate whole system reset //cannot simulate whole system reset
endmodule endmodule
module GP_VDD(output OUT); module GP_VDD(output OUT);