mirror of
https://github.com/UzixLS/zx-sizif-xxs.git
synced 2025-07-19 07:11:28 +03:00
initial add fpga sources
This commit is contained in:
13
fpga/syn/clocks.sdc
Executable file
13
fpga/syn/clocks.sdc
Executable file
@ -0,0 +1,13 @@
|
||||
create_clock -period 28MHz -name {clk28} [get_ports {clk_in}]
|
||||
|
||||
# clkcpu 3.5 or 7 MHz
|
||||
create_generated_clock -name {clkcpu} -divide_by 4 -source [get_ports {clk_in}] [get_registers {cpucontrol:cpucontrol0|clkcpu}]
|
||||
|
||||
# hc0[2] 3.5 MHz
|
||||
create_generated_clock -name {hc0_2} -divide_by 8 -source [get_ports {clk_in}] [get_registers {screen:screen0|hc0[2]}]
|
||||
|
||||
# hsync len 4.7uS, 14e6/(1/4.7e-6) ~= 65
|
||||
create_generated_clock -name {hsync} -divide_by 126 -source [get_ports {clk_in}] [get_registers {screen:screen0|hsync}]
|
||||
|
||||
derive_pll_clocks
|
||||
derive_clocks -period 14MHz
|
3
fpga/syn/ip/asmi.qip
Executable file
3
fpga/syn/ip/asmi.qip
Executable file
@ -0,0 +1,3 @@
|
||||
set_global_assignment -name IP_TOOL_NAME "ALTASMI_PARALLEL"
|
||||
set_global_assignment -name IP_TOOL_VERSION "13.0"
|
||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "asmi.v"]
|
996
fpga/syn/ip/asmi.v
Executable file
996
fpga/syn/ip/asmi.v
Executable file
@ -0,0 +1,996 @@
|
||||
// megafunction wizard: %ALTASMI_PARALLEL%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: ALTASMI_PARALLEL
|
||||
|
||||
// ============================================================
|
||||
// File Name: asmi.v
|
||||
// Megafunction Name(s):
|
||||
// ALTASMI_PARALLEL
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
//
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 13.0.1 Build 232 06/12/2013 SP 1 SJ Full Version
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//Copyright (C) 1991-2013 Altera Corporation
|
||||
//Your use of Altera Corporation's design tools, logic functions
|
||||
//and other software and tools, and its AMPP partner logic
|
||||
//functions, and any output files from any of the foregoing
|
||||
//(including device programming or simulation files), and any
|
||||
//associated documentation or information are expressly subject
|
||||
//to the terms and conditions of the Altera Program License
|
||||
//Subscription Agreement, Altera MegaCore Function License
|
||||
//Agreement, or other applicable license agreement, including,
|
||||
//without limitation, that your use is for the sole purpose of
|
||||
//programming logic devices manufactured by Altera and sold by
|
||||
//Altera or its authorized distributors. Please refer to the
|
||||
//applicable agreement for further details.
|
||||
|
||||
|
||||
//altasmi_parallel CBX_AUTO_BLACKBOX="ALL" DATA_WIDTH="STANDARD" DEVICE_FAMILY="Cyclone" EPCS_TYPE="EPCS4" PAGE_SIZE=1 PORT_BULK_ERASE="PORT_UNUSED" PORT_DIE_ERASE="PORT_UNUSED" PORT_EN4B_ADDR="PORT_UNUSED" PORT_FAST_READ="PORT_UNUSED" PORT_ILLEGAL_ERASE="PORT_UNUSED" PORT_ILLEGAL_WRITE="PORT_UNUSED" PORT_RDID_OUT="PORT_UNUSED" PORT_READ_ADDRESS="PORT_UNUSED" PORT_READ_DUMMYCLK="PORT_UNUSED" PORT_READ_RDID="PORT_UNUSED" PORT_READ_SID="PORT_UNUSED" PORT_READ_STATUS="PORT_UNUSED" PORT_SECTOR_ERASE="PORT_UNUSED" PORT_SECTOR_PROTECT="PORT_UNUSED" PORT_SHIFT_BYTES="PORT_UNUSED" PORT_WREN="PORT_UNUSED" PORT_WRITE="PORT_UNUSED" USE_ASMIBLOCK="ON" USE_EAB="ON" WRITE_DUMMY_CLK=0 addr busy clkin data_valid dataout rden read reset INTENDED_DEVICE_FAMILY="Cyclone" ALTERA_INTERNAL_OPTIONS=SUPPRESS_DA_RULE_INTERNAL=C106
|
||||
//VERSION_BEGIN 13.0 cbx_a_gray2bin 2013:06:12:18:03:43:SJ cbx_a_graycounter 2013:06:12:18:03:43:SJ cbx_altasmi_parallel 2013:06:12:18:03:43:SJ cbx_altdpram 2013:06:12:18:03:43:SJ cbx_altsyncram 2013:06:12:18:03:43:SJ cbx_arriav 2013:06:12:18:03:43:SJ cbx_cyclone 2013:06:12:18:03:43:SJ cbx_cycloneii 2013:06:12:18:03:43:SJ cbx_fifo_common 2013:06:12:18:03:43:SJ cbx_lpm_add_sub 2013:06:12:18:03:43:SJ cbx_lpm_compare 2013:06:12:18:03:43:SJ cbx_lpm_counter 2013:06:12:18:03:43:SJ cbx_lpm_decode 2013:06:12:18:03:43:SJ cbx_lpm_mux 2013:06:12:18:03:43:SJ cbx_mgl 2013:06:12:18:05:10:SJ cbx_scfifo 2013:06:12:18:03:43:SJ cbx_stratix 2013:06:12:18:03:43:SJ cbx_stratixii 2013:06:12:18:03:43:SJ cbx_stratixiii 2013:06:12:18:03:43:SJ cbx_stratixv 2013:06:12:18:03:43:SJ cbx_util_mgl 2013:06:12:18:03:43:SJ VERSION_END
|
||||
// synthesis VERILOG_INPUT_VERSION VERILOG_2001
|
||||
// altera message_off 10463
|
||||
|
||||
|
||||
//synthesis_resources = a_graycounter 3 cyclone_asmiblock 1 lut 74 mux21 1
|
||||
//synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
//synopsys translate_on
|
||||
(* ALTERA_ATTRIBUTE = {"SUPPRESS_DA_RULE_INTERNAL=C106"} *)
|
||||
module asmi_altasmi_parallel_gqd2
|
||||
(
|
||||
addr,
|
||||
busy,
|
||||
clkin,
|
||||
data_valid,
|
||||
dataout,
|
||||
rden,
|
||||
read,
|
||||
reset) /* synthesis synthesis_clearbox=2 */;
|
||||
input [23:0] addr;
|
||||
output busy;
|
||||
input clkin;
|
||||
output data_valid;
|
||||
output [7:0] dataout;
|
||||
input rden;
|
||||
input read;
|
||||
input reset;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
tri0 read;
|
||||
tri0 reset;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
|
||||
wire [2:0] wire_addbyte_cntr_q;
|
||||
wire [2:0] wire_gen_cntr_q;
|
||||
wire [1:0] wire_stage_cntr_q;
|
||||
wire wire_cyclone_asmiblock2_data0out;
|
||||
reg add_msb_reg;
|
||||
wire wire_add_msb_reg_ena;
|
||||
wire [23:0] wire_addr_reg_d;
|
||||
reg [23:0] addr_reg;
|
||||
wire [23:0] wire_addr_reg_ena;
|
||||
wire [7:0] wire_asmi_opcode_reg_d;
|
||||
reg [7:0] asmi_opcode_reg;
|
||||
wire [7:0] wire_asmi_opcode_reg_ena;
|
||||
reg busy_det_reg;
|
||||
reg clr_read_reg;
|
||||
reg clr_read_reg2;
|
||||
reg dffe3;
|
||||
reg dvalid_reg;
|
||||
wire wire_dvalid_reg_ena;
|
||||
wire wire_dvalid_reg_sclr;
|
||||
reg dvalid_reg2;
|
||||
reg end1_cyc_reg;
|
||||
reg end1_cyc_reg2;
|
||||
reg end_op_hdlyreg;
|
||||
reg end_op_reg;
|
||||
reg end_rbyte_reg;
|
||||
wire wire_end_rbyte_reg_ena;
|
||||
wire wire_end_rbyte_reg_sclr;
|
||||
reg end_read_reg;
|
||||
reg ncs_reg;
|
||||
wire wire_ncs_reg_ena;
|
||||
wire wire_ncs_reg_sclr;
|
||||
wire [7:0] wire_read_data_reg_d;
|
||||
reg [7:0] read_data_reg;
|
||||
wire [7:0] wire_read_data_reg_ena;
|
||||
wire [7:0] wire_read_dout_reg_d;
|
||||
reg [7:0] read_dout_reg;
|
||||
wire [7:0] wire_read_dout_reg_ena;
|
||||
reg read_reg;
|
||||
wire wire_read_reg_ena;
|
||||
reg shift_op_reg;
|
||||
reg stage2_reg;
|
||||
reg stage3_reg;
|
||||
reg stage4_reg;
|
||||
wire wire_mux211_dataout;
|
||||
wire addr_overdie;
|
||||
wire addr_overdie_pos;
|
||||
wire [23:0] addr_reg_overdie;
|
||||
wire [7:0] b4addr_opcode;
|
||||
wire [7:0] berase_opcode;
|
||||
wire busy_wire;
|
||||
wire clkin_wire;
|
||||
wire clr_addmsb_wire;
|
||||
wire clr_endrbyte_wire;
|
||||
wire clr_read_wire;
|
||||
wire clr_read_wire2;
|
||||
wire clr_write_wire2;
|
||||
wire data0out_wire;
|
||||
wire data_valid_wire;
|
||||
wire [3:0] datain_wire;
|
||||
wire [3:0] dataout_wire;
|
||||
wire [7:0] derase_opcode;
|
||||
wire do_4baddr;
|
||||
wire do_bulk_erase;
|
||||
wire do_die_erase;
|
||||
wire do_fast_read;
|
||||
wire do_fread_epcq;
|
||||
wire do_freadwrv_polling;
|
||||
wire do_memadd;
|
||||
wire do_polling;
|
||||
wire do_read;
|
||||
wire do_read_nonvolatile;
|
||||
wire do_read_rdid;
|
||||
wire do_read_sid;
|
||||
wire do_read_stat;
|
||||
wire do_read_volatile;
|
||||
wire do_sec_erase;
|
||||
wire do_sec_prot;
|
||||
wire do_sprot_polling;
|
||||
wire do_wait_dummyclk;
|
||||
wire do_wren;
|
||||
wire do_write;
|
||||
wire do_write_polling;
|
||||
wire do_write_volatile;
|
||||
wire end1_cyc_gen_cntr_wire;
|
||||
wire end1_cyc_normal_in_wire;
|
||||
wire end1_cyc_reg_in_wire;
|
||||
wire end_add_cycle;
|
||||
wire end_add_cycle_mux_datab_wire;
|
||||
wire end_fast_read;
|
||||
wire end_one_cyc_pos;
|
||||
wire end_one_cycle;
|
||||
wire end_op_wire;
|
||||
wire end_operation;
|
||||
wire end_ophdly;
|
||||
wire end_pgwr_data;
|
||||
wire end_read;
|
||||
wire end_read_byte;
|
||||
wire [7:0] fast_read_opcode;
|
||||
wire freadwrv_sdoin;
|
||||
wire in_operation;
|
||||
wire load_opcode;
|
||||
wire memadd_sdoin;
|
||||
wire not_busy;
|
||||
wire oe_wire;
|
||||
wire [0:0] pagewr_buf_not_empty;
|
||||
wire rden_wire;
|
||||
wire [7:0] rdid_opcode;
|
||||
wire [7:0] rdummyclk_opcode;
|
||||
wire [7:0] read_data_reg_in_wire;
|
||||
wire [7:0] read_opcode;
|
||||
wire read_rdid_wire;
|
||||
wire read_sid_wire;
|
||||
wire read_wire;
|
||||
wire [7:0] rflagstat_opcode;
|
||||
wire [7:0] rnvdummyclk_opcode;
|
||||
wire [7:0] rsid_opcode;
|
||||
wire rsid_sdoin;
|
||||
wire [7:0] rstat_opcode;
|
||||
wire scein_wire;
|
||||
wire sdoin_wire;
|
||||
wire sec_protect_wire;
|
||||
wire [7:0] secprot_opcode;
|
||||
wire secprot_sdoin;
|
||||
wire [7:0] serase_opcode;
|
||||
wire shift_opcode;
|
||||
wire shift_opdata;
|
||||
wire shift_pgwr_data;
|
||||
wire st_busy_wire;
|
||||
wire stage2_wire;
|
||||
wire stage3_wire;
|
||||
wire stage4_wire;
|
||||
wire start_frpoll;
|
||||
wire start_poll;
|
||||
wire start_sppoll;
|
||||
wire start_wrpoll;
|
||||
wire to_sdoin_wire;
|
||||
wire [7:0] wren_opcode;
|
||||
wire wren_wire;
|
||||
wire [7:0] write_opcode;
|
||||
wire write_prot_true;
|
||||
wire write_sdoin;
|
||||
wire [7:0] wrvolatile_opcode;
|
||||
|
||||
a_graycounter addbyte_cntr
|
||||
(
|
||||
.aclr(reset),
|
||||
.clk_en((((((wire_stage_cntr_q[1] & wire_stage_cntr_q[0]) & end_one_cyc_pos) & (((((((do_read_sid | do_write) | do_sec_erase) | do_die_erase) | do_read_rdid) | do_read) | do_fast_read) | do_read_nonvolatile)) | addr_overdie) | end_operation)),
|
||||
.clock((~ clkin_wire)),
|
||||
.q(wire_addbyte_cntr_q),
|
||||
.qbin(),
|
||||
.sclr((end_operation | addr_overdie))
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.cnt_en(1'b1),
|
||||
.updown(1'b1)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
addbyte_cntr.width = 3,
|
||||
addbyte_cntr.lpm_type = "a_graycounter";
|
||||
a_graycounter gen_cntr
|
||||
(
|
||||
.aclr(reset),
|
||||
.clk_en((((in_operation & (~ end_ophdly)) | do_wait_dummyclk) | addr_overdie)),
|
||||
.clock(clkin_wire),
|
||||
.q(wire_gen_cntr_q),
|
||||
.qbin(),
|
||||
.sclr(((end1_cyc_reg_in_wire | addr_overdie) | do_wait_dummyclk))
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.cnt_en(1'b1),
|
||||
.updown(1'b1)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
gen_cntr.width = 3,
|
||||
gen_cntr.lpm_type = "a_graycounter";
|
||||
a_graycounter stage_cntr
|
||||
(
|
||||
.aclr(reset),
|
||||
.clk_en(((((((((((((((in_operation & end_one_cycle) & (~ (stage3_wire & (~ end_add_cycle)))) & (~ (stage4_wire & (~ end_read)))) & (~ (stage4_wire & (~ end_fast_read)))) & (~ ((((do_write | do_sec_erase) | do_die_erase) | do_bulk_erase) & write_prot_true))) & (~ (do_write & (~ pagewr_buf_not_empty[0])))) & (~ (stage3_wire & st_busy_wire))) & (~ ((do_write & shift_pgwr_data) & (~ end_pgwr_data)))) & (~ (stage2_wire & do_wren))) & (~ ((((stage3_wire & (do_sec_erase | do_die_erase)) & (~ do_wren)) & (~ do_read_stat)) & (~ do_read_rdid)))) & (~ (stage3_wire & ((do_write_volatile | do_read_volatile) | do_read_nonvolatile)))) | ((stage3_wire & do_fast_read) & do_wait_dummyclk)) | addr_overdie) | end_ophdly)),
|
||||
.clock(clkin_wire),
|
||||
.q(wire_stage_cntr_q),
|
||||
.qbin(),
|
||||
.sclr((end_operation | addr_overdie))
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.cnt_en(1'b1),
|
||||
.updown(1'b1)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
stage_cntr.width = 2,
|
||||
stage_cntr.lpm_type = "a_graycounter";
|
||||
cyclone_asmiblock cyclone_asmiblock2
|
||||
(
|
||||
.data0out(wire_cyclone_asmiblock2_data0out),
|
||||
.dclkin(clkin_wire),
|
||||
.oe(oe_wire),
|
||||
.scein(scein_wire),
|
||||
.sdoin((sdoin_wire | datain_wire[0])));
|
||||
// synopsys translate_off
|
||||
initial
|
||||
add_msb_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) add_msb_reg <= 1'b0;
|
||||
else if (wire_add_msb_reg_ena == 1'b1)
|
||||
if (clr_addmsb_wire == 1'b1) add_msb_reg <= 1'b0;
|
||||
else add_msb_reg <= addr_reg[23];
|
||||
assign
|
||||
wire_add_msb_reg_ena = ((((((((do_read | do_fast_read) | do_write) | do_sec_erase) | do_die_erase) & (~ (((do_write | do_sec_erase) | do_die_erase) & (~ do_memadd)))) & wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]) | clr_addmsb_wire);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[0:0] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[0:0] == 1'b1) addr_reg[0:0] <= wire_addr_reg_d[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[1:1] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[1:1] == 1'b1) addr_reg[1:1] <= wire_addr_reg_d[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[2:2] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[2:2] == 1'b1) addr_reg[2:2] <= wire_addr_reg_d[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[3:3] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[3:3] == 1'b1) addr_reg[3:3] <= wire_addr_reg_d[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[4:4] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[4:4] == 1'b1) addr_reg[4:4] <= wire_addr_reg_d[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[5:5] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[5:5] == 1'b1) addr_reg[5:5] <= wire_addr_reg_d[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[6:6] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[6:6] == 1'b1) addr_reg[6:6] <= wire_addr_reg_d[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[7:7] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[7:7] == 1'b1) addr_reg[7:7] <= wire_addr_reg_d[7:7];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[8:8] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[8:8] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[8:8] == 1'b1) addr_reg[8:8] <= wire_addr_reg_d[8:8];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[9:9] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[9:9] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[9:9] == 1'b1) addr_reg[9:9] <= wire_addr_reg_d[9:9];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[10:10] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[10:10] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[10:10] == 1'b1) addr_reg[10:10] <= wire_addr_reg_d[10:10];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[11:11] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[11:11] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[11:11] == 1'b1) addr_reg[11:11] <= wire_addr_reg_d[11:11];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[12:12] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[12:12] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[12:12] == 1'b1) addr_reg[12:12] <= wire_addr_reg_d[12:12];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[13:13] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[13:13] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[13:13] == 1'b1) addr_reg[13:13] <= wire_addr_reg_d[13:13];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[14:14] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[14:14] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[14:14] == 1'b1) addr_reg[14:14] <= wire_addr_reg_d[14:14];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[15:15] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[15:15] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[15:15] == 1'b1) addr_reg[15:15] <= wire_addr_reg_d[15:15];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[16:16] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[16:16] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[16:16] == 1'b1) addr_reg[16:16] <= wire_addr_reg_d[16:16];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[17:17] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[17:17] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[17:17] == 1'b1) addr_reg[17:17] <= wire_addr_reg_d[17:17];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[18:18] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[18:18] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[18:18] == 1'b1) addr_reg[18:18] <= wire_addr_reg_d[18:18];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[19:19] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[19:19] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[19:19] == 1'b1) addr_reg[19:19] <= wire_addr_reg_d[19:19];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[20:20] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[20:20] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[20:20] == 1'b1) addr_reg[20:20] <= wire_addr_reg_d[20:20];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[21:21] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[21:21] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[21:21] == 1'b1) addr_reg[21:21] <= wire_addr_reg_d[21:21];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[22:22] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[22:22] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[22:22] == 1'b1) addr_reg[22:22] <= wire_addr_reg_d[22:22];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
addr_reg[23:23] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) addr_reg[23:23] <= 1'b0;
|
||||
else if (wire_addr_reg_ena[23:23] == 1'b1) addr_reg[23:23] <= wire_addr_reg_d[23:23];
|
||||
assign
|
||||
wire_addr_reg_d = {((({23{not_busy}} & addr[23:1]) | ({23{stage3_wire}} & addr_reg[22:0])) | ({23{addr_overdie}} & addr_reg_overdie[23:1])), ((not_busy & addr[0]) | (addr_overdie & addr_reg_overdie[0]))};
|
||||
assign
|
||||
wire_addr_reg_ena = {24{((((rden_wire | wren_wire) & not_busy) | (stage4_wire & addr_overdie)) | (stage3_wire & ((((do_write | do_sec_erase) | do_die_erase) & do_memadd) | (do_read | do_fast_read))))}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[0:0] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[0:0] == 1'b1) asmi_opcode_reg[0:0] <= wire_asmi_opcode_reg_d[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[1:1] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[1:1] == 1'b1) asmi_opcode_reg[1:1] <= wire_asmi_opcode_reg_d[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[2:2] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[2:2] == 1'b1) asmi_opcode_reg[2:2] <= wire_asmi_opcode_reg_d[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[3:3] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[3:3] == 1'b1) asmi_opcode_reg[3:3] <= wire_asmi_opcode_reg_d[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[4:4] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[4:4] == 1'b1) asmi_opcode_reg[4:4] <= wire_asmi_opcode_reg_d[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[5:5] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[5:5] == 1'b1) asmi_opcode_reg[5:5] <= wire_asmi_opcode_reg_d[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[6:6] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[6:6] == 1'b1) asmi_opcode_reg[6:6] <= wire_asmi_opcode_reg_d[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
asmi_opcode_reg[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) asmi_opcode_reg[7:7] <= 1'b0;
|
||||
else if (wire_asmi_opcode_reg_ena[7:7] == 1'b1) asmi_opcode_reg[7:7] <= wire_asmi_opcode_reg_d[7:7];
|
||||
assign
|
||||
wire_asmi_opcode_reg_d = {((((((((((((((((({7{(load_opcode & do_read_sid)}} & rsid_opcode[7:1]) | ({7{(load_opcode & do_read_rdid)}} & rdid_opcode[7:1])) | ({7{(((load_opcode & do_sec_prot) & (~ do_wren)) & (~ do_read_stat))}} & secprot_opcode[7:1])) | ({7{(load_opcode & do_read)}} & read_opcode[7:1])) | ({7{(load_opcode & do_fast_read)}} & fast_read_opcode[7:1])) | ({7{((((load_opcode & do_read_volatile) & (~ do_write_volatile)) & (~ do_wren)) & (~ do_read_stat))}} & rdummyclk_opcode[7:1])) | ({7{((((load_opcode & do_write_volatile) & (~ do_read_volatile)) & (~ do_wren)) & (~ do_read_stat))}} & wrvolatile_opcode[7:1])) | ({7{(load_opcode & do_read_nonvolatile)}} & rnvdummyclk_opcode[7:1])) | ({7{(load_opcode & ((do_write & (~ do_read_stat)) & (~ do_wren)))}} & write_opcode[7:1])) | ({7{((load_opcode & do_read_stat) & (~ do_polling))}} & rstat_opcode[7:1])) | ({7{((load_opcode & do_read_stat) & do_polling)}} & rflagstat_opcode[7:1])) | ({7{(((load_opcode & do_sec_erase) & (~ do_wren)) & (~ do_read_stat))}} & serase_opcode[7:1])) | ({7{(((load_opcode & do_die_erase) & (~ do_wren)) & (~ do_read_stat))}} & derase_opcode[7:1])) | ({7{(((load_opcode & do_bulk_erase) & (~ do_wren)) & (~ do_read_stat))}} & berase_opcode[7:1])) | ({7{(load_opcode & do_wren)}} & wren_opcode[7:1])) | ({7{(load_opcode & ((do_4baddr & (~ do_read_stat)) & (~ do_wren)))}} & b4addr_opcode[7:1])) | ({7{shift_opcode}} & asmi_opcode_reg[6:0])), (((((((((((((((((load_opcode & do_read_sid) & rsid_opcode[0]) | ((load_opcode & do_read_rdid) & rdid_opcode[0])) | ((((load_opcode & do_sec_prot) & (~ do_wren)) & (~ do_read_stat)) & secprot_opcode[0])) | ((load_opcode & do_read) & read_opcode[0])) | ((load_opcode & do_fast_read) & fast_read_opcode[0])) | (((((load_opcode & do_read_volatile) & (~ do_write_volatile)) & (~ do_wren)) & (~ do_read_stat)) & rdummyclk_opcode[0])) | (((((load_opcode & do_write_volatile) & (~ do_read_volatile)) & (~ do_wren)) & (~ do_read_stat)) & wrvolatile_opcode[0])) | ((load_opcode & do_read_nonvolatile) & rnvdummyclk_opcode[0]
|
||||
)) | ((load_opcode & ((do_write & (~ do_read_stat)) & (~ do_wren))) & write_opcode[0])) | (((load_opcode & do_read_stat) & (~ do_polling)) & rstat_opcode[0])) | (((load_opcode & do_read_stat) & do_polling) & rflagstat_opcode[0])) | ((((load_opcode & do_sec_erase) & (~ do_wren)) & (~ do_read_stat)) & serase_opcode[0])) | ((((load_opcode & do_die_erase) & (~ do_wren)) & (~ do_read_stat)) & derase_opcode[0])) | ((((load_opcode & do_bulk_erase) & (~ do_wren)) & (~ do_read_stat)) & berase_opcode[0])) | ((load_opcode & do_wren) & wren_opcode[0])) | ((load_opcode & ((do_4baddr & (~ do_read_stat)) & (~ do_wren))) & b4addr_opcode[0]))};
|
||||
assign
|
||||
wire_asmi_opcode_reg_ena = {8{(load_opcode | shift_opcode)}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
busy_det_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) busy_det_reg <= 1'b0;
|
||||
else busy_det_reg <= (~ busy_wire);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
clr_read_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) clr_read_reg <= 1'b0;
|
||||
else clr_read_reg <= ((do_read_sid | do_sec_prot) | end_operation);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
clr_read_reg2 = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) clr_read_reg2 <= 1'b0;
|
||||
else clr_read_reg2 <= clr_read_reg;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
dffe3 = 0;
|
||||
// synopsys translate_on
|
||||
// synopsys translate_off
|
||||
initial
|
||||
dvalid_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) dvalid_reg <= 1'b0;
|
||||
else if (wire_dvalid_reg_ena == 1'b1)
|
||||
if (wire_dvalid_reg_sclr == 1'b1) dvalid_reg <= 1'b0;
|
||||
else dvalid_reg <= (end_read_byte & end_one_cyc_pos);
|
||||
assign
|
||||
wire_dvalid_reg_ena = (do_read | do_fast_read),
|
||||
wire_dvalid_reg_sclr = (end_op_wire | end_operation);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
dvalid_reg2 = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) dvalid_reg2 <= 1'b0;
|
||||
else dvalid_reg2 <= dvalid_reg;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end1_cyc_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end1_cyc_reg <= 1'b0;
|
||||
else end1_cyc_reg <= end1_cyc_reg_in_wire;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end1_cyc_reg2 = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end1_cyc_reg2 <= 1'b0;
|
||||
else end1_cyc_reg2 <= end_one_cycle;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end_op_hdlyreg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end_op_hdlyreg <= 1'b0;
|
||||
else end_op_hdlyreg <= end_operation;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end_op_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end_op_reg <= 1'b0;
|
||||
else end_op_reg <= end_op_wire;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end_rbyte_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end_rbyte_reg <= 1'b0;
|
||||
else if (wire_end_rbyte_reg_ena == 1'b1)
|
||||
if (wire_end_rbyte_reg_sclr == 1'b1) end_rbyte_reg <= 1'b0;
|
||||
else end_rbyte_reg <= (((do_read | do_fast_read) & wire_stage_cntr_q[1]) & (~ wire_stage_cntr_q[0]));
|
||||
assign
|
||||
wire_end_rbyte_reg_ena = (((wire_gen_cntr_q[2] & (~ wire_gen_cntr_q[1])) & wire_gen_cntr_q[0]) | clr_endrbyte_wire),
|
||||
wire_end_rbyte_reg_sclr = (clr_endrbyte_wire | addr_overdie);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
end_read_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) end_read_reg <= 1'b0;
|
||||
else end_read_reg <= ((((~ rden_wire) & (do_read | do_fast_read)) & data_valid_wire) & end_read_byte);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
ncs_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) ncs_reg <= 1'b0;
|
||||
else if (wire_ncs_reg_ena == 1'b1)
|
||||
if (wire_ncs_reg_sclr == 1'b1) ncs_reg <= 1'b0;
|
||||
else ncs_reg <= 1'b1;
|
||||
assign
|
||||
wire_ncs_reg_ena = (((((~ wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]) & end_one_cyc_pos) | addr_overdie_pos) | end_operation),
|
||||
wire_ncs_reg_sclr = (end_operation | addr_overdie_pos);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[0:0] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[0:0] == 1'b1) read_data_reg[0:0] <= wire_read_data_reg_d[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[1:1] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[1:1] == 1'b1) read_data_reg[1:1] <= wire_read_data_reg_d[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[2:2] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[2:2] == 1'b1) read_data_reg[2:2] <= wire_read_data_reg_d[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[3:3] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[3:3] == 1'b1) read_data_reg[3:3] <= wire_read_data_reg_d[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[4:4] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[4:4] == 1'b1) read_data_reg[4:4] <= wire_read_data_reg_d[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[5:5] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[5:5] == 1'b1) read_data_reg[5:5] <= wire_read_data_reg_d[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[6:6] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[6:6] == 1'b1) read_data_reg[6:6] <= wire_read_data_reg_d[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_data_reg[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_data_reg[7:7] <= 1'b0;
|
||||
else if (wire_read_data_reg_ena[7:7] == 1'b1) read_data_reg[7:7] <= wire_read_data_reg_d[7:7];
|
||||
assign
|
||||
wire_read_data_reg_d = {read_data_reg_in_wire[7:0]};
|
||||
assign
|
||||
wire_read_data_reg_ena = {8{(((((do_read | do_fast_read) & wire_stage_cntr_q[1]) & (~ wire_stage_cntr_q[0])) & end_one_cyc_pos) & end_read_byte)}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[0:0] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[0:0] == 1'b1) read_dout_reg[0:0] <= wire_read_dout_reg_d[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[1:1] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[1:1] == 1'b1) read_dout_reg[1:1] <= wire_read_dout_reg_d[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[2:2] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[2:2] == 1'b1) read_dout_reg[2:2] <= wire_read_dout_reg_d[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[3:3] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[3:3] == 1'b1) read_dout_reg[3:3] <= wire_read_dout_reg_d[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[4:4] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[4:4] == 1'b1) read_dout_reg[4:4] <= wire_read_dout_reg_d[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[5:5] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[5:5] == 1'b1) read_dout_reg[5:5] <= wire_read_dout_reg_d[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[6:6] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[6:6] == 1'b1) read_dout_reg[6:6] <= wire_read_dout_reg_d[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_dout_reg[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_dout_reg[7:7] <= 1'b0;
|
||||
else if (wire_read_dout_reg_ena[7:7] == 1'b1) read_dout_reg[7:7] <= wire_read_dout_reg_d[7:7];
|
||||
assign
|
||||
wire_read_dout_reg_d = {read_dout_reg[6:0], (data0out_wire | dataout_wire[1])};
|
||||
assign
|
||||
wire_read_dout_reg_ena = {8{((stage4_wire & ((do_read | do_fast_read) | do_read_sid)) | (stage3_wire & (((do_read_stat | do_read_rdid) | do_read_volatile) | do_read_nonvolatile)))}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
read_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) read_reg <= 1'b0;
|
||||
else if (wire_read_reg_ena == 1'b1)
|
||||
if (clr_read_wire == 1'b1) read_reg <= 1'b0;
|
||||
else read_reg <= read;
|
||||
assign
|
||||
wire_read_reg_ena = (((~ busy_wire) & rden_wire) | clr_read_wire);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
shift_op_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) shift_op_reg <= 1'b0;
|
||||
else shift_op_reg <= ((~ wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
stage2_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) stage2_reg <= 1'b0;
|
||||
else stage2_reg <= ((~ wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
stage3_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) stage3_reg <= 1'b0;
|
||||
else stage3_reg <= (wire_stage_cntr_q[1] & wire_stage_cntr_q[0]);
|
||||
// synopsys translate_off
|
||||
initial
|
||||
stage4_reg = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( negedge clkin_wire or posedge reset)
|
||||
if (reset == 1'b1) stage4_reg <= 1'b0;
|
||||
else stage4_reg <= (wire_stage_cntr_q[1] & (~ wire_stage_cntr_q[0]));
|
||||
assign wire_mux211_dataout = (do_fast_read === 1'b1) ? end_add_cycle_mux_datab_wire : (wire_addbyte_cntr_q[1] & (~ wire_addbyte_cntr_q[0]));
|
||||
assign
|
||||
addr_overdie = 1'b0,
|
||||
addr_overdie_pos = 1'b0,
|
||||
addr_reg_overdie = {24{1'b0}},
|
||||
b4addr_opcode = {8{1'b0}},
|
||||
berase_opcode = {8{1'b0}},
|
||||
busy = busy_wire,
|
||||
busy_wire = (((((((((((((do_read_rdid | do_read_sid) | do_read) | do_fast_read) | do_write) | do_sec_prot) | do_read_stat) | do_sec_erase) | do_bulk_erase) | do_die_erase) | do_4baddr) | do_read_volatile) | do_fread_epcq) | do_read_nonvolatile),
|
||||
clkin_wire = clkin,
|
||||
clr_addmsb_wire = (((((wire_stage_cntr_q[1] & (~ wire_stage_cntr_q[0])) & end_add_cycle) & end_one_cyc_pos) | (((~ do_read) & (~ do_fast_read)) & clr_write_wire2)) | ((((do_sec_erase | do_die_erase) & (~ do_wren)) & (~ do_read_stat)) & end_operation)),
|
||||
clr_endrbyte_wire = (((((do_read | do_fast_read) & (~ wire_gen_cntr_q[2])) & wire_gen_cntr_q[1]) & wire_gen_cntr_q[0]) | clr_read_wire2),
|
||||
clr_read_wire = clr_read_reg,
|
||||
clr_read_wire2 = clr_read_reg2,
|
||||
clr_write_wire2 = 1'b0,
|
||||
data0out_wire = wire_cyclone_asmiblock2_data0out,
|
||||
data_valid = data_valid_wire,
|
||||
data_valid_wire = dvalid_reg2,
|
||||
datain_wire = {{4{1'b0}}},
|
||||
dataout = {read_data_reg[7:0]},
|
||||
dataout_wire = {{4{1'b0}}},
|
||||
derase_opcode = {8{1'b0}},
|
||||
do_4baddr = 1'b0,
|
||||
do_bulk_erase = 1'b0,
|
||||
do_die_erase = 1'b0,
|
||||
do_fast_read = 1'b0,
|
||||
do_fread_epcq = 1'b0,
|
||||
do_freadwrv_polling = 1'b0,
|
||||
do_memadd = 1'b0,
|
||||
do_polling = ((do_write_polling | do_sprot_polling) | do_freadwrv_polling),
|
||||
do_read = ((((~ read_rdid_wire) & (~ read_sid_wire)) & (~ sec_protect_wire)) & read_wire),
|
||||
do_read_nonvolatile = 1'b0,
|
||||
do_read_rdid = 1'b0,
|
||||
do_read_sid = 1'b0,
|
||||
do_read_stat = 1'b0,
|
||||
do_read_volatile = 1'b0,
|
||||
do_sec_erase = 1'b0,
|
||||
do_sec_prot = 1'b0,
|
||||
do_sprot_polling = 1'b0,
|
||||
do_wait_dummyclk = 1'b0,
|
||||
do_wren = 1'b0,
|
||||
do_write = 1'b0,
|
||||
do_write_polling = 1'b0,
|
||||
do_write_volatile = 1'b0,
|
||||
end1_cyc_gen_cntr_wire = ((wire_gen_cntr_q[2] & (~ wire_gen_cntr_q[1])) & (~ wire_gen_cntr_q[0])),
|
||||
end1_cyc_normal_in_wire = (((((((((((~ wire_stage_cntr_q[0]) & (~ wire_stage_cntr_q[1])) & (~ wire_gen_cntr_q[2])) & wire_gen_cntr_q[1]) & wire_gen_cntr_q[0]) | ((~ ((~ wire_stage_cntr_q[0]) & (~ wire_stage_cntr_q[1]))) & end1_cyc_gen_cntr_wire)) | (do_read & end_read)) | (do_fast_read & end_fast_read)) | ((((do_write | do_sec_erase) | do_bulk_erase) | do_die_erase) & write_prot_true)) | (do_write & (~ pagewr_buf_not_empty[0]))) | ((do_read_stat & start_poll) & (~ st_busy_wire))),
|
||||
end1_cyc_reg_in_wire = end1_cyc_normal_in_wire,
|
||||
end_add_cycle = wire_mux211_dataout,
|
||||
end_add_cycle_mux_datab_wire = (wire_addbyte_cntr_q[2] & wire_addbyte_cntr_q[1]),
|
||||
end_fast_read = end_read_reg,
|
||||
end_one_cyc_pos = end1_cyc_reg2,
|
||||
end_one_cycle = end1_cyc_reg,
|
||||
end_op_wire = ((((((((((((wire_stage_cntr_q[1] & (~ wire_stage_cntr_q[0])) & ((((((~ do_read) & (~ do_fast_read)) & (~ (do_write & shift_pgwr_data))) & end_one_cycle) | (do_read & end_read)) | (do_fast_read & end_fast_read))) | ((((wire_stage_cntr_q[1] & wire_stage_cntr_q[0]) & do_read_stat) & end_one_cycle) & (~ do_polling))) | ((((((do_read_rdid & end_one_cyc_pos) & wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]) & wire_addbyte_cntr_q[2]) & wire_addbyte_cntr_q[1]) & (~ wire_addbyte_cntr_q[0]))) | (((start_poll & do_read_stat) & do_polling) & (~ st_busy_wire))) | ((((~ wire_stage_cntr_q[1]) & wire_stage_cntr_q[0]) & (do_wren | (do_4baddr | (do_bulk_erase & (~ do_read_stat))))) & end_one_cycle)) | ((((do_write | do_sec_erase) | do_bulk_erase) | do_die_erase) & write_prot_true)) | ((do_write & shift_pgwr_data) & end_pgwr_data)) | (do_write & (~ pagewr_buf_not_empty[0]))) | (((((wire_stage_cntr_q[1] & wire_stage_cntr_q[0]) & do_sec_prot) & (~ do_wren)) & (~ do_read_stat)) & end_one_cycle)) | ((((((wire_stage_cntr_q[1] & wire_stage_cntr_q[0]) & (do_sec_erase | do_die_erase)) & (~ do_wren)) & (~ do_read_stat)) & end_add_cycle) & end_one_cycle)) | (((wire_stage_cntr_q[1] & wire_stage_cntr_q[0]) & end_one_cycle) & ((do_write_volatile | do_read_volatile) | (do_read_nonvolatile & wire_addbyte_cntr_q[1])))),
|
||||
end_operation = end_op_reg,
|
||||
end_ophdly = end_op_hdlyreg,
|
||||
end_pgwr_data = 1'b0,
|
||||
end_read = end_read_reg,
|
||||
end_read_byte = (end_rbyte_reg & (~ addr_overdie)),
|
||||
fast_read_opcode = {8{1'b0}},
|
||||
freadwrv_sdoin = 1'b0,
|
||||
in_operation = busy_wire,
|
||||
load_opcode = (((((~ wire_stage_cntr_q[1]) & (~ wire_stage_cntr_q[0])) & (~ wire_gen_cntr_q[2])) & (~ wire_gen_cntr_q[1])) & wire_gen_cntr_q[0]),
|
||||
memadd_sdoin = add_msb_reg,
|
||||
not_busy = busy_det_reg,
|
||||
oe_wire = 1'b0,
|
||||
pagewr_buf_not_empty = {1'b1},
|
||||
rden_wire = rden,
|
||||
rdid_opcode = {8{1'b0}},
|
||||
rdummyclk_opcode = {8{1'b0}},
|
||||
read_data_reg_in_wire = {read_dout_reg[7:0]},
|
||||
read_opcode = 8'b00000011,
|
||||
read_rdid_wire = 1'b0,
|
||||
read_sid_wire = 1'b0,
|
||||
read_wire = read_reg,
|
||||
rflagstat_opcode = {8{1'b0}},
|
||||
rnvdummyclk_opcode = {8{1'b0}},
|
||||
rsid_opcode = {8{1'b0}},
|
||||
rsid_sdoin = 1'b0,
|
||||
rstat_opcode = {8{1'b0}},
|
||||
scein_wire = (~ ncs_reg),
|
||||
sdoin_wire = to_sdoin_wire,
|
||||
sec_protect_wire = 1'b0,
|
||||
secprot_opcode = {8{1'b0}},
|
||||
secprot_sdoin = 1'b0,
|
||||
serase_opcode = {8{1'b0}},
|
||||
shift_opcode = shift_op_reg,
|
||||
shift_opdata = stage2_wire,
|
||||
shift_pgwr_data = 1'b0,
|
||||
st_busy_wire = 1'b0,
|
||||
stage2_wire = stage2_reg,
|
||||
stage3_wire = stage3_reg,
|
||||
stage4_wire = stage4_reg,
|
||||
start_frpoll = 1'b0,
|
||||
start_poll = ((start_wrpoll | start_sppoll) | start_frpoll),
|
||||
start_sppoll = 1'b0,
|
||||
start_wrpoll = 1'b0,
|
||||
to_sdoin_wire = ((((((shift_opdata & asmi_opcode_reg[7]) | rsid_sdoin) | memadd_sdoin) | write_sdoin) | secprot_sdoin) | freadwrv_sdoin),
|
||||
wren_opcode = {8{1'b0}},
|
||||
wren_wire = 1'b1,
|
||||
write_opcode = {8{1'b0}},
|
||||
write_prot_true = 1'b0,
|
||||
write_sdoin = 1'b0,
|
||||
wrvolatile_opcode = {8{1'b0}};
|
||||
endmodule //asmi_altasmi_parallel_gqd2
|
||||
//VALID FILE
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module asmi (
|
||||
addr,
|
||||
clkin,
|
||||
rden,
|
||||
read,
|
||||
reset,
|
||||
busy,
|
||||
data_valid,
|
||||
dataout)/* synthesis synthesis_clearbox = 2 */;
|
||||
|
||||
input [23:0] addr;
|
||||
input clkin;
|
||||
input rden;
|
||||
input read;
|
||||
input reset;
|
||||
output busy;
|
||||
output data_valid;
|
||||
output [7:0] dataout;
|
||||
|
||||
wire [7:0] sub_wire0;
|
||||
wire sub_wire1;
|
||||
wire sub_wire2;
|
||||
wire [7:0] dataout = sub_wire0[7:0];
|
||||
wire busy = sub_wire1;
|
||||
wire data_valid = sub_wire2;
|
||||
|
||||
asmi_altasmi_parallel_gqd2 asmi_altasmi_parallel_gqd2_component (
|
||||
.read (read),
|
||||
.addr (addr),
|
||||
.clkin (clkin),
|
||||
.rden (rden),
|
||||
.reset (reset),
|
||||
.dataout (sub_wire0),
|
||||
.busy (sub_wire1),
|
||||
.data_valid (sub_wire2))/* synthesis synthesis_clearbox=2
|
||||
clearbox_macroname = ALTASMI_PARALLEL
|
||||
clearbox_defparam = "data_width=STANDARD;epcs_type=EPCS4;intended_device_family=Cyclone;lpm_hint=UNUSED;lpm_type=altasmi_parallel;page_size=1;port_bulk_erase=PORT_UNUSED;port_die_erase=PORT_UNUSED;port_en4b_addr=PORT_UNUSED;port_fast_read=PORT_UNUSED;port_illegal_erase=PORT_UNUSED;port_illegal_write=PORT_UNUSED;port_rdid_out=PORT_UNUSED;port_read_address=PORT_UNUSED;port_read_dummyclk=PORT_UNUSED;port_read_rdid=PORT_UNUSED;port_read_sid=PORT_UNUSED;port_read_status=PORT_UNUSED;port_sector_erase=PORT_UNUSED;port_sector_protect=PORT_UNUSED;port_shift_bytes=PORT_UNUSED;port_wren=PORT_UNUSED;port_write=PORT_UNUSED;use_asmiblock=ON;use_eab=ON;write_dummy_clk=0;" */;
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: CONSTANT: DATA_WIDTH STRING "STANDARD"
|
||||
// Retrieval info: CONSTANT: EPCS_TYPE STRING "EPCS4"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: CONSTANT: LPM_HINT STRING "UNUSED"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altasmi_parallel"
|
||||
// Retrieval info: CONSTANT: PAGE_SIZE NUMERIC "1"
|
||||
// Retrieval info: CONSTANT: PORT_BULK_ERASE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_DIE_ERASE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_EN4B_ADDR STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_FAST_READ STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_ILLEGAL_ERASE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_ILLEGAL_WRITE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_RDID_OUT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_READ_ADDRESS STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_READ_DUMMYCLK STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_READ_RDID STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_READ_SID STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_READ_STATUS STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SECTOR_ERASE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SECTOR_PROTECT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SHIFT_BYTES STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_WREN STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_WRITE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: USE_ASMIBLOCK STRING "ON"
|
||||
// Retrieval info: CONSTANT: USE_EAB STRING "ON"
|
||||
// Retrieval info: CONSTANT: WRITE_DUMMY_CLK NUMERIC "0"
|
||||
// Retrieval info: USED_PORT: addr 0 0 24 0 INPUT NODEFVAL "addr[23..0]"
|
||||
// Retrieval info: CONNECT: @addr 0 0 24 0 addr 0 0 24 0
|
||||
// Retrieval info: USED_PORT: busy 0 0 0 0 OUTPUT NODEFVAL "busy"
|
||||
// Retrieval info: CONNECT: busy 0 0 0 0 @busy 0 0 0 0
|
||||
// Retrieval info: USED_PORT: clkin 0 0 0 0 INPUT NODEFVAL "clkin"
|
||||
// Retrieval info: CONNECT: @clkin 0 0 0 0 clkin 0 0 0 0
|
||||
// Retrieval info: USED_PORT: data_valid 0 0 0 0 OUTPUT NODEFVAL "data_valid"
|
||||
// Retrieval info: CONNECT: data_valid 0 0 0 0 @data_valid 0 0 0 0
|
||||
// Retrieval info: USED_PORT: dataout 0 0 8 0 OUTPUT NODEFVAL "dataout[7..0]"
|
||||
// Retrieval info: CONNECT: dataout 0 0 8 0 @dataout 0 0 8 0
|
||||
// Retrieval info: USED_PORT: rden 0 0 0 0 INPUT NODEFVAL "rden"
|
||||
// Retrieval info: CONNECT: @rden 0 0 0 0 rden 0 0 0 0
|
||||
// Retrieval info: USED_PORT: read 0 0 0 0 INPUT NODEFVAL "read"
|
||||
// Retrieval info: CONNECT: @read 0 0 0 0 read 0 0 0 0
|
||||
// Retrieval info: USED_PORT: reset 0 0 0 0 INPUT NODEFVAL "reset"
|
||||
// Retrieval info: CONNECT: @reset 0 0 0 0 reset 0 0 0 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi.v TRUE FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi.qip TRUE FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi.bsf FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi_inst.v FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi_bb.v FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi.inc FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL asmi.cmp FALSE TRUE
|
11
fpga/syn/ip/pll.ppf
Executable file
11
fpga/syn/ip/pll.ppf
Executable file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE pinplan>
|
||||
<pinplan intended_family="Cyclone" variation_name="pll" megafunction_name="ALTPLL" specifies="all_ports">
|
||||
<global>
|
||||
<pin name="inclk0" direction="input" scope="external" source="clock" />
|
||||
<pin name="c0" direction="output" scope="external" source="clock" />
|
||||
<pin name="c1" direction="output" scope="external" source="clock" />
|
||||
<pin name="locked" direction="output" scope="external" />
|
||||
|
||||
</global>
|
||||
</pinplan>
|
4
fpga/syn/ip/pll.qip
Executable file
4
fpga/syn/ip/pll.qip
Executable file
@ -0,0 +1,4 @@
|
||||
set_global_assignment -name IP_TOOL_NAME "ALTPLL"
|
||||
set_global_assignment -name IP_TOOL_VERSION "13.0"
|
||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "pll.v"]
|
||||
set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "pll.ppf"]
|
335
fpga/syn/ip/pll.v
Executable file
335
fpga/syn/ip/pll.v
Executable file
@ -0,0 +1,335 @@
|
||||
// megafunction wizard: %ALTPLL%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: altpll
|
||||
|
||||
// ============================================================
|
||||
// File Name: pll.v
|
||||
// Megafunction Name(s):
|
||||
// altpll
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// altera_mf
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 13.0.1 Build 232 06/12/2013 SP 1 SJ Full Version
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//Copyright (C) 1991-2013 Altera Corporation
|
||||
//Your use of Altera Corporation's design tools, logic functions
|
||||
//and other software and tools, and its AMPP partner logic
|
||||
//functions, and any output files from any of the foregoing
|
||||
//(including device programming or simulation files), and any
|
||||
//associated documentation or information are expressly subject
|
||||
//to the terms and conditions of the Altera Program License
|
||||
//Subscription Agreement, Altera MegaCore Function License
|
||||
//Agreement, or other applicable license agreement, including,
|
||||
//without limitation, that your use is for the sole purpose of
|
||||
//programming logic devices manufactured by Altera and sold by
|
||||
//Altera or its authorized distributors. Please refer to the
|
||||
//applicable agreement for further details.
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module pll (
|
||||
inclk0,
|
||||
c0,
|
||||
c1,
|
||||
locked);
|
||||
|
||||
input inclk0;
|
||||
output c0;
|
||||
output c1;
|
||||
output locked;
|
||||
|
||||
wire [5:0] sub_wire0;
|
||||
wire sub_wire2;
|
||||
wire [0:0] sub_wire6 = 1'h0;
|
||||
wire [0:0] sub_wire3 = sub_wire0[0:0];
|
||||
wire [1:1] sub_wire1 = sub_wire0[1:1];
|
||||
wire c1 = sub_wire1;
|
||||
wire locked = sub_wire2;
|
||||
wire c0 = sub_wire3;
|
||||
wire sub_wire4 = inclk0;
|
||||
wire [1:0] sub_wire5 = {sub_wire6, sub_wire4};
|
||||
|
||||
altpll altpll_component (
|
||||
.inclk (sub_wire5),
|
||||
.clk (sub_wire0),
|
||||
.locked (sub_wire2),
|
||||
.activeclock (),
|
||||
.areset (1'b0),
|
||||
.clkbad (),
|
||||
.clkena ({6{1'b1}}),
|
||||
.clkloss (),
|
||||
.clkswitch (1'b0),
|
||||
.configupdate (1'b0),
|
||||
.enable0 (),
|
||||
.enable1 (),
|
||||
.extclk (),
|
||||
.extclkena ({4{1'b1}}),
|
||||
.fbin (1'b1),
|
||||
.fbmimicbidir (),
|
||||
.fbout (),
|
||||
.fref (),
|
||||
.icdrclk (),
|
||||
.pfdena (1'b1),
|
||||
.phasecounterselect ({4{1'b1}}),
|
||||
.phasedone (),
|
||||
.phasestep (1'b1),
|
||||
.phaseupdown (1'b1),
|
||||
.pllena (1'b1),
|
||||
.scanaclr (1'b0),
|
||||
.scanclk (1'b0),
|
||||
.scanclkena (1'b1),
|
||||
.scandata (1'b0),
|
||||
.scandataout (),
|
||||
.scandone (),
|
||||
.scanread (1'b0),
|
||||
.scanwrite (1'b0),
|
||||
.sclkout0 (),
|
||||
.sclkout1 (),
|
||||
.vcooverrange (),
|
||||
.vcounderrange ());
|
||||
defparam
|
||||
altpll_component.clk0_divide_by = 7,
|
||||
altpll_component.clk0_duty_cycle = 50,
|
||||
altpll_component.clk0_multiply_by = 10,
|
||||
altpll_component.clk0_phase_shift = "0",
|
||||
altpll_component.clk1_divide_by = 7,
|
||||
altpll_component.clk1_duty_cycle = 50,
|
||||
altpll_component.clk1_multiply_by = 5,
|
||||
altpll_component.clk1_phase_shift = "0",
|
||||
altpll_component.compensate_clock = "CLK0",
|
||||
altpll_component.inclk0_input_frequency = 35714,
|
||||
altpll_component.intended_device_family = "Cyclone",
|
||||
altpll_component.invalid_lock_multiplier = 5,
|
||||
altpll_component.lpm_hint = "CBX_MODULE_PREFIX=pll",
|
||||
altpll_component.lpm_type = "altpll",
|
||||
altpll_component.operation_mode = "NORMAL",
|
||||
altpll_component.pll_type = "AUTO",
|
||||
altpll_component.port_activeclock = "PORT_UNUSED",
|
||||
altpll_component.port_areset = "PORT_UNUSED",
|
||||
altpll_component.port_clkbad0 = "PORT_UNUSED",
|
||||
altpll_component.port_clkbad1 = "PORT_UNUSED",
|
||||
altpll_component.port_clkloss = "PORT_UNUSED",
|
||||
altpll_component.port_clkswitch = "PORT_UNUSED",
|
||||
altpll_component.port_configupdate = "PORT_UNUSED",
|
||||
altpll_component.port_fbin = "PORT_UNUSED",
|
||||
altpll_component.port_inclk0 = "PORT_USED",
|
||||
altpll_component.port_inclk1 = "PORT_UNUSED",
|
||||
altpll_component.port_locked = "PORT_USED",
|
||||
altpll_component.port_pfdena = "PORT_UNUSED",
|
||||
altpll_component.port_phasecounterselect = "PORT_UNUSED",
|
||||
altpll_component.port_phasedone = "PORT_UNUSED",
|
||||
altpll_component.port_phasestep = "PORT_UNUSED",
|
||||
altpll_component.port_phaseupdown = "PORT_UNUSED",
|
||||
altpll_component.port_pllena = "PORT_UNUSED",
|
||||
altpll_component.port_scanaclr = "PORT_UNUSED",
|
||||
altpll_component.port_scanclk = "PORT_UNUSED",
|
||||
altpll_component.port_scanclkena = "PORT_UNUSED",
|
||||
altpll_component.port_scandata = "PORT_UNUSED",
|
||||
altpll_component.port_scandataout = "PORT_UNUSED",
|
||||
altpll_component.port_scandone = "PORT_UNUSED",
|
||||
altpll_component.port_scanread = "PORT_UNUSED",
|
||||
altpll_component.port_scanwrite = "PORT_UNUSED",
|
||||
altpll_component.port_clk0 = "PORT_USED",
|
||||
altpll_component.port_clk1 = "PORT_USED",
|
||||
altpll_component.port_clk3 = "PORT_UNUSED",
|
||||
altpll_component.port_clk4 = "PORT_UNUSED",
|
||||
altpll_component.port_clk5 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena0 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena1 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena3 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena4 = "PORT_UNUSED",
|
||||
altpll_component.port_clkena5 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk0 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk1 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk2 = "PORT_UNUSED",
|
||||
altpll_component.port_extclk3 = "PORT_UNUSED",
|
||||
altpll_component.valid_lock_multiplier = 1;
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH STRING "1.000"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_USE_CUSTOM STRING "0"
|
||||
// Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0"
|
||||
// Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "e0"
|
||||
// Retrieval info: PRIVATE: DEVICE_FAMILY NUMERIC "11"
|
||||
// Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8"
|
||||
// Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "4"
|
||||
// Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000"
|
||||
// Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000"
|
||||
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "40.000000"
|
||||
// Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "20.000000"
|
||||
// Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0"
|
||||
// Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575"
|
||||
// Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "28.000"
|
||||
// Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1"
|
||||
// Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz"
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "1"
|
||||
// Retrieval info: PRIVATE: LOCK_LOSS_SWITCHOVER_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "Not Available"
|
||||
// Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg"
|
||||
// Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "ps"
|
||||
// Retrieval info: PRIVATE: MIG_DEVICE_SPEED_GRADE STRING "Any"
|
||||
// Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0"
|
||||
// Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0"
|
||||
// Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "2"
|
||||
// Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "40.00000000"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "20.00000000"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "1"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz"
|
||||
// Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz"
|
||||
// Retrieval info: PRIVATE: PHASE_RECONFIG_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: PHASE_RECONFIG_INPUTS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_STEP_ENABLED_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg"
|
||||
// Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "ps"
|
||||
// Retrieval info: PRIVATE: PLL_ADVANCED_PARAM_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: PLL_ENA_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_FBMIMIC_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: PLL_TARGET_HARCOPY_CHECK NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0"
|
||||
// Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0"
|
||||
// Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: SELF_RESET_LOCK_LOSS STRING "0"
|
||||
// Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000"
|
||||
// Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz"
|
||||
// Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500"
|
||||
// Retrieval info: PRIVATE: SPREAD_USE STRING "0"
|
||||
// Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0"
|
||||
// Retrieval info: PRIVATE: STICKY_CLK0 STRING "1"
|
||||
// Retrieval info: PRIVATE: STICKY_CLK1 STRING "1"
|
||||
// Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1"
|
||||
// Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "0"
|
||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_CLK0 STRING "1"
|
||||
// Retrieval info: PRIVATE: USE_CLK1 STRING "1"
|
||||
// Retrieval info: PRIVATE: USE_CLKENA0 STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_CLKENA1 STRING "0"
|
||||
// Retrieval info: PRIVATE: USE_MIL_SPEED_GRADE NUMERIC "0"
|
||||
// Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0"
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "7"
|
||||
// Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50"
|
||||
// Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "10"
|
||||
// Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0"
|
||||
// Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "7"
|
||||
// Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50"
|
||||
// Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "5"
|
||||
// Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0"
|
||||
// Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0"
|
||||
// Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "35714"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: CONSTANT: INVALID_LOCK_MULTIPLIER NUMERIC "5"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altpll"
|
||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL"
|
||||
// Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO"
|
||||
// Retrieval info: CONSTANT: PORT_ACTIVECLOCK STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_ARESET STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKBAD0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKBAD1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKLOSS STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CLKSWITCH STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_CONFIGUPDATE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_FBIN STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_INCLK0 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_INCLK1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_LOCKED STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_PFDENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASECOUNTERSELECT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASEDONE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASESTEP STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PHASEUPDOWN STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_PLLENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANACLR STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANCLK STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANCLKENA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDATA STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDATAOUT STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANDONE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANREAD STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_SCANWRITE STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk0 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_clk1 STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: PORT_clk3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk4 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clk5 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena4 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_clkena5 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk0 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk1 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk2 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: PORT_extclk3 STRING "PORT_UNUSED"
|
||||
// Retrieval info: CONSTANT: VALID_LOCK_MULTIPLIER NUMERIC "1"
|
||||
// Retrieval info: USED_PORT: @clk 0 0 6 0 OUTPUT_CLK_EXT VCC "@clk[5..0]"
|
||||
// Retrieval info: USED_PORT: @extclk 0 0 4 0 OUTPUT_CLK_EXT VCC "@extclk[3..0]"
|
||||
// Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT_CLK_EXT VCC "c0"
|
||||
// Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT_CLK_EXT VCC "c1"
|
||||
// Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT_CLK_EXT GND "inclk0"
|
||||
// Retrieval info: USED_PORT: locked 0 0 0 0 OUTPUT GND "locked"
|
||||
// Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0
|
||||
// Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0
|
||||
// Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0
|
||||
// Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1
|
||||
// Retrieval info: CONNECT: locked 0 0 0 0 @locked 0 0 0 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.ppf TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.inc FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.cmp FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll.bsf FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_inst.v FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL pll_bb.v FALSE
|
||||
// Retrieval info: LIB_FILE: altera_mf
|
||||
// Retrieval info: CBX_MODULE_PREFIX: ON
|
3
fpga/syn/ip/rom2ram.qip
Executable file
3
fpga/syn/ip/rom2ram.qip
Executable file
@ -0,0 +1,3 @@
|
||||
set_global_assignment -name IP_TOOL_NAME "RAM initializer"
|
||||
set_global_assignment -name IP_TOOL_VERSION "13.0"
|
||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "rom2ram.v"]
|
518
fpga/syn/ip/rom2ram.v
Executable file
518
fpga/syn/ip/rom2ram.v
Executable file
@ -0,0 +1,518 @@
|
||||
// megafunction wizard: %RAM initializer%
|
||||
// GENERATION: STANDARD
|
||||
// VERSION: WM1.0
|
||||
// MODULE: ALTMEM_INIT
|
||||
|
||||
// ============================================================
|
||||
// File Name: rom2ram.v
|
||||
// Megafunction Name(s):
|
||||
// ALTMEM_INIT
|
||||
//
|
||||
// Simulation Library Files(s):
|
||||
// lpm
|
||||
// ============================================================
|
||||
// ************************************************************
|
||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
||||
//
|
||||
// 13.0.1 Build 232 06/12/2013 SP 1 SJ Full Version
|
||||
// ************************************************************
|
||||
|
||||
|
||||
//Copyright (C) 1991-2013 Altera Corporation
|
||||
//Your use of Altera Corporation's design tools, logic functions
|
||||
//and other software and tools, and its AMPP partner logic
|
||||
//functions, and any output files from any of the foregoing
|
||||
//(including device programming or simulation files), and any
|
||||
//associated documentation or information are expressly subject
|
||||
//to the terms and conditions of the Altera Program License
|
||||
//Subscription Agreement, Altera MegaCore Function License
|
||||
//Agreement, or other applicable license agreement, including,
|
||||
//without limitation, that your use is for the sole purpose of
|
||||
//programming logic devices manufactured by Altera and sold by
|
||||
//Altera or its authorized distributors. Please refer to the
|
||||
//applicable agreement for further details.
|
||||
|
||||
|
||||
//altmem_init CBX_AUTO_BLACKBOX="ALL" DEVICE_FAMILY="Cyclone" INIT_TO_ZERO="NO" NUMWORDS=32768 PORT_ROM_DATA_READY="PORT_USED" ROM_READ_LATENCY=1 WIDTH=8 WIDTHAD=15 clock datain dataout init init_busy ram_address ram_wren rom_address rom_data_ready rom_rden
|
||||
//VERSION_BEGIN 13.0 cbx_altmem_init 2013:06:12:18:03:33:SJ cbx_altsyncram 2013:06:12:18:03:33:SJ cbx_cycloneii 2013:06:12:18:03:33:SJ cbx_lpm_add_sub 2013:06:12:18:03:33:SJ cbx_lpm_compare 2013:06:12:18:03:33:SJ cbx_lpm_counter 2013:06:12:18:03:33:SJ cbx_lpm_decode 2013:06:12:18:03:33:SJ cbx_lpm_mux 2013:06:12:18:03:33:SJ cbx_mgl 2013:06:12:18:33:59:SJ cbx_stratix 2013:06:12:18:03:33:SJ cbx_stratixii 2013:06:12:18:03:33:SJ cbx_stratixiii 2013:06:12:18:03:33:SJ cbx_stratixv 2013:06:12:18:03:33:SJ cbx_util_mgl 2013:06:12:18:03:33:SJ VERSION_END
|
||||
// synthesis VERILOG_INPUT_VERSION VERILOG_2001
|
||||
// altera message_off 10463
|
||||
|
||||
|
||||
//synthesis_resources = lpm_compare 2 lpm_counter 2 lut 30
|
||||
//synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
//synopsys translate_on
|
||||
module rom2ram_meminit_kqn
|
||||
(
|
||||
clock,
|
||||
datain,
|
||||
dataout,
|
||||
init,
|
||||
init_busy,
|
||||
ram_address,
|
||||
ram_wren,
|
||||
rom_address,
|
||||
rom_data_ready,
|
||||
rom_rden) ;
|
||||
input clock;
|
||||
input [7:0] datain;
|
||||
output [7:0] dataout;
|
||||
input init;
|
||||
output init_busy;
|
||||
output [14:0] ram_address;
|
||||
output ram_wren;
|
||||
output [14:0] rom_address;
|
||||
input rom_data_ready;
|
||||
output rom_rden;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
tri0 [7:0] datain;
|
||||
tri0 rom_data_ready;
|
||||
`ifndef ALTERA_RESERVED_QIS
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
|
||||
reg [0:0] capture_init;
|
||||
reg [14:0] delay_addr;
|
||||
wire [14:0] wire_delay_addr_ena;
|
||||
reg [7:0] delay_data;
|
||||
wire [7:0] wire_delay_data_ena;
|
||||
reg [2:0] prev_state;
|
||||
wire [2:0] wire_state_reg_d;
|
||||
reg [2:0] state_reg;
|
||||
wire [2:0] wire_state_reg_sclr;
|
||||
wire [2:0] wire_state_reg_sload;
|
||||
wire wire_addr_cmpr_aeb;
|
||||
wire wire_addr_cmpr_alb;
|
||||
wire wire_wait_cmpr_aeb;
|
||||
wire wire_wait_cmpr_alb;
|
||||
wire [14:0] wire_addr_ctr_q;
|
||||
wire [0:0] wire_wait_ctr_q;
|
||||
wire [0:0] addrct_eq_numwords;
|
||||
wire [0:0] addrct_lt_numwords;
|
||||
wire clken;
|
||||
wire [7:0] dataout_w;
|
||||
wire [0:0] done_state;
|
||||
wire [0:0] idle_state;
|
||||
wire [0:0] ram_write_state;
|
||||
wire [0:0] reset_state_machine;
|
||||
wire [0:0] rom_addr_state;
|
||||
wire [0:0] rom_data_capture_state;
|
||||
wire [0:0] state_machine_clken;
|
||||
|
||||
// synopsys translate_off
|
||||
initial
|
||||
capture_init = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (clken == 1'b1) capture_init <= ((init | capture_init) & (~ done_state));
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[0:0] == 1'b1) delay_addr[0:0] <= wire_addr_ctr_q[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[1:1] == 1'b1) delay_addr[1:1] <= wire_addr_ctr_q[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[2:2] == 1'b1) delay_addr[2:2] <= wire_addr_ctr_q[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[3:3] == 1'b1) delay_addr[3:3] <= wire_addr_ctr_q[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[4:4] == 1'b1) delay_addr[4:4] <= wire_addr_ctr_q[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[5:5] == 1'b1) delay_addr[5:5] <= wire_addr_ctr_q[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[6:6] == 1'b1) delay_addr[6:6] <= wire_addr_ctr_q[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[7:7] == 1'b1) delay_addr[7:7] <= wire_addr_ctr_q[7:7];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[8:8] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[8:8] == 1'b1) delay_addr[8:8] <= wire_addr_ctr_q[8:8];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[9:9] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[9:9] == 1'b1) delay_addr[9:9] <= wire_addr_ctr_q[9:9];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[10:10] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[10:10] == 1'b1) delay_addr[10:10] <= wire_addr_ctr_q[10:10];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[11:11] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[11:11] == 1'b1) delay_addr[11:11] <= wire_addr_ctr_q[11:11];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[12:12] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[12:12] == 1'b1) delay_addr[12:12] <= wire_addr_ctr_q[12:12];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[13:13] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[13:13] == 1'b1) delay_addr[13:13] <= wire_addr_ctr_q[13:13];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_addr[14:14] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_addr_ena[14:14] == 1'b1) delay_addr[14:14] <= wire_addr_ctr_q[14:14];
|
||||
assign
|
||||
wire_delay_addr_ena = {15{(clken & rom_data_capture_state)}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[0:0] == 1'b1) delay_data[0:0] <= datain[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[1:1] == 1'b1) delay_data[1:1] <= datain[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[2:2] == 1'b1) delay_data[2:2] <= datain[2:2];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[3:3] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[3:3] == 1'b1) delay_data[3:3] <= datain[3:3];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[4:4] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[4:4] == 1'b1) delay_data[4:4] <= datain[4:4];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[5:5] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[5:5] == 1'b1) delay_data[5:5] <= datain[5:5];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[6:6] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[6:6] == 1'b1) delay_data[6:6] <= datain[6:6];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
delay_data[7:7] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (wire_delay_data_ena[7:7] == 1'b1) delay_data[7:7] <= datain[7:7];
|
||||
assign
|
||||
wire_delay_data_ena = {8{(clken & rom_data_capture_state)}};
|
||||
// synopsys translate_off
|
||||
initial
|
||||
prev_state = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (clken == 1'b1) prev_state <= state_reg;
|
||||
// synopsys translate_off
|
||||
initial
|
||||
state_reg[0:0] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (state_machine_clken == 1'b1)
|
||||
if (wire_state_reg_sclr[0:0] == 1'b1) state_reg[0:0] <= 1'b0;
|
||||
else if (wire_state_reg_sload[0:0] == 1'b1) state_reg[0:0] <= 1;
|
||||
else state_reg[0:0] <= wire_state_reg_d[0:0];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
state_reg[1:1] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (state_machine_clken == 1'b1)
|
||||
if (wire_state_reg_sclr[1:1] == 1'b1) state_reg[1:1] <= 1'b0;
|
||||
else if (wire_state_reg_sload[1:1] == 1'b1) state_reg[1:1] <= 1;
|
||||
else state_reg[1:1] <= wire_state_reg_d[1:1];
|
||||
// synopsys translate_off
|
||||
initial
|
||||
state_reg[2:2] = 0;
|
||||
// synopsys translate_on
|
||||
always @ ( posedge clock)
|
||||
if (state_machine_clken == 1'b1)
|
||||
if (wire_state_reg_sclr[2:2] == 1'b1) state_reg[2:2] <= 1'b0;
|
||||
else if (wire_state_reg_sload[2:2] == 1'b1) state_reg[2:2] <= 1;
|
||||
else state_reg[2:2] <= wire_state_reg_d[2:2];
|
||||
assign
|
||||
wire_state_reg_d = {(((~ state_reg[2]) & state_reg[1]) & state_reg[0]), ((~ state_reg[2]) & (state_reg[1] ^ state_reg[0])), ((~ state_reg[2]) & (~ state_reg[0]))};
|
||||
assign
|
||||
wire_state_reg_sclr = {{2{reset_state_machine}}, 1'b0},
|
||||
wire_state_reg_sload = {{2{1'b0}}, reset_state_machine};
|
||||
lpm_compare addr_cmpr
|
||||
(
|
||||
.aeb(wire_addr_cmpr_aeb),
|
||||
.agb(),
|
||||
.ageb(),
|
||||
.alb(wire_addr_cmpr_alb),
|
||||
.aleb(),
|
||||
.aneb(),
|
||||
.dataa(delay_addr),
|
||||
.datab({15{1'b1}})
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.aclr(1'b0),
|
||||
.clken(1'b1),
|
||||
.clock(1'b0)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
addr_cmpr.lpm_width = 15,
|
||||
addr_cmpr.lpm_type = "lpm_compare";
|
||||
lpm_compare wait_cmpr
|
||||
(
|
||||
.aeb(wire_wait_cmpr_aeb),
|
||||
.agb(),
|
||||
.ageb(),
|
||||
.alb(wire_wait_cmpr_alb),
|
||||
.aleb(),
|
||||
.aneb(),
|
||||
.dataa(wire_wait_ctr_q),
|
||||
.datab(1'b0)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.aclr(1'b0),
|
||||
.clken(1'b1),
|
||||
.clock(1'b0)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
wait_cmpr.lpm_width = 1,
|
||||
wait_cmpr.lpm_type = "lpm_compare";
|
||||
lpm_counter addr_ctr
|
||||
(
|
||||
.clk_en(clken),
|
||||
.clock(clock),
|
||||
.cnt_en(ram_write_state),
|
||||
.cout(),
|
||||
.eq(),
|
||||
.q(wire_addr_ctr_q),
|
||||
.sclr(((~ state_reg[1]) & (~ state_reg[0])))
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.aclr(1'b0),
|
||||
.aload(1'b0),
|
||||
.aset(1'b0),
|
||||
.cin(1'b1),
|
||||
.data({15{1'b0}}),
|
||||
.sload(1'b0),
|
||||
.sset(1'b0),
|
||||
.updown(1'b1)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
addr_ctr.lpm_direction = "UP",
|
||||
addr_ctr.lpm_modulus = 32768,
|
||||
addr_ctr.lpm_port_updown = "PORT_UNUSED",
|
||||
addr_ctr.lpm_width = 15,
|
||||
addr_ctr.lpm_type = "lpm_counter";
|
||||
lpm_counter wait_ctr
|
||||
(
|
||||
.clk_en(clken),
|
||||
.clock(clock),
|
||||
.cnt_en(rom_addr_state),
|
||||
.cout(),
|
||||
.eq(),
|
||||
.q(wire_wait_ctr_q),
|
||||
.sclr((~ rom_addr_state))
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_off
|
||||
`endif
|
||||
,
|
||||
.aclr(1'b0),
|
||||
.aload(1'b0),
|
||||
.aset(1'b0),
|
||||
.cin(1'b1),
|
||||
.data({1{1'b0}}),
|
||||
.sload(1'b0),
|
||||
.sset(1'b0),
|
||||
.updown(1'b1)
|
||||
`ifndef FORMAL_VERIFICATION
|
||||
// synopsys translate_on
|
||||
`endif
|
||||
);
|
||||
defparam
|
||||
wait_ctr.lpm_direction = "UP",
|
||||
wait_ctr.lpm_modulus = 1,
|
||||
wait_ctr.lpm_port_updown = "PORT_UNUSED",
|
||||
wait_ctr.lpm_width = 1,
|
||||
wait_ctr.lpm_type = "lpm_counter";
|
||||
assign
|
||||
addrct_eq_numwords = wire_addr_cmpr_aeb,
|
||||
addrct_lt_numwords = wire_addr_cmpr_alb,
|
||||
clken = 1'b1,
|
||||
dataout = dataout_w,
|
||||
dataout_w = delay_data,
|
||||
done_state = ((state_reg[2] & (~ state_reg[1])) & (~ state_reg[0])),
|
||||
idle_state = (((~ state_reg[2]) & (~ state_reg[1])) & (~ state_reg[0])),
|
||||
init_busy = capture_init,
|
||||
ram_address = delay_addr,
|
||||
ram_wren = ram_write_state,
|
||||
ram_write_state = (((~ state_reg[2]) & state_reg[1]) & state_reg[0]),
|
||||
reset_state_machine = (ram_write_state & addrct_lt_numwords),
|
||||
rom_addr_state = (((~ state_reg[2]) & (~ state_reg[1])) & state_reg[0]),
|
||||
rom_address = wire_addr_ctr_q,
|
||||
rom_data_capture_state = (((~ state_reg[2]) & state_reg[1]) & (~ state_reg[0])),
|
||||
rom_rden = (((~ prev_state[2]) & (((~ prev_state[1]) & (~ prev_state[0])) | (prev_state[1] & prev_state[0]))) & (((~ state_reg[2]) & (~ state_reg[1])) & state_reg[0])),
|
||||
state_machine_clken = (clken & ((idle_state & capture_init) | ((rom_data_capture_state | done_state) | (capture_init & (((~ (rom_addr_state & (~ rom_data_ready))) | (rom_addr_state & rom_data_ready)) | (ram_write_state & addrct_eq_numwords))))));
|
||||
endmodule //rom2ram_meminit_kqn
|
||||
//VALID FILE
|
||||
|
||||
|
||||
// synopsys translate_off
|
||||
`timescale 1 ps / 1 ps
|
||||
// synopsys translate_on
|
||||
module rom2ram (
|
||||
clock,
|
||||
datain,
|
||||
init,
|
||||
rom_data_ready,
|
||||
dataout,
|
||||
init_busy,
|
||||
ram_address,
|
||||
ram_wren,
|
||||
rom_address,
|
||||
rom_rden);
|
||||
|
||||
input clock;
|
||||
input [7:0] datain;
|
||||
input init;
|
||||
input rom_data_ready;
|
||||
output [7:0] dataout;
|
||||
output init_busy;
|
||||
output [14:0] ram_address;
|
||||
output ram_wren;
|
||||
output [14:0] rom_address;
|
||||
output rom_rden;
|
||||
|
||||
wire [14:0] sub_wire0;
|
||||
wire sub_wire1;
|
||||
wire [14:0] sub_wire2;
|
||||
wire [7:0] sub_wire3;
|
||||
wire sub_wire4;
|
||||
wire sub_wire5;
|
||||
wire [14:0] ram_address = sub_wire0[14:0];
|
||||
wire ram_wren = sub_wire1;
|
||||
wire [14:0] rom_address = sub_wire2[14:0];
|
||||
wire [7:0] dataout = sub_wire3[7:0];
|
||||
wire init_busy = sub_wire4;
|
||||
wire rom_rden = sub_wire5;
|
||||
|
||||
rom2ram_meminit_kqn rom2ram_meminit_kqn_component (
|
||||
.clock (clock),
|
||||
.init (init),
|
||||
.datain (datain),
|
||||
.rom_data_ready (rom_data_ready),
|
||||
.ram_address (sub_wire0),
|
||||
.ram_wren (sub_wire1),
|
||||
.rom_address (sub_wire2),
|
||||
.dataout (sub_wire3),
|
||||
.init_busy (sub_wire4),
|
||||
.rom_rden (sub_wire5));
|
||||
|
||||
endmodule
|
||||
|
||||
// ============================================================
|
||||
// CNX file retrieval info
|
||||
// ============================================================
|
||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: CONSTANT: INIT_FILE STRING "UNUSED"
|
||||
// Retrieval info: CONSTANT: INIT_TO_ZERO STRING "NO"
|
||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone"
|
||||
// Retrieval info: CONSTANT: LPM_HINT STRING "UNUSED"
|
||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altmem_init"
|
||||
// Retrieval info: CONSTANT: NUMWORDS NUMERIC "32768"
|
||||
// Retrieval info: CONSTANT: PORT_ROM_DATA_READY STRING "PORT_USED"
|
||||
// Retrieval info: CONSTANT: ROM_READ_LATENCY NUMERIC "1"
|
||||
// Retrieval info: CONSTANT: WIDTH NUMERIC "8"
|
||||
// Retrieval info: CONSTANT: WIDTHAD NUMERIC "15"
|
||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock"
|
||||
// Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0
|
||||
// Retrieval info: USED_PORT: datain 0 0 8 0 INPUT NODEFVAL "datain[7..0]"
|
||||
// Retrieval info: CONNECT: @datain 0 0 8 0 datain 0 0 8 0
|
||||
// Retrieval info: USED_PORT: dataout 0 0 8 0 OUTPUT NODEFVAL "dataout[7..0]"
|
||||
// Retrieval info: CONNECT: dataout 0 0 8 0 @dataout 0 0 8 0
|
||||
// Retrieval info: USED_PORT: init 0 0 0 0 INPUT NODEFVAL "init"
|
||||
// Retrieval info: CONNECT: @init 0 0 0 0 init 0 0 0 0
|
||||
// Retrieval info: USED_PORT: init_busy 0 0 0 0 OUTPUT NODEFVAL "init_busy"
|
||||
// Retrieval info: CONNECT: init_busy 0 0 0 0 @init_busy 0 0 0 0
|
||||
// Retrieval info: USED_PORT: ram_address 0 0 15 0 OUTPUT NODEFVAL "ram_address[14..0]"
|
||||
// Retrieval info: CONNECT: ram_address 0 0 15 0 @ram_address 0 0 15 0
|
||||
// Retrieval info: USED_PORT: ram_wren 0 0 0 0 OUTPUT NODEFVAL "ram_wren"
|
||||
// Retrieval info: CONNECT: ram_wren 0 0 0 0 @ram_wren 0 0 0 0
|
||||
// Retrieval info: USED_PORT: rom_address 0 0 15 0 OUTPUT NODEFVAL "rom_address[14..0]"
|
||||
// Retrieval info: CONNECT: rom_address 0 0 15 0 @rom_address 0 0 15 0
|
||||
// Retrieval info: USED_PORT: rom_data_ready 0 0 0 0 INPUT NODEFVAL "rom_data_ready"
|
||||
// Retrieval info: CONNECT: @rom_data_ready 0 0 0 0 rom_data_ready 0 0 0 0
|
||||
// Retrieval info: USED_PORT: rom_rden 0 0 0 0 OUTPUT NODEFVAL "rom_rden"
|
||||
// Retrieval info: CONNECT: rom_rden 0 0 0 0 @rom_rden 0 0 0 0
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram.v TRUE FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram.qip TRUE FALSE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram.bsf FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram_inst.v FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram_bb.v FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram.inc FALSE TRUE
|
||||
// Retrieval info: GEN_FILE: TYPE_NORMAL rom2ram.cmp FALSE TRUE
|
||||
// Retrieval info: LIB_FILE: lpm
|
26
fpga/syn/sof2jic.cof
Normal file
26
fpga/syn/sof2jic.cof
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
|
||||
<cof>
|
||||
<eprom_name>EPCS4</eprom_name>
|
||||
<flash_loader_device>EP1C3</flash_loader_device>
|
||||
<output_filename>output/zx_ula.jic</output_filename>
|
||||
<n_pages>1</n_pages>
|
||||
<width>1</width>
|
||||
<mode>7</mode>
|
||||
<hex_block>
|
||||
<hex_filename>../../rom/testrom.hex</hex_filename>
|
||||
<hex_addressing>relative</hex_addressing>
|
||||
<hex_offset>0</hex_offset>
|
||||
</hex_block>
|
||||
<sof_data>
|
||||
<user_name>Page_0</user_name>
|
||||
<page_flags>1</page_flags>
|
||||
<bit0>
|
||||
<sof_filename>output/zx_ula.sof</sof_filename>
|
||||
</bit0>
|
||||
</sof_data>
|
||||
<version>5</version>
|
||||
<create_cvp_file>0</create_cvp_file>
|
||||
<options>
|
||||
<map_file>1</map_file>
|
||||
</options>
|
||||
</cof>
|
30
fpga/syn/zx_ula.qpf
Executable file
30
fpga/syn/zx_ula.qpf
Executable file
@ -0,0 +1,30 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 1991-2009 Altera Corporation
|
||||
# Your use of Altera Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Altera Program License
|
||||
# Subscription Agreement, Altera MegaCore Function License
|
||||
# Agreement, or other applicable license agreement, including,
|
||||
# without limitation, that your use is for the sole purpose of
|
||||
# programming logic devices manufactured by Altera and sold by
|
||||
# Altera or its authorized distributors. Please refer to the
|
||||
# applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus II
|
||||
# Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition
|
||||
# Date created = 08:15:12 April 28, 2019
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "9.0"
|
||||
DATE = "08:15:12 April 28, 2019"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "zx_ula"
|
177
fpga/syn/zx_ula.qsf
Executable file
177
fpga/syn/zx_ula.qsf
Executable file
@ -0,0 +1,177 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 1991-2009 Altera Corporation
|
||||
# Your use of Altera Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Altera Program License
|
||||
# Subscription Agreement, Altera MegaCore Function License
|
||||
# Agreement, or other applicable license agreement, including,
|
||||
# without limitation, that your use is for the sole purpose of
|
||||
# programming logic devices manufactured by Altera and sold by
|
||||
# Altera or its authorized distributors. Please refer to the
|
||||
# applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus II
|
||||
# Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Web Edition
|
||||
# Date created = 08:15:12 April 28, 2019
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# zx_ula_assignment_defaults.qdf
|
||||
# If this file doesn't exist, see file:
|
||||
# assignment_defaults.qdf
|
||||
#
|
||||
# 2) Altera recommends that you do not modify this file. This
|
||||
# file is updated automatically by the Quartus II software
|
||||
# and any changes you make may be lost or overwritten.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
set_global_assignment -name FAMILY Cyclone
|
||||
set_global_assignment -name DEVICE EP1C3T100C8
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY zx_ula
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION "9.0 SP2"
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "08:15:12 APRIL 28, 2019"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1"
|
||||
set_global_assignment -name USE_GENERATED_PHYSICAL_CONSTRAINTS OFF -section_id eda_blast_fpga
|
||||
set_global_assignment -name MAX7000_DEVICE_IO_STANDARD "3.3-V LVTTL"
|
||||
set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
|
||||
set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF
|
||||
set_global_assignment -name MAX7000_OPTIMIZATION_TECHNIQUE AREA
|
||||
set_global_assignment -name FMAX_REQUIREMENT "14.4 MHz"
|
||||
set_global_assignment -name FMAX_REQUIREMENT "14.4 MHz" -section_id clk14
|
||||
set_global_assignment -name FMAX_REQUIREMENT "7.156 MHz" -section_id clkcpu
|
||||
set_instance_assignment -name CLOCK_SETTINGS clkcpu -to clkcpu
|
||||
set_global_assignment -name AUTO_RESOURCE_SHARING OFF
|
||||
set_global_assignment -name AUTO_LCELL_INSERTION OFF
|
||||
set_global_assignment -name FMAX_REQUIREMENT "32 MHz" -section_id clk32
|
||||
set_instance_assignment -name CLOCK_SETTINGS clk32 -to clk32
|
||||
set_global_assignment -name FMAX_REQUIREMENT "8 MHz" -section_id clk8
|
||||
set_global_assignment -name FMAX_REQUIREMENT "4 MHz" -section_id clk4
|
||||
set_instance_assignment -name CLOCK_SETTINGS clk8 -to "lpm_counter:wgcnt_rtl_1|dffs[1]"
|
||||
set_instance_assignment -name CLOCK_SETTINGS clk4 -to "lpm_counter:wgcnt_rtl_1|dffs[2]"
|
||||
|
||||
set_global_assignment -name OPTIMIZE_HOLD_TIMING OFF
|
||||
set_global_assignment -name FITTER_EFFORT "STANDARD FIT"
|
||||
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output/
|
||||
set_global_assignment -name FMAX_REQUIREMENT "7.156 MHz" -section_id clk7
|
||||
set_global_assignment -name DUTY_CYCLE 40 -section_id clk7
|
||||
|
||||
set_global_assignment -name SAVE_DISK_SPACE OFF
|
||||
set_global_assignment -name SMART_RECOMPILE ON
|
||||
set_global_assignment -name POWER_USE_PVA OFF
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING OFF
|
||||
set_global_assignment -name SLOW_SLEW_RATE OFF
|
||||
set_global_assignment -name SYNTH_TIMING_DRIVEN_SYNTHESIS OFF
|
||||
|
||||
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 100
|
||||
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "NO HEAT SINK WITH STILL AIR"
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_rd
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_wr
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to sd_cd
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_m1
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_mreq
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_rfsh
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_rstcpu
|
||||
set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_nmi
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_global_assignment -name USE_CONFIGURATION_DEVICE ON
|
||||
set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "USE AS REGULAR IO"
|
||||
set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPCS4
|
||||
set_location_assignment PIN_1 -to va[10]
|
||||
set_location_assignment PIN_2 -to va[5]
|
||||
set_location_assignment PIN_3 -to vd[4]
|
||||
set_location_assignment PIN_4 -to va[12]
|
||||
set_location_assignment PIN_5 -to va[11]
|
||||
set_location_assignment PIN_20 -to ps2_data
|
||||
set_location_assignment PIN_21 -to ps2_clk
|
||||
set_location_assignment PIN_22 -to chroma[0]
|
||||
set_location_assignment PIN_23 -to chroma[1]
|
||||
set_location_assignment PIN_24 -to chroma[2]
|
||||
set_location_assignment PIN_25 -to csync
|
||||
set_location_assignment PIN_26 -to vdac[5]
|
||||
set_location_assignment PIN_27 -to vdac[4]
|
||||
set_location_assignment PIN_28 -to vdac[3]
|
||||
set_location_assignment PIN_29 -to vdac[2]
|
||||
set_location_assignment PIN_34 -to vdac[1]
|
||||
set_location_assignment PIN_35 -to vdac[0]
|
||||
set_location_assignment PIN_36 -to snd_l
|
||||
set_location_assignment PIN_37 -to snd_r
|
||||
set_location_assignment PIN_38 -to sd_cd
|
||||
set_location_assignment PIN_39 -to sd_cs
|
||||
set_location_assignment PIN_40 -to sd_miso_tape_in
|
||||
set_location_assignment PIN_41 -to sd_sck
|
||||
set_location_assignment PIN_42 -to sd_mosi
|
||||
set_location_assignment PIN_47 -to vd[2]
|
||||
set_location_assignment PIN_48 -to vd[0]
|
||||
set_location_assignment PIN_49 -to vd[7]
|
||||
set_location_assignment PIN_50 -to vd[1]
|
||||
set_location_assignment PIN_51 -to vd[6]
|
||||
set_location_assignment PIN_52 -to n_mreq
|
||||
set_location_assignment PIN_54 -to n_int
|
||||
set_location_assignment PIN_55 -to n_nmi
|
||||
set_location_assignment PIN_56 -to va[14]
|
||||
set_location_assignment PIN_57 -to n_vrd
|
||||
set_location_assignment PIN_65 -to va[16]
|
||||
set_location_assignment PIN_68 -to va[18]
|
||||
set_location_assignment PIN_69 -to va[15]
|
||||
set_location_assignment PIN_70 -to va[13]
|
||||
set_location_assignment PIN_71 -to n_vwr
|
||||
set_location_assignment PIN_72 -to va[17]
|
||||
set_location_assignment PIN_73 -to clkcpu
|
||||
set_location_assignment PIN_74 -to n_wr
|
||||
set_location_assignment PIN_75 -to n_rd
|
||||
set_location_assignment PIN_76 -to a[14]
|
||||
set_location_assignment PIN_77 -to a[15]
|
||||
set_location_assignment PIN_78 -to a[13]
|
||||
set_location_assignment PIN_79 -to vd[5]
|
||||
set_location_assignment PIN_84 -to n_rstcpu
|
||||
set_location_assignment PIN_85 -to n_m1
|
||||
set_location_assignment PIN_86 -to n_rfsh
|
||||
set_location_assignment PIN_87 -to vd[3]
|
||||
set_location_assignment PIN_88 -to va[0]
|
||||
set_location_assignment PIN_89 -to va[1]
|
||||
set_location_assignment PIN_90 -to va[2]
|
||||
set_location_assignment PIN_91 -to va[3]
|
||||
set_location_assignment PIN_92 -to va[4]
|
||||
set_location_assignment PIN_97 -to va[6]
|
||||
set_location_assignment PIN_98 -to va[7]
|
||||
set_location_assignment PIN_99 -to va[8]
|
||||
set_location_assignment PIN_100 -to va[9]
|
||||
set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED WITH WEAK PULL-UP"
|
||||
set_location_assignment PIN_53 -to n_iorq
|
||||
set_location_assignment PIN_10 -to clk28
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/mixer.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/soundrive.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/screen.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/ports.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/magic.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/divmmc.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/cpucontrol.sv
|
||||
set_global_assignment -name VERILOG_FILE ../rtl/chroma_gen.v
|
||||
set_global_assignment -name VHDL_FILE ../rtl/ym2149.vhd
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/common.sv
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE ../rtl/top.sv
|
||||
set_global_assignment -name SDC_FILE clocks.sdc
|
||||
set_global_assignment -name CDF_FILE output/zx_ula.cdf
|
||||
set_global_assignment -name QIP_FILE ip/pll.qip
|
||||
set_global_assignment -name QIP_FILE ip/rom2ram.qip
|
||||
set_global_assignment -name QIP_FILE ip/asmi.qip
|
||||
set_global_assignment -name ENABLE_SIGNALTAP OFF
|
||||
set_global_assignment -name USE_SIGNALTAP_FILE stp1.stp
|
||||
set_global_assignment -name SIGNALTAP_FILE stp1.stp
|
||||
set_global_assignment -name SLD_FILE "stp1_auto_stripped.stp"
|
||||
set_global_assignment -name RTLV_GROUP_RELATED_NODES OFF
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
Reference in New Issue
Block a user