mirror of
https://github.com/MiSTer-devel/QL_MiSTer.git
synced 2026-04-19 03:04:54 +00:00
Implemented fractional divisions for slower clocks
Moved IPC to clk_sys clock domain
This commit is contained in:
117
QL.sv
117
QL.sv
@@ -176,7 +176,6 @@ always @(posedge clk_sys) if (reset) ram_cfg <= status[5:4];
|
||||
|
||||
///////////////// CLOCKS ////////////////////////
|
||||
|
||||
wire clk_11m;
|
||||
wire clk_sys;
|
||||
wire pll_locked;
|
||||
|
||||
@@ -185,106 +184,100 @@ pll pll
|
||||
.refclk(CLK_50M),
|
||||
.rst(0),
|
||||
.outclk_0(clk_sys), // System clock
|
||||
.outclk_1(clk_11m), // Clock for 8049 IPC
|
||||
.locked(pll_locked)
|
||||
);
|
||||
|
||||
// 84Mhz sys_clk
|
||||
parameter DIV_BUS_QL = 4'd11; // 84Mhz / 11 = 7.64Mhz
|
||||
parameter DIV_BUS_16 = 4'd5; // 84Mhz / 5 = 16.8Mhz
|
||||
parameter DIV_BUS_24 = 4'd3; // 84Mhz / 3 = 21.5Mhz
|
||||
parameter DIV_BUS_FULL = 4'd2; // 84Mhz / 2 = 42Mhz
|
||||
// 84MHz sys_clk
|
||||
parameter FRACT_BUS_QL = 17'd11702; // 84MHz * 11702 / 65536 = 14.999MHz
|
||||
parameter FRACT_BUS_16 = 17'd24966; // 84MHz * 24966 / 65536 = 31.999MHz
|
||||
parameter FRACT_BUS_24 = 17'd37449; // 84MHz * 37449 / 65536 = 48.000MHz
|
||||
parameter FRACT_BUS_FULL = 17'h10000; // 84MHz
|
||||
|
||||
parameter DIV_131k = 10'd640; // 84Mhz / 640 = 131250Hz
|
||||
parameter DIV_VID = 4'd8; // 84Mhz / 8 = 10.5Mhz
|
||||
parameter DIV_SD = 3'd2; // 84Mhz / 2 = 42Mhz (effectively 21Mhz SPI speed)
|
||||
parameter FRACT_SD = 17'd19505; // 84MHz * 39010 / 65536 = 50Mhz (effectively 25Mhz SPI speed)
|
||||
parameter FRACT_11M = 17'd8582; // 84MHz * 8582 / 65536 = 10.999Mhz
|
||||
parameter DIV_131k = 10'd640; // 84MHz / 640 = 131250Hz
|
||||
parameter DIV_VID = 4'd8; // 84MHz / 8 = 10.5MHz
|
||||
|
||||
// 94.5Mhz sys_clk
|
||||
/*parameter DIV_BUS_QL = 4'd13; // 94.5Mhz / 13 = 7.27Mhz
|
||||
parameter DIV_BUS_16 = 4'd6; // 94.5Mhz / 6 = 15.75Mhz
|
||||
parameter DIV_BUS_24 = 4'd4; // 94.5Mhz / 4 = 23.625Mhz
|
||||
parameter DIV_BUS_FULL = 4'd2; // 94.5Mhz / 2 = 47.25Mhz
|
||||
// 94.5MHz sys_clk
|
||||
/*parameter FRACT_BUS_QL = 17'd11702; // 94.5MHz * 10403 / 65536 = 15.000MHz
|
||||
parameter FRACT_BUS_16 = 17'd24966; // 94.5MHz * 22192 / 65536 = 31.999MHz
|
||||
parameter FRACT_BUS_24 = 17'd37449; // 94.5MHz * 33288 / 65536 = 48.000MHz
|
||||
parameter FRACT_BUS_FULL = 17'h10000; // 94.5MHz
|
||||
|
||||
parameter DIV_131k = 10'd720; // 94.5Mhz / 720 = 131250Hz
|
||||
parameter DIV_VID = 4'd9; // 94.5Mhz / 9 = 10.5Mhz
|
||||
parameter DIV_SD = 3'd2; // 94.5Mhz / 2 = 47.25Mhz (effectively 23.625Mhz SPI speed)*/
|
||||
parameter FRACT_SD = 17'd19505; // 94.5MHz * 34675 / 65536 = 49.999MHz (effectively 25Mhz SPI speed)
|
||||
parameter FRACT_11M = 17'd8582; // 94.5MHz * 7629 / 65536 = 11.001MHz
|
||||
parameter DIV_131k = 10'd720; // 94.5MHz / 720 = 131250Hz
|
||||
parameter DIV_VID = 4'd9; // 94.5MHz / 9 = 10.5MHz*/
|
||||
|
||||
// 105Mhz sys_clk
|
||||
/*parameter DIV_BUS_QL = 4'd14; // 105Mhz / 14 = 7.5Mhz
|
||||
parameter DIV_BUS_16 = 4'd7; // 105Mhz / 7 = 15Mhz
|
||||
parameter DIV_BUS_24 = 4'd4; // 105Mhz / 4 = 26.25Mhz
|
||||
parameter DIV_BUS_FULL = 4'd2; // 105Mhz / 2 = 52.5Mhz
|
||||
// 105MHz sys_clk
|
||||
/*parameter FRACT_BUS_QL = 17'd11702; // 105MHz * 9362 / 65536 = 14.999MHz
|
||||
parameter FRACT_BUS_16 = 17'd24966; // 105MHz * 19973 / 65536 = 32.000MHz
|
||||
parameter FRACT_BUS_24 = 17'd37449; // 105MHz * 29959 / 65536 = 47.999MHz
|
||||
parameter FRACT_BUS_FULL = 17'h10000; // 105MHz
|
||||
|
||||
parameter DIV_131k = 10'd800; // 105Mhz / 800 = 131250Hz
|
||||
parameter DIV_VID = 4'd10; // 105Mhz / 10 = 10.5Mhz
|
||||
parameter DIV_SD = 3'd3; // 105Mhz / 3 = 35hz (effectively 17.5Mhz SPI speed)*/
|
||||
parameter FRACT_SD = 17'd19505; // 105MHz * 31208 / 65536 = 50.000MHz (effectively 25Mhz SPI speed)
|
||||
parameter FRACT_11M = 17'd8582; // 105MHz * 6866 / 65536 = 11.001MHz
|
||||
parameter DIV_131k = 10'd800; // 105MHz / 800 = 131250Hz
|
||||
parameter DIV_VID = 4'd10; // 105MHz / 10 = 10.5MHz*/
|
||||
|
||||
wire [16:0] fract_bus =
|
||||
cpu_speed == 0? FRACT_BUS_QL:
|
||||
cpu_speed == 1? FRACT_BUS_16:
|
||||
cpu_speed == 2? FRACT_BUS_24:
|
||||
FRACT_BUS_FULL;
|
||||
|
||||
reg ce_bus_p, ce_bus_n;
|
||||
reg ce_131k; // Supposed to be 131025 Hz for SDRAM refresh and clock update
|
||||
reg ce_vid; // 10.5Mhz pixel clock
|
||||
reg ce_sd; // ~50 Mhz SD clock
|
||||
reg ce_11m;
|
||||
|
||||
always @(negedge clk_sys)
|
||||
begin
|
||||
reg [3:0] divBus;
|
||||
reg bus_pol;
|
||||
reg bus_tick;
|
||||
reg [15:0] cnt_bus;
|
||||
reg [15:0] cnt_sd;
|
||||
reg [15:0] cnt_11m;
|
||||
reg [9:0] div131k;
|
||||
reg [3:0] divVid;
|
||||
reg [2:0] divSD;
|
||||
|
||||
if (reset)
|
||||
begin
|
||||
divBus <= 0;
|
||||
bus_pol <= 0;
|
||||
cnt_bus <= 0;
|
||||
div131k <= 0;
|
||||
divVid <= 0;
|
||||
divSD <= 0;
|
||||
end else begin
|
||||
divBus <= divBus + 4'd1;
|
||||
div131k<= div131k + 10'd1;
|
||||
divVid <= divVid + 4'd1;
|
||||
divSD <= divSD + 3'd1;
|
||||
end
|
||||
|
||||
ce_bus_p <= divBus == 0;
|
||||
case (cpu_speed)
|
||||
0: begin
|
||||
// Original QL speed
|
||||
if (divBus == DIV_BUS_QL - 1) divBus <= 0;
|
||||
ce_bus_n <= divBus == DIV_BUS_QL / 2;
|
||||
end
|
||||
|
||||
// CPU clock
|
||||
{bus_tick, cnt_bus} <= cnt_bus + fract_bus;
|
||||
ce_bus_p <= bus_tick && !bus_pol;
|
||||
ce_bus_n <= bus_tick && bus_pol;
|
||||
bus_pol <= bus_tick ^ bus_pol;
|
||||
|
||||
1: begin
|
||||
// Gold Card 16Mhz
|
||||
if (divBus == DIV_BUS_16 - 1) divBus <= 0;
|
||||
ce_bus_n <= divBus == DIV_BUS_16 / 2;
|
||||
end
|
||||
|
||||
2: begin
|
||||
// Gold Card 24Mhz
|
||||
if (divBus == DIV_BUS_24 - 1) divBus <= 0;
|
||||
ce_bus_n <= divBus == DIV_BUS_24 / 2;
|
||||
end
|
||||
|
||||
3: begin
|
||||
// Full speed
|
||||
if (divBus == DIV_BUS_FULL - 1) divBus <= 0;
|
||||
ce_bus_n <= divBus == DIV_BUS_FULL / 2;
|
||||
end
|
||||
endcase
|
||||
|
||||
// SDRAM refresh and clock update
|
||||
if (div131k == DIV_131k - 1) div131k <= 0;
|
||||
ce_131k <= !div131k;
|
||||
|
||||
// 10.5Mhz pixel clock
|
||||
if (divVid == DIV_VID - 1) divVid <= 0;
|
||||
ce_vid <= !divVid;
|
||||
|
||||
if (divSD == DIV_SD - 1) divSD <= 0;
|
||||
ce_sd <= !divSD;
|
||||
// QL-SD clock
|
||||
{ce_sd, cnt_sd} <= cnt_sd + FRACT_SD;
|
||||
|
||||
// 11Mhz IPC clock
|
||||
{ce_11m, cnt_11m} <= cnt_11m + FRACT_11M;
|
||||
end
|
||||
|
||||
//////////////// QL RAM timing ////////////////////
|
||||
|
||||
wire ram_delay_dtack;
|
||||
wire rom_delay_dtack;
|
||||
|
||||
ql_timing ql_timing(
|
||||
.*,
|
||||
@@ -646,7 +639,7 @@ zx8302 zx8302
|
||||
.reset ( reset ),
|
||||
.reset_mdv ( osd_reset ),
|
||||
.clk ( clk_sys ),
|
||||
.clk11 ( clk_11m ),
|
||||
.ce_11m ( ce_11m ),
|
||||
|
||||
.xint ( qimi_irq ),
|
||||
.ipl ( cpu_ipl ),
|
||||
|
||||
10
rtl/ipc.v
10
rtl/ipc.v
@@ -22,7 +22,8 @@
|
||||
|
||||
module ipc (
|
||||
input reset,
|
||||
input clk11,
|
||||
input clk,
|
||||
input ce_11m,
|
||||
|
||||
// synchronous serial connection
|
||||
output comctrl,
|
||||
@@ -49,7 +50,8 @@ wire [63:0] kbd_matrix;
|
||||
|
||||
keyboard keyboard (
|
||||
.reset ( reset ),
|
||||
.clk ( clk11 ),
|
||||
.clk ( clk ),
|
||||
.ce_11m ( ce_11m ),
|
||||
|
||||
.ps2_key ( ps2_key ),
|
||||
|
||||
@@ -75,8 +77,8 @@ wire [7:0] t8049_p2_i = { comdata_out && comdata_in, 7'b0000000 };
|
||||
assign comdata_out = t8049_p2_o[7];
|
||||
|
||||
t8049_notri #(0) t8049 (
|
||||
.xtal_i ( clk11 ),
|
||||
.xtal_en_i ( 1'b1 ),
|
||||
.xtal_i ( clk ),
|
||||
.xtal_en_i ( ce_11m ),
|
||||
.reset_n_i ( !reset ),
|
||||
.t0_i ( 1'b0 ),
|
||||
.t1_i ( 1'b0 ),
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
module keyboard (
|
||||
input clk,
|
||||
input ce_11m,
|
||||
input reset,
|
||||
|
||||
// ps2 interface
|
||||
@@ -59,11 +60,11 @@ wire x_f3 = specialD[9] || js0[0];
|
||||
wire x_f4 = specialD[10]|| js0[3];
|
||||
wire x_f5 = specialD[11]|| js0[4];
|
||||
|
||||
// divide 11mhz clock down to ~1khz some delay
|
||||
wire clk_delay = clk_delay_cnt[9];
|
||||
reg [9:0] clk_delay_cnt; // 11mhz/1024
|
||||
// Divide 11MHz clock down to ~1khz some delay
|
||||
wire clk_delay = clk_delay_cnt[12];
|
||||
reg [12:0] clk_delay_cnt; // 11MHz / 8192 = 1.342kHz
|
||||
always @(posedge clk)
|
||||
clk_delay_cnt <= clk_delay_cnt + 10'd1;
|
||||
if (ce_11m) clk_delay_cnt <= clk_delay_cnt + 13'd1;
|
||||
|
||||
// The "main" key of a combined modifier key needs to be delayed. Otherwise
|
||||
// the QL will not accept it. E.g. when pressing CTRL-LEFT, the CTRL key needs
|
||||
@@ -95,7 +96,7 @@ wire [63:0] special_matrix = {
|
||||
2'b00, x_f5, x_f3, x_f2, 1'b0, x_f1, x_f4
|
||||
};
|
||||
|
||||
// ================================= leyout =============================
|
||||
// ================================= layout =============================
|
||||
// F1 ESC 1 2 3 4 5 6 7 8 9 0 - = £ \
|
||||
// F2 TAB Q W E R T Y U I O P [ ]
|
||||
// F3 CAPS A S D F G H J K L ; ' ENTER
|
||||
|
||||
22
rtl/pll.qip
22
rtl/pll.qip
@@ -35,17 +35,17 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3BlcmF0aW9uX21vZGU=::ZGlyZWN0::b3BlcmF0aW9uX21vZGU="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3VzZV9sb2NrZWQ=::dHJ1ZQ==::RW5hYmxlIGxvY2tlZCBvdXRwdXQgcG9ydA=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2VuX2Fkdl9wYXJhbXM=::ZmFsc2U=::RW5hYmxlIHBoeXNpY2FsIG91dHB1dCBjbG9jayBwYXJhbWV0ZXJz"
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX251bWJlcl9vZl9jbG9ja3M=::Mg==::TnVtYmVyIE9mIENsb2Nrcw=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "bnVtYmVyX29mX2Nsb2Nrcw==::Mg==::bnVtYmVyX29mX2Nsb2Nrcw=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX251bWJlcl9vZl9jbG9ja3M=::MQ==::TnVtYmVyIE9mIENsb2Nrcw=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "bnVtYmVyX29mX2Nsb2Nrcw==::MQ==::bnVtYmVyX29mX2Nsb2Nrcw=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX211bHRpcGx5X2ZhY3Rvcg==::MQ==::TXVsdGlwbHkgRmFjdG9yIChNLUNvdW50ZXIp"
|
||||
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::ODQuMA==::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::MTg=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjA=::MjA2MTU3MzMwNw==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMA==::MTE=::QWN0dWFsIERpdmlkZSBGYWN0b3I="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iw::OA==::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjA=::MTcxNzk4NjgzMw==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMA==::NQ==::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="
|
||||
@@ -67,9 +67,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 "Z3VpX2Nhc2NhZGVfY291bnRlcjI=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy"
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3ky::MTEuMA==::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::MTI2::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iy::MQ==::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjI=::MQ==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMg==::NTc1::QWN0dWFsIERpdmlkZSBGYWN0b3I="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMg==::MQ==::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="
|
||||
@@ -256,10 +256,10 @@ 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=::ODMuOTk5OTkyIE1Ieg==::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTA=::ODQuMDAwMDAwIE1Ieg==::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=::MTAuOTk5OTk4IE1Ieg==::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE=::MCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTE="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "cGhhc2Vfc2hpZnQx::MCBwcw==::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=::MCBNSHo=::b3V0cHV0X2Nsb2NrX2ZyZXF1ZW5jeTI="
|
||||
@@ -317,8 +317,8 @@ set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAM
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX2VuX3Bob3V0X3BvcnRz::ZmFsc2U=::RW5hYmxlIGFjY2VzcyB0byBQTEwgRFBBIG91dHB1dCBwb3J0"
|
||||
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::TS1Db3VudGVyIEhpIERpdmlkZSxNLUNvdW50ZXIgTG93IERpdmlkZSxOLUNvdW50ZXIgSGkgRGl2aWRlLE4tQ291bnRlciBMb3cgRGl2aWRlLE0tQ291bnRlciBCeXBhc3MgRW5hYmxlLE4tQ291bnRlciBCeXBhc3MgRW5hYmxlLE0tQ291bnRlciBPZGQgRGl2aWRlIEVuYWJsZSxOLUNvdW50ZXIgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTAgSGkgRGl2aWRlLEMtQ291bnRlci0wIExvdyBEaXZpZGUsQy1Db3VudGVyLTAgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0wIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTAgSW5wdXQgU291cmNlLEMtQ291bnRlci0wIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTAgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTEgSGkgRGl2aWRlLEMtQ291bnRlci0xIExvdyBEaXZpZGUsQy1Db3VudGVyLTEgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0xIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTEgSW5wdXQgU291cmNlLEMtQ291bnRlci0xIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTEgT2RkIERpdmlkZSBFbmFibGUsVkNPIFBvc3QgRGl2aWRlIENvdW50ZXIgRW5hYmxlLENoYXJnZSBQdW1wIGN1cnJlbnQgKHVBKSxMb29wIEZpbHRlciBCYW5kd2lkdGggUmVzaXN0b3IgKE9obXMpICxQTEwgT3V0cHV0IFZDTyBGcmVxdWVuY3ksSy1GcmFjdGlvbmFsIERpdmlzaW9uIFZhbHVlIChEU00pLEZlZWRiYWNrIENsb2NrIFR5cGUsRmVlZGJhY2sgQ2xvY2sgTVVYIDEsRmVlZGJhY2sgQ2xvY2sgTVVYIDIsTSBDb3VudGVyIFNvdXJjZSBNVVgsUExMIEF1dG8gUmVzZXQ=::UGFyYW1ldGVyIE5hbWVz"
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl92YWx1ZXM=::OSw5LDI1NiwyNTYsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSw2LDUsMSwwLHBoX211eF9jbGssZmFsc2UsdHJ1ZSw0Miw0MiwxLDAscGhfbXV4X2NsayxmYWxzZSxmYWxzZSwxLDIwLDQwMDAsOTIzLjk5OTg3MiBNSHosMjA2MTU3MzMwNyxub25lLGdsYixtX2NudCxwaF9tdXhfY2xrLHRydWU=::UGFyYW1ldGVyIFZhbHVlcw=="
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl9saXN0::TS1Db3VudGVyIEhpIERpdmlkZSxNLUNvdW50ZXIgTG93IERpdmlkZSxOLUNvdW50ZXIgSGkgRGl2aWRlLE4tQ291bnRlciBMb3cgRGl2aWRlLE0tQ291bnRlciBCeXBhc3MgRW5hYmxlLE4tQ291bnRlciBCeXBhc3MgRW5hYmxlLE0tQ291bnRlciBPZGQgRGl2aWRlIEVuYWJsZSxOLUNvdW50ZXIgT2RkIERpdmlkZSBFbmFibGUsQy1Db3VudGVyLTAgSGkgRGl2aWRlLEMtQ291bnRlci0wIExvdyBEaXZpZGUsQy1Db3VudGVyLTAgQ29hcnNlIFBoYXNlIFNoaWZ0LEMtQ291bnRlci0wIFZDTyBQaGFzZSBUYXAsQy1Db3VudGVyLTAgSW5wdXQgU291cmNlLEMtQ291bnRlci0wIEJ5cGFzcyBFbmFibGUsQy1Db3VudGVyLTAgT2RkIERpdmlkZSBFbmFibGUsVkNPIFBvc3QgRGl2aWRlIENvdW50ZXIgRW5hYmxlLENoYXJnZSBQdW1wIGN1cnJlbnQgKHVBKSxMb29wIEZpbHRlciBCYW5kd2lkdGggUmVzaXN0b3IgKE9obXMpICxQTEwgT3V0cHV0IFZDTyBGcmVxdWVuY3ksSy1GcmFjdGlvbmFsIERpdmlzaW9uIFZhbHVlIChEU00pLEZlZWRiYWNrIENsb2NrIFR5cGUsRmVlZGJhY2sgQ2xvY2sgTVVYIDEsRmVlZGJhY2sgQ2xvY2sgTVVYIDIsTSBDb3VudGVyIFNvdXJjZSBNVVgsUExMIEF1dG8gUmVzZXQ=::UGFyYW1ldGVyIE5hbWVz"
|
||||
set_global_assignment -entity "pll_0002" -library "pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BhcmFtZXRlcl92YWx1ZXM=::NCw0LDI1NiwyNTYsZmFsc2UsdHJ1ZSxmYWxzZSxmYWxzZSwzLDIsMSwwLHBoX211eF9jbGssZmFsc2UsdHJ1ZSwyLDIwLDQwMDAsNDE5Ljk5OTk5OSBNSHosMTcxNzk4NjgzMyxub25lLGdsYixtX2NudCxwaF9tdXhfY2xrLHRydWU=::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"
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
// GENERATION: XML
|
||||
// pll.v
|
||||
|
||||
// Generated using ACDS version 17.0 602
|
||||
// Generated using ACDS version 17.0 595
|
||||
|
||||
`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 locked // locked.export
|
||||
);
|
||||
|
||||
@@ -17,7 +16,6 @@ module pll (
|
||||
.refclk (refclk), // refclk.clk
|
||||
.rst (rst), // reset.reset
|
||||
.outclk_0 (outclk_0), // outclk0.clk
|
||||
.outclk_1 (outclk_1), // outclk1.clk
|
||||
.locked (locked) // locked.export
|
||||
);
|
||||
|
||||
@@ -63,7 +61,7 @@ endmodule
|
||||
// Retrieval info: <generic name="gui_dsm_out_sel" value="1st_order" />
|
||||
// Retrieval info: <generic name="gui_use_locked" value="true" />
|
||||
// Retrieval info: <generic name="gui_en_adv_params" value="false" />
|
||||
// Retrieval info: <generic name="gui_number_of_clocks" value="2" />
|
||||
// Retrieval info: <generic name="gui_number_of_clocks" value="1" />
|
||||
// Retrieval info: <generic name="gui_multiply_factor" value="1" />
|
||||
// Retrieval info: <generic name="gui_frac_multiply_factor" value="1" />
|
||||
// Retrieval info: <generic name="gui_divide_factor_n" value="1" />
|
||||
|
||||
@@ -10,9 +10,6 @@ module pll_0002(
|
||||
// interface 'outclk0'
|
||||
output wire outclk_0,
|
||||
|
||||
// interface 'outclk1'
|
||||
output wire outclk_1,
|
||||
|
||||
// interface 'locked'
|
||||
output wire locked
|
||||
);
|
||||
@@ -21,11 +18,11 @@ module pll_0002(
|
||||
.fractional_vco_multiplier("true"),
|
||||
.reference_clock_frequency("50.0 MHz"),
|
||||
.operation_mode("direct"),
|
||||
.number_of_clocks(2),
|
||||
.output_clock_frequency0("83.999992 MHz"),
|
||||
.number_of_clocks(1),
|
||||
.output_clock_frequency0("84.000000 MHz"),
|
||||
.phase_shift0("0 ps"),
|
||||
.duty_cycle0(50),
|
||||
.output_clock_frequency1("10.999998 MHz"),
|
||||
.output_clock_frequency1("0 MHz"),
|
||||
.phase_shift1("0 ps"),
|
||||
.duty_cycle1(50),
|
||||
.output_clock_frequency2("0 MHz"),
|
||||
@@ -80,7 +77,7 @@ module pll_0002(
|
||||
.pll_subtype("General")
|
||||
) altera_pll_i (
|
||||
.rst (rst),
|
||||
.outclk ({outclk_1, outclk_0}),
|
||||
.outclk ({outclk_0}),
|
||||
.locked (locked),
|
||||
.fboutclk ( ),
|
||||
.fbclk (1'b0),
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
module zx8302
|
||||
(
|
||||
input clk,
|
||||
input clk11, // 11 MHz ipc
|
||||
input ce_11m, // 11 MHz ipc
|
||||
input reset,
|
||||
input reset_mdv,
|
||||
|
||||
@@ -179,7 +179,8 @@ wire [1:0] ipc_ipl;
|
||||
|
||||
ipc ipc (
|
||||
.reset ( reset ),
|
||||
.clk11 ( clk11 ),
|
||||
.clk ( clk ),
|
||||
.ce_11m ( ce_11m ),
|
||||
|
||||
.comctrl ( ipc_comctrl ),
|
||||
.comdata_in ( ipc_comdata_in ),
|
||||
|
||||
Reference in New Issue
Block a user