diff --git a/Archie.sv b/Archie.sv
index 6bd435f..35621fc 100644
--- a/Archie.sv
+++ b/Archie.sv
@@ -221,15 +221,15 @@ end
wire pll_ready;
-wire clk_128m;
-wire clk_32m;
+wire clk_mem;
+wire clk_sys;
pll pll
(
.refclk(CLK_50M),
- .outclk_0(clk_128m),
+ .outclk_0(clk_mem),
.outclk_1(SDRAM_CLK),
- .outclk_2(clk_32m),
+ .outclk_2(clk_sys),
.locked(pll_ready)
);
@@ -271,7 +271,7 @@ wire img_readonly;
hps_io #(.STRLEN($size(CONF_STR)>>3), .WIDE(1), .VDNUM(2)) hps_io
(
- .clk_sys(clk_32m),
+ .clk_sys(clk_sys),
.HPS_BUS(HPS_BUS),
.conf_str(CONF_STR),
@@ -296,17 +296,17 @@ hps_io #(.STRLEN($size(CONF_STR)>>3), .WIDE(1), .VDNUM(2)) hps_io
.ioctl_wr(ioctl_wr),
.ioctl_wait(loader_stb),
- .sd_lba(sd_lba),
- .sd_rd(sd_rd),
- .sd_wr(sd_wr),
- .sd_ack(sd_ack),
- .sd_buff_addr(sd_buff_addr),
- .sd_buff_dout(sd_buff_dout),
- .sd_buff_din(sd_buff_din),
- .sd_buff_wr(sd_buff_wr),
- .img_mounted(img_mounted),
- .img_size(img_size),
- .img_readonly(img_readonly)
+ .sd_lba(sd_lba),
+ .sd_rd(sd_rd),
+ .sd_wr(sd_wr),
+ .sd_ack(sd_ack),
+ .sd_buff_addr(sd_buff_addr),
+ .sd_buff_dout(sd_buff_dout),
+ .sd_buff_din(sd_buff_din),
+ .sd_buff_wr(sd_buff_wr),
+ .img_mounted(img_mounted),
+ .img_size(img_size),
+ .img_readonly(img_readonly)
);
assign AUDIO_S = 0;
@@ -339,7 +339,7 @@ wire i2c_din, i2c_dout, i2c_clock;
archimedes_top ARCHIMEDES
(
- .CLKCPU_I ( clk_32m ),
+ .CLKCPU_I ( clk_sys ),
.CLKPIX_I ( CLK_VIDEO ),
.CEPIX_O ( CE_PIXEL ),
@@ -372,17 +372,17 @@ archimedes_top ARCHIMEDES
.DEBUG_LED ( ),
- .sd_lba ( sd_lba ),
- .sd_rd ( sd_rd ),
- .sd_wr ( sd_wr ),
- .sd_ack ( sd_ack ),
- .sd_buff_addr ( sd_buff_addr ),
- .sd_buff_dout ( sd_buff_dout ),
- .sd_buff_din ( sd_buff_din ),
- .sd_buff_wr ( sd_buff_wr ),
- .img_mounted ( img_mounted ),
- .img_size ( img_size ),
- .img_wp ( img_readonly ),
+ .sd_lba ( sd_lba ),
+ .sd_rd ( sd_rd ),
+ .sd_wr ( sd_wr ),
+ .sd_ack ( sd_ack ),
+ .sd_buff_addr ( sd_buff_addr ),
+ .sd_buff_dout ( sd_buff_dout ),
+ .sd_buff_din ( sd_buff_din ),
+ .sd_buff_wr ( sd_buff_wr ),
+ .img_mounted ( img_mounted ),
+ .img_size ( img_size ),
+ .img_wp ( img_readonly ),
.KBD_OUT_DATA ( kbd_out_data ),
.KBD_OUT_STROBE ( kbd_out_strobe ),
@@ -406,7 +406,7 @@ wire ram_ready;
sdram SDRAM
(
// wishbone interface
- .wb_clk (clk_32m ),
+ .wb_clk (clk_sys ),
.wb_stb (ram_stb ),
.wb_cyc (ram_cyc ),
.wb_we (ram_we ),
@@ -419,7 +419,7 @@ sdram SDRAM
.wb_cti (core_cti_o ),
// SDRAM Interface
- .sd_clk (clk_128m ),
+ .sd_clk (clk_mem ),
.sd_rst (~pll_ready ),
.sd_cke (SDRAM_CKE ),
@@ -436,7 +436,7 @@ sdram SDRAM
i2cSlave CMOS
(
- .clk (clk_32m ),
+ .clk (clk_sys ),
.rst (~pll_ready ),
.sdaIn (i2c_din ),
.sdaOut (i2c_dout ),
@@ -457,7 +457,7 @@ wire [7:0] cmos_dl_addr;
wire [1:0] cmos_dl_wr;
reg loader_stb = 0;
-always @(posedge clk_32m) begin
+always @(posedge clk_sys) begin
if (ram_ack) loader_stb <= 0;
if(riscos_dl & ioctl_wr) loader_stb <= 1;
diff --git a/fdc1772.v b/fdc1772.v
index 03f13e9..3a653c4 100644
--- a/fdc1772.v
+++ b/fdc1772.v
@@ -61,7 +61,7 @@ module fdc1772 (
input sd_buff_wr
);
-localparam CLK = 32000000;
+localparam CLK = 42000000;
localparam CLK_EN = 8000000;
// -------------------------------------------------------------------------
diff --git a/ioc.v b/ioc.v
index d80bfb2..33d01c0 100644
--- a/ioc.v
+++ b/ioc.v
@@ -69,8 +69,7 @@ module ioc(
input kbd_in_strobe
);
-reg [3:0] clk2m_count;
-reg [1:0] clk8m_count;
+reg [4:0] clken_counter;
wire [7:0] irqa_dout, irqb_dout, firq_dout;
wire irqa_req, irqb_req, firq_req;
@@ -85,23 +84,17 @@ wire serial_selected = wb_adr[6:2] == 5'd1 /* synthesis keep */;
wire write_request = (wb_bank == 3'b000) & wb_stb & wb_cyc & wb_we;
wire read_request = (wb_bank == 3'b000) & wb_stb & wb_cyc & !wb_we;
-// input data irq is cleared when cpu reads input port
-reg kbd_in_irq_ack;
-reg kbd_in_irq = 0;
-
-// keyboard input is valid on kbd_in_strobe. Latch data then
+// keyboard input is valid on rising edge of kbd_in_strobe. Latch data then
// and set irq
reg [7:0] kbd_in_data_latch;
-
-always @(posedge clkcpu) begin
- reg old_ack;
-
- old_ack <= kbd_in_irq_ack;
- if(kbd_in_strobe) begin
+reg kbd_in_irq_ack;
+reg kbd_in_irq;
+// input data irq is cleared when cpu reads input port
+always @(posedge clkcpu or posedge kbd_in_irq_ack) begin
+ if (kbd_in_irq_ack) kbd_in_irq <= 0;
+ else if (kbd_in_strobe) begin
kbd_in_data_latch <= kbd_in_data;
kbd_in_irq <= 1;
- end else if(~old_ack & kbd_in_irq_ack) begin
- kbd_in_irq <= 0;
end
end
@@ -235,9 +228,6 @@ initial begin
ctrl_state = 6'h3F;
- clk8m_count = 'd0;
- clk2m_count = 'd0;
-
ir_r = 1'b1;
end
@@ -259,10 +249,10 @@ always @(posedge clkcpu) begin
end
- // increment the clock counters.
- clk2m_count <= clk2m_count + 1'd1;
- clk8m_count <= clk8m_count + 1'd1;
-
+ // increment the clock counter. 42 MHz clkcpu assumed.
+ clken_counter <= clken_counter + 1'd1;
+ if (clken_counter == 20) clken_counter <= 0;
+
if (write_request & ctrl_selected) begin
ctrl_state <= wb_dat_i[5:0];
@@ -294,9 +284,8 @@ assign ctrl_dout = { ir, 1'b1, c_in & c_out };
assign ir_edge = ~ir_r & ir;
-// pulse the 2mhz & 8mhz clock enable line high when all the bits are set.
-assign clk2m_en = &clk2m_count;
-assign clk8m_en = &clk8m_count;
+assign clk2m_en = !clken_counter;
+assign clk8m_en = clken_counter == 0 || clken_counter == 5 || clken_counter == 10 || clken_counter == 15;
assign wb_dat_o = read_request ?
(ctrl_selected ? ctrl_dout :
diff --git a/sdram.v b/sdram.v
index 83c5175..dbe39aa 100644
--- a/sdram.v
+++ b/sdram.v
@@ -31,10 +31,10 @@ module sdram
input sd_clk, // sdram is accessed at 128MHz
input sd_rst, // reset the sdram controller.
output sd_cke, // clock enable.
- inout reg[15:0] sd_dq, // 16 bit bidirectional data bus
- output reg[12:0] sd_addr, // 13 bit multiplexed address bus
- output reg [1:0] sd_dqm = 2'b00, // two byte masks
- output reg [1:0] sd_ba = 2'b00, // two banks
+ inout reg[15:0]sd_dq, // 16 bit bidirectional data bus
+ output reg[12:0]sd_addr, // 13 bit multiplexed address bus
+ output reg[1:0] sd_dqm = 2'b00, // two byte masks
+ output reg[1:0] sd_ba = 2'b00, // two banks
output sd_cs_n, // a single chip select
output sd_we_n, // write enable
output sd_ras_n, // row address select
@@ -45,7 +45,7 @@ module sdram
input wb_clk, // 32MHz chipset clock to which sdram state machine is synchonized
input [31:0] wb_dat_i, // data input from chipset/cpu
- output reg[31:0] wb_dat_o = 0, // data output to chipset/cpu
+ output reg[31:0]wb_dat_o = 0, // data output to chipset/cpu
output reg wb_ack = 0,
input [23:0] wb_adr, // lower 2 bits are ignored.
input [3:0] wb_sel, //
@@ -81,15 +81,24 @@ reg [3:0] t;
reg [4:0] reset;
reg[31:0] sd_dat = 0; // data output to chipset/cpu
reg[31:0] sd_dat_nxt = 0; // data output to chipset/cpu
-reg sd_stb = 0; // copy of the wishbone bus signal.
-reg sd_we = 0; // copy of the wishbone bus signal.
-reg sd_cyc = 0; // copy of the wishbone bus signal.
-reg sd_burst = 0;
-reg [3:0] sd_cycle = 0;
-reg sd_done = 0;
-reg [3:0] sd_cmd = 0; // current command sent to sd ram
-reg [9:0] sd_refresh = 0;
-reg sd_auto_refresh = 0;
+
+reg sd_stb = 1'b0; // copy of the wishbone bus signal.
+reg sd_we = 1'b0; // copy of the wishbone bus signal.
+reg sd_cyc = 1'b0; // copy of the wishbone bus signal.
+reg sd_burst = 1'b0;
+
+reg [3:0] sd_cycle= 4'd0;
+reg sd_done = 1'b0;
+
+reg [3:0] sd_cmd = 4'd0; // current command sent to sd ram
+
+reg [9:0] sd_refresh = 10'd0;
+reg sd_auto_refresh = 1'b0;
+wire sd_req = wb_stb & wb_cyc & ~wb_ack;
+reg [11:0] sd_active_row[3:0];
+reg [3:0] sd_bank_active;
+wire [1:0] sd_bank = wb_adr[22:21];
+wire [11:0] sd_row = wb_adr[20:9];
initial begin
t = 4'd0;
@@ -98,9 +107,10 @@ initial begin
sd_cmd = CMD_INHIBIT;
end
-localparam CYCLE_RAS_START = 4'd1;
+localparam CYCLE_PRECHARGE = 4'd0;
+localparam CYCLE_RAS_START = 4'd3;
localparam CYCLE_RFSH_START = CYCLE_RAS_START;
-localparam CYCLE_CAS0 = CYCLE_RFSH_START + RASCAS_DELAY;
+localparam CYCLE_CAS0 = CYCLE_RAS_START + RASCAS_DELAY;
localparam CYCLE_CAS1 = CYCLE_CAS0 + 4'd1;
localparam CYCLE_CAS2 = CYCLE_CAS1 + 4'd1;
localparam CYCLE_CAS3 = CYCLE_CAS2 + 4'd1;
@@ -108,22 +118,30 @@ localparam CYCLE_READ0 = CYCLE_CAS0 + CAS_LATENCY + 4'd1;
localparam CYCLE_READ1 = CYCLE_READ0+ 1'd1;
localparam CYCLE_READ2 = CYCLE_READ1+ 1'd1;
localparam CYCLE_READ3 = CYCLE_READ2+ 1'd1;
-localparam CYCLE_END = 4'hF;
-localparam CYCLE_WR_END = CYCLE_CAS1 + 4'd4;
+localparam CYCLE_END = CYCLE_READ3+ 1'd1;
localparam CYCLE_RFSH_END = CYCLE_RFSH_START + RFC_DELAY;
localparam RAM_CLK = 128000000;
localparam REFRESH_PERIOD = (RAM_CLK / (16 * 8192)) - CYCLE_END;
+
+`ifdef VERILATOR
+reg [15:0] sd_q;
+assign sd_dq = (sd_writing && (sd_cycle == CYCLE_CAS1 || sd_cycle == CYCLE_CAS2)) ? sd_q : 16'bZZZZZZZZZZZZZZZZ;
+`endif
always @(posedge sd_clk) begin
+`ifndef VERILATOR
+ sd_dq <= 16'bZZZZZZZZZZZZZZZZ;
+`endif
+ sd_cmd <= CMD_NOP;
+
if (sd_rst) begin
t <= 4'd0;
reset <= 5'h1f;
sd_addr <= 13'd0;
sd_ready <= 0;
end else begin
- sd_dq <= 16'bZZZZZZZZZZZZZZZZ;
if (!sd_ready) begin
t <= t + 4'd1;
@@ -157,8 +175,7 @@ always @(posedge sd_clk) begin
// bring the wishbone bus signal into the ram clock domain.
sd_we <= wb_we;
- sd_cmd <= CMD_INHIBIT;
- if (wb_stb & wb_cyc & ~wb_ack) begin
+ if (sd_req) begin
sd_stb <= wb_stb;
sd_cyc <= wb_cyc;
end
@@ -172,6 +189,9 @@ always @(posedge sd_clk) begin
if ((sd_refresh > REFRESH_PERIOD) && (sd_cycle == 4'd0)) begin
sd_auto_refresh <= 1'b1;
sd_refresh <= 10'd0;
+ sd_cmd <= CMD_PRECHARGE;
+ sd_addr[10] <= 1;
+ sd_bank_active <= 0;
end else if (sd_auto_refresh) begin
// while the cycle is active count.
sd_cycle <= sd_cycle + 3'd1;
@@ -179,7 +199,6 @@ always @(posedge sd_clk) begin
CYCLE_RFSH_START: begin
sd_cmd <= CMD_AUTO_REFRESH;
end
-
CYCLE_RFSH_END: begin
// reset the count.
sd_auto_refresh <= 1'b0;
@@ -187,16 +206,29 @@ always @(posedge sd_clk) begin
end
endcase
- end else if (sd_cyc | (sd_cycle != 0)) begin
+ end else if (sd_cyc | (sd_cycle != 0) | (sd_cycle == 0 && sd_req)) begin
// while the cycle is active count.
sd_cycle <= sd_cycle + 3'd1;
- //sd_cmd <= CMD_NOP;
case (sd_cycle)
+ CYCLE_PRECHARGE: begin
+ if (~sd_bank_active[sd_bank])
+ sd_cycle <= CYCLE_RAS_START;
+ else if (sd_active_row[sd_bank] == sd_row)
+ sd_cycle <= CYCLE_CAS0 - 1'd1; // FIXME: Why doesn't work without -1?
+ else begin
+ sd_cmd <= CMD_PRECHARGE;
+ sd_addr[10] <= 0;
+ sd_ba <= sd_bank;
+ end
+ end
+
CYCLE_RAS_START: begin
sd_cmd <= CMD_ACTIVE;
- sd_addr <= { 1'b0, wb_adr[20:9] };
- sd_ba <= wb_adr[22:21];
+ sd_addr <= { 1'b0, sd_row };
+ sd_ba <= sd_bank;
+ sd_active_row[sd_bank] <= sd_row;
+ sd_bank_active[sd_bank] <= 1;
if(sd_reading) begin
sd_dqm <= 2'b00;
@@ -210,29 +242,37 @@ always @(posedge sd_clk) begin
// always, always read on a 32bit boundary and completely ignore the lsb of wb_adr.
sd_addr <= { 4'b0000, wb_adr[23], wb_adr[8:2], 1'b0 }; // no auto precharge
sd_dqm <= ~wb_sel[1:0];
+ sd_ba <= sd_bank;
if (sd_reading) begin
sd_cmd <= CMD_READ;
end else if (sd_writing) begin
sd_cmd <= CMD_WRITE;
+`ifdef VERILATOR
+ sd_q <= wb_dat_i[15:0];
+`else
sd_dq <= wb_dat_i[15:0];
+`endif
end
end
CYCLE_CAS1: begin
// now we access the second part of the 32 bit location.
- sd_addr <= { 4'b0010, wb_adr[23], wb_adr[8:2], 1'b1 }; // auto precharge
+ sd_addr <= { 4'b0000, wb_adr[23], wb_adr[8:2], 1'b1 }; // no auto precharge
sd_dqm <= ~wb_sel[3:2];
if (sd_reading) begin
sd_cmd <= CMD_READ;
if (burst_mode & can_burst) begin
- sd_addr[10] <= 1'b0;
sd_burst <= 1'b1;
end
end else if (sd_writing) begin
sd_cmd <= CMD_WRITE;
+ sd_done <= ~sd_done;
+`ifdef VERILATOR
+ sd_q <= wb_dat_i[31:16];
+`else
sd_dq <= wb_dat_i[31:16];
- sd_done <= 1'b1;
+`endif
end
end
@@ -250,7 +290,7 @@ always @(posedge sd_clk) begin
CYCLE_CAS3: begin
if (sd_burst) begin
// always, always read on a 32bit boundary and completely ignore the lsb of wb_adr.
- sd_addr <= { 4'b0010, wb_adr[23], wb_adr[8:3], 2'b11 }; // no auto precharge
+ sd_addr <= { 4'b0000, wb_adr[23], wb_adr[8:3], 2'b11 }; // no auto precharge
sd_dqm <= ~wb_sel[3:2];
if (sd_reading) begin
sd_cmd <= CMD_READ;
@@ -259,23 +299,17 @@ always @(posedge sd_clk) begin
end
CYCLE_READ0: begin
- if (sd_writing) begin
- // if we are writing then the sd_done signal has been high for
- // enough clock cycles. we can end the cycle here.
- sd_done <= 1'b0;
- sd_cycle <= 4'd0;
- sd_cyc <= 1'b0;
- sd_stb <= 1'b0;
- end
if (sd_reading) begin
sd_dat[15:0] <= sd_dq;
+ end else begin
+ if (sd_writing) sd_cycle <= CYCLE_END;
end
end
CYCLE_READ1: begin
if (sd_reading) begin
sd_dat[31:16] <= sd_dq;
- sd_done <= 1'b1;
+ sd_done <= ~sd_done;
end
end
@@ -293,13 +327,11 @@ always @(posedge sd_clk) begin
CYCLE_END: begin
sd_burst <= 1'b0;
- sd_done <= 1'b0;
sd_cyc <= 1'b0;
sd_stb <= 1'b0;
end
endcase
end else begin
- sd_done <= 1'd0;
sd_cycle <= 4'd0;
sd_burst <= 1'b0;
end
@@ -309,9 +341,15 @@ end
reg wb_burst;
always @(posedge wb_clk) begin
- wb_ack <= sd_done & ~wb_ack;
+ reg sd_doneD;
+
+ sd_doneD <= sd_done;
+ wb_ack <= (sd_done ^ sd_doneD) & ~wb_ack;
+
if (wb_stb & wb_cyc) begin
- if (sd_done & ~wb_ack) begin
+
+ if ((sd_done ^ sd_doneD) & ~wb_ack) begin
+
wb_dat_o <= sd_dat;
wb_burst <= burst_mode;
end
diff --git a/sys/pll.qip b/sys/pll.qip
index b08e56b..c43bdbb 100644
--- a/sys/pll.qip
+++ b/sys/pll.qip
@@ -41,11 +41,11 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2ZyYWNfbXVsdGlwbHlfZmFjdG9y::MQ==::RnJhY3Rpb25hbCBNdWx0aXBseSBGYWN0b3IgKEsp"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3Jfbg==::MQ==::RGl2aWRlIEZhY3RvciAoTi1Db3VudGVyKQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Nhc2NhZGVfY291bnRlcjA=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy"
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kw::MTI4LjA=::RGVzaXJlZCBGcmVxdWVuY3k="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kw::MTI2LjA=::RGVzaXJlZCBGcmVxdWVuY3k="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3JfYzA=::MQ==::RGl2aWRlIEZhY3RvciAoQy1Db3VudGVyKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iw::MTc=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjA=::Mzk1MTM2OTgyNg==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMA==::Nw==::QWN0dWFsIERpdmlkZSBGYWN0b3I="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iw::MjA=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjA=::Njg3MTk0Njgx::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMA==::OA==::QWN0dWFsIERpdmlkZSBGYWN0b3I="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9vdXRwdXRfY2xvY2tfZnJlcXVlbmN5MA==::MCBNSHo=::QWN0dWFsIEZyZXF1ZW5jeQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BzX3VuaXRzMA==::cHM=::UGhhc2UgU2hpZnQgdW5pdHM="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0MA==::MA==::UGhhc2UgU2hpZnQ="
@@ -53,11 +53,11 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9waGFzZV9zaGlmdDA=::MA==::QWN0dWFsIFBoYXNlIFNoaWZ0"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2R1dHlfY3ljbGUw::NTA=::RHV0eSBDeWNsZQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Nhc2NhZGVfY291bnRlcjE=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy"
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kx::MTI4LjA=::RGVzaXJlZCBGcmVxdWVuY3k="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kx::MTI2LjA=::RGVzaXJlZCBGcmVxdWVuY3k="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3JfYzE=::MQ==::RGl2aWRlIEZhY3RvciAoQy1Db3VudGVyKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Ix::MTc=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjE=::Mzk1MTM2OTgyNg==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMQ==::Nw==::QWN0dWFsIERpdmlkZSBGYWN0b3I="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Ix::MjA=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjE=::Njg3MTk0Njgx::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMQ==::OA==::QWN0dWFsIERpdmlkZSBGYWN0b3I="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9vdXRwdXRfY2xvY2tfZnJlcXVlbmN5MQ==::MCBNSHo=::QWN0dWFsIEZyZXF1ZW5jeQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BzX3VuaXRzMQ==::cHM=::UGhhc2UgU2hpZnQgdW5pdHM="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0MQ==::LTQzNTA=::UGhhc2UgU2hpZnQ="
@@ -65,11 +65,11 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9waGFzZV9zaGlmdDE=::MA==::QWN0dWFsIFBoYXNlIFNoaWZ0"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2R1dHlfY3ljbGUx::NTA=::RHV0eSBDeWNsZQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Nhc2NhZGVfY291bnRlcjI=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy"
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3ky::MzIuMA==::RGVzaXJlZCBGcmVxdWVuY3k="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3ky::NDIuMA==::RGVzaXJlZCBGcmVxdWVuY3k="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3JfYzI=::MQ==::RGl2aWRlIEZhY3RvciAoQy1Db3VudGVyKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iy::MTc=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjI=::Mzk1MTM2OTgyNg==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMg==::Mjg=::QWN0dWFsIERpdmlkZSBGYWN0b3I="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iy::MjA=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjI=::Njg3MTk0Njgx::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMg==::MjQ=::QWN0dWFsIERpdmlkZSBGYWN0b3I="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9vdXRwdXRfY2xvY2tfZnJlcXVlbmN5Mg==::MCBNSHo=::QWN0dWFsIEZyZXF1ZW5jeQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BzX3VuaXRzMg==::cHM=::UGhhc2UgU2hpZnQgdW5pdHM="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0Mg==::MA==::UGhhc2UgU2hpZnQ="
@@ -79,9 +79,9 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Nhc2NhZGVfY291bnRlcjM=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kz::NTAuMA==::RGVzaXJlZCBGcmVxdWVuY3k="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3JfYzM=::MQ==::RGl2aWRlIEZhY3RvciAoQy1Db3VudGVyKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iz::MTc=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjM=::Mzk1MTM2ODAyMw==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMw==::MTg=::QWN0dWFsIERpdmlkZSBGYWN0b3I="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iz::MQ==::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjM=::MQ==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMw==::MQ==::QWN0dWFsIERpdmlkZSBGYWN0b3I="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9vdXRwdXRfY2xvY2tfZnJlcXVlbmN5Mw==::MCBNSHo=::QWN0dWFsIEZyZXF1ZW5jeQ=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BzX3VuaXRzMw==::cHM=::UGhhc2UgU2hpZnQgdW5pdHM="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0Mw==::MA==::UGhhc2UgU2hpZnQ="
@@ -256,13 +256,13 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0X2RlZzE3::MC4w::UGhhc2UgU2hpZnQ="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9waGFzZV9zaGlmdDE3::MA==::QWN0dWFsIFBoYXNlIFNoaWZ0"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2R1dHlfY3ljbGUxNw==::NTA=::RHV0eSBDeWNsZQ=="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA=::MTI4LjAwMDAwMCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA=::MTI2LjAwMDAwMCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGhhc2Vfc2hpZnQw::MCBwcw==::cGhhc2Vfc2hpZnQw"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "ZHV0eV9jeWNsZTA=::NTA=::ZHV0eV9jeWNsZTA="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE=::MTI4LjAwMDAwMCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGhhc2Vfc2hpZnQx::LTQzMjQgcHM=::cGhhc2Vfc2hpZnQx"
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE=::MTI2LjAwMDAwMCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGhhc2Vfc2hpZnQx::LTQzNDAgcHM=::cGhhc2Vfc2hpZnQx"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "ZHV0eV9jeWNsZTE=::NTA=::ZHV0eV9jeWNsZTE="
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTI=::MzIuMDAwMDAwIE1Ieg==::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTI="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTI=::NDIuMDAwMDAwIE1Ieg==::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTI="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGhhc2Vfc2hpZnQy::MCBwcw==::cGhhc2Vfc2hpZnQy"
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "ZHV0eV9jeWNsZTI=::NTA=::ZHV0eV9jeWNsZTI="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTM=::MCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTM="
@@ -318,7 +318,7 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGxsX3R5cGU=::R2VuZXJhbA==::UExMIFRZUEU="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGxsX3N1YnR5cGU=::R2VuZXJhbA==::UExMIFNVQlRZUEU="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl9saXN0::TS1Db3VudGVyIEhpIERpdmlkZSxNLUNvdW50ZXIgTG93IERpdmlkZSxOLUNvdW50ZXIgSGkgRGl2aWRlLE4tQ291bnRlciBMb3cgRGl2aWRlLE0tQ291bnRlciBCeXBhc3MgRW5hYmxlLE4tQ291bnRlciBCeXBhc3MgRW5hYmxlLE0tQ291bnRlciBPZGQgRGl2aWRlIEVuYWJsZSxOLUNvdW50ZXIgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTAgSGkgRGl2aWRlLEMtQ291bnRlci0wIExvdyBEaXZpZGUsQy1Db3VudGVyLTAgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0wIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTAgSW5wdXQgU291cmNlLEMtQ291bnRlci0wIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTAgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTEgSGkgRGl2aWRlLEMtQ291bnRlci0xIExvdyBEaXZpZGUsQy1Db3VudGVyLTEgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0xIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTEgSW5wdXQgU291cmNlLEMtQ291bnRlci0xIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTEgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTIgSGkgRGl2aWRlLEMtQ291bnRlci0yIExvdyBEaXZpZGUsQy1Db3VudGVyLTIgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0yIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTIgSW5wdXQgU291cmNlLEMtQ291bnRlci0yIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTIgT2RkIERpdmlkZSBFbmFibGUsVkNPIFBvc3QgRGl2aWRlIENvdW50ZXIgRW5hYmxlLENoYXJnZSBQdW1wIGN1cnJlbnQgKHVBKSxMb29wIEZpbHRlciBCYW5kd2lkdGggUmVzaXN0b3IgKE9obXMpICxQTEwgT3V0cHV0IFZDTyBGcmVxdWVuY3ksSy1GcmFjdGlvbmFsIERpdmlzaW9uIFZhbHVlIChEU00pLEZlZWRiYWNrIENsb2NrIFR5cGUsRmVlZGJhY2sgQ2xvY2sgTVVYIDEsRmVlZGJhY2sgQ2xvY2sgTVVYIDIsTSBDb3VudGVyIFNvdXJjZSBNVVgsUExMIEF1dG8gUmVzZXQ=::UGFyYW1ldGVyIE5hbWVz"
-set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl92YWx1ZXM=::OSw4LDI1NiwyNTYsZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlLDQsMywxLDAscGhfbXV4X2NsayxmYWxzZSx0cnVlLDQsMyw0LDEscGhfbXV4X2NsayxmYWxzZSx0cnVlLDE0LDE0LDEsMCxwaF9tdXhfY2xrLGZhbHNlLGZhbHNlLDEsMjAsNDAwMCw4OTUuOTk5OTk5IE1IeiwzOTUxMzY5ODI2LG5vbmUsZ2xiLG1fY250LHBoX211eF9jbGssdHJ1ZQ==::UGFyYW1ldGVyIFZhbHVlcw=="
+set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl92YWx1ZXM=::MTAsMTAsMjU2LDI1NixmYWxzZSx0cnVlLGZhbHNlLGZhbHNlLDQsNCwxLDAscGhfbXV4X2NsayxmYWxzZSxmYWxzZSw0LDQsNCw1LHBoX211eF9jbGssZmFsc2UsZmFsc2UsMTIsMTIsMSwwLHBoX211eF9jbGssZmFsc2UsZmFsc2UsMSwyMCw0MDAwLDEwMDcuOTk5OTk5IE1Ieiw2ODcxOTQ2ODEsbm9uZSxnbGIsbV9jbnQscGhfbXV4X2Nsayx0cnVl::UGFyYW1ldGVyIFZhbHVlcw=="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX21pZl9nZW5lcmF0ZQ==::ZmFsc2U=::R2VuZXJhdGUgTUlGIGZpbGU="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2VuYWJsZV9taWZfZHBz::ZmFsc2U=::RW5hYmxlIER5bmFtaWMgUGhhc2UgU2hpZnQgZm9yIE1JRiBzdHJlYW1pbmc="
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Rwc19jbnRy::QzA=::RFBTIENvdW50ZXIgU2VsZWN0aW9u"
diff --git a/sys/pll.v b/sys/pll.v
index d45b14c..e8e9cea 100644
--- a/sys/pll.v
+++ b/sys/pll.v
@@ -1,257 +1,257 @@
-// megafunction wizard: %Altera PLL v17.0%
-// GENERATION: XML
-// pll.v
-
-// Generated using ACDS version 17.0 602
-
-`timescale 1 ps / 1 ps
-module pll (
- input wire refclk, // refclk.clk
- input wire rst, // reset.reset
- output wire outclk_0, // outclk0.clk
- output wire outclk_1, // outclk1.clk
- output wire outclk_2, // outclk2.clk
- output wire locked // locked.export
- );
-
- pll_0002 pll_inst (
- .refclk (refclk), // refclk.clk
- .rst (rst), // reset.reset
- .outclk_0 (outclk_0), // outclk0.clk
- .outclk_1 (outclk_1), // outclk1.clk
- .outclk_2 (outclk_2), // outclk2.clk
- .locked (locked) // locked.export
- );
-
-endmodule
-// Retrieval info:
-//
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// Retrieval info:
-// IPFS_FILES : pll.vo
-// RELATED_FILES: pll.v, pll_0002.v
+// megafunction wizard: %Altera PLL v17.0%
+// GENERATION: XML
+// pll.v
+
+// Generated using ACDS version 17.0 602
+
+`timescale 1 ps / 1 ps
+module pll (
+ input wire refclk, // refclk.clk
+ input wire rst, // reset.reset
+ output wire outclk_0, // outclk0.clk
+ output wire outclk_1, // outclk1.clk
+ output wire outclk_2, // outclk2.clk
+ output wire locked // locked.export
+ );
+
+ pll_0002 pll_inst (
+ .refclk (refclk), // refclk.clk
+ .rst (rst), // reset.reset
+ .outclk_0 (outclk_0), // outclk0.clk
+ .outclk_1 (outclk_1), // outclk1.clk
+ .outclk_2 (outclk_2), // outclk2.clk
+ .locked (locked) // locked.export
+ );
+
+endmodule
+// Retrieval info:
+//
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// Retrieval info:
+// IPFS_FILES : pll.vo
+// RELATED_FILES: pll.v, pll_0002.v
diff --git a/sys/pll/pll_0002.v b/sys/pll/pll_0002.v
index b843c73..f99ca2a 100644
--- a/sys/pll/pll_0002.v
+++ b/sys/pll/pll_0002.v
@@ -1,93 +1,93 @@
-`timescale 1ns/10ps
-module pll_0002(
-
- // interface 'refclk'
- input wire refclk,
-
- // interface 'reset'
- input wire rst,
-
- // interface 'outclk0'
- output wire outclk_0,
-
- // interface 'outclk1'
- output wire outclk_1,
-
- // interface 'outclk2'
- output wire outclk_2,
-
- // interface 'locked'
- output wire locked
-);
-
- altera_pll #(
- .fractional_vco_multiplier("true"),
- .reference_clock_frequency("50.0 MHz"),
- .operation_mode("direct"),
- .number_of_clocks(3),
- .output_clock_frequency0("128.000000 MHz"),
- .phase_shift0("0 ps"),
- .duty_cycle0(50),
- .output_clock_frequency1("128.000000 MHz"),
- .phase_shift1("-4324 ps"),
- .duty_cycle1(50),
- .output_clock_frequency2("32.000000 MHz"),
- .phase_shift2("0 ps"),
- .duty_cycle2(50),
- .output_clock_frequency3("0 MHz"),
- .phase_shift3("0 ps"),
- .duty_cycle3(50),
- .output_clock_frequency4("0 MHz"),
- .phase_shift4("0 ps"),
- .duty_cycle4(50),
- .output_clock_frequency5("0 MHz"),
- .phase_shift5("0 ps"),
- .duty_cycle5(50),
- .output_clock_frequency6("0 MHz"),
- .phase_shift6("0 ps"),
- .duty_cycle6(50),
- .output_clock_frequency7("0 MHz"),
- .phase_shift7("0 ps"),
- .duty_cycle7(50),
- .output_clock_frequency8("0 MHz"),
- .phase_shift8("0 ps"),
- .duty_cycle8(50),
- .output_clock_frequency9("0 MHz"),
- .phase_shift9("0 ps"),
- .duty_cycle9(50),
- .output_clock_frequency10("0 MHz"),
- .phase_shift10("0 ps"),
- .duty_cycle10(50),
- .output_clock_frequency11("0 MHz"),
- .phase_shift11("0 ps"),
- .duty_cycle11(50),
- .output_clock_frequency12("0 MHz"),
- .phase_shift12("0 ps"),
- .duty_cycle12(50),
- .output_clock_frequency13("0 MHz"),
- .phase_shift13("0 ps"),
- .duty_cycle13(50),
- .output_clock_frequency14("0 MHz"),
- .phase_shift14("0 ps"),
- .duty_cycle14(50),
- .output_clock_frequency15("0 MHz"),
- .phase_shift15("0 ps"),
- .duty_cycle15(50),
- .output_clock_frequency16("0 MHz"),
- .phase_shift16("0 ps"),
- .duty_cycle16(50),
- .output_clock_frequency17("0 MHz"),
- .phase_shift17("0 ps"),
- .duty_cycle17(50),
- .pll_type("General"),
- .pll_subtype("General")
- ) altera_pll_i (
- .rst (rst),
- .outclk ({outclk_2, outclk_1, outclk_0}),
- .locked (locked),
- .fboutclk ( ),
- .fbclk (1'b0),
- .refclk (refclk)
- );
-endmodule
-
+`timescale 1ns/10ps
+module pll_0002(
+
+ // interface 'refclk'
+ input wire refclk,
+
+ // interface 'reset'
+ input wire rst,
+
+ // interface 'outclk0'
+ output wire outclk_0,
+
+ // interface 'outclk1'
+ output wire outclk_1,
+
+ // interface 'outclk2'
+ output wire outclk_2,
+
+ // interface 'locked'
+ output wire locked
+);
+
+ altera_pll #(
+ .fractional_vco_multiplier("true"),
+ .reference_clock_frequency("50.0 MHz"),
+ .operation_mode("direct"),
+ .number_of_clocks(3),
+ .output_clock_frequency0("126.000000 MHz"),
+ .phase_shift0("0 ps"),
+ .duty_cycle0(50),
+ .output_clock_frequency1("126.000000 MHz"),
+ .phase_shift1("-4340 ps"),
+ .duty_cycle1(50),
+ .output_clock_frequency2("42.000000 MHz"),
+ .phase_shift2("0 ps"),
+ .duty_cycle2(50),
+ .output_clock_frequency3("0 MHz"),
+ .phase_shift3("0 ps"),
+ .duty_cycle3(50),
+ .output_clock_frequency4("0 MHz"),
+ .phase_shift4("0 ps"),
+ .duty_cycle4(50),
+ .output_clock_frequency5("0 MHz"),
+ .phase_shift5("0 ps"),
+ .duty_cycle5(50),
+ .output_clock_frequency6("0 MHz"),
+ .phase_shift6("0 ps"),
+ .duty_cycle6(50),
+ .output_clock_frequency7("0 MHz"),
+ .phase_shift7("0 ps"),
+ .duty_cycle7(50),
+ .output_clock_frequency8("0 MHz"),
+ .phase_shift8("0 ps"),
+ .duty_cycle8(50),
+ .output_clock_frequency9("0 MHz"),
+ .phase_shift9("0 ps"),
+ .duty_cycle9(50),
+ .output_clock_frequency10("0 MHz"),
+ .phase_shift10("0 ps"),
+ .duty_cycle10(50),
+ .output_clock_frequency11("0 MHz"),
+ .phase_shift11("0 ps"),
+ .duty_cycle11(50),
+ .output_clock_frequency12("0 MHz"),
+ .phase_shift12("0 ps"),
+ .duty_cycle12(50),
+ .output_clock_frequency13("0 MHz"),
+ .phase_shift13("0 ps"),
+ .duty_cycle13(50),
+ .output_clock_frequency14("0 MHz"),
+ .phase_shift14("0 ps"),
+ .duty_cycle14(50),
+ .output_clock_frequency15("0 MHz"),
+ .phase_shift15("0 ps"),
+ .duty_cycle15(50),
+ .output_clock_frequency16("0 MHz"),
+ .phase_shift16("0 ps"),
+ .duty_cycle16(50),
+ .output_clock_frequency17("0 MHz"),
+ .phase_shift17("0 ps"),
+ .duty_cycle17(50),
+ .pll_type("General"),
+ .pll_subtype("General")
+ ) altera_pll_i (
+ .rst (rst),
+ .outclk ({outclk_2, outclk_1, outclk_0}),
+ .locked (locked),
+ .fboutclk ( ),
+ .fbclk (1'b0),
+ .refclk (refclk)
+ );
+endmodule
+