mirror of
https://github.com/UzixLS/TSConf_MiST.git
synced 2025-07-18 14:51:25 +03:00
Remove redundant modules.
This commit is contained in:
@ -367,8 +367,6 @@ set_global_assignment -name VERILOG_FILE src/cpu/zmem.v
|
|||||||
set_global_assignment -name VERILOG_FILE src/cpu/zmaps.v
|
set_global_assignment -name VERILOG_FILE src/cpu/zmaps.v
|
||||||
set_global_assignment -name VERILOG_FILE src/cpu/zint.v
|
set_global_assignment -name VERILOG_FILE src/cpu/zint.v
|
||||||
set_global_assignment -name VERILOG_FILE src/cpu/zclock.v
|
set_global_assignment -name VERILOG_FILE src/cpu/zclock.v
|
||||||
set_global_assignment -name VERILOG_FILE src/cpu/cache_data.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/cpu/cache_addr.v
|
|
||||||
set_global_assignment -name VHDL_FILE src/rtc/CMOS.vhd
|
set_global_assignment -name VHDL_FILE src/rtc/CMOS.vhd
|
||||||
set_global_assignment -name VHDL_FILE src/rtc/mc146818a.vhd
|
set_global_assignment -name VHDL_FILE src/rtc/mc146818a.vhd
|
||||||
set_global_assignment -name VHDL_FILE src/sound/soundrive.vhd
|
set_global_assignment -name VHDL_FILE src/sound/soundrive.vhd
|
||||||
@ -389,12 +387,6 @@ set_global_assignment -name VERILOG_FILE src/video/video_ports.v
|
|||||||
set_global_assignment -name VERILOG_FILE src/video/video_out.v
|
set_global_assignment -name VERILOG_FILE src/video/video_out.v
|
||||||
set_global_assignment -name VERILOG_FILE src/video/video_mode.v
|
set_global_assignment -name VERILOG_FILE src/video/video_mode.v
|
||||||
set_global_assignment -name VERILOG_FILE src/video/video_fetch.v
|
set_global_assignment -name VERILOG_FILE src/video/video_fetch.v
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_vmem.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_tsline1.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_tsline0.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_tmbuf.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_sfile.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/mem/video_cram.v
|
|
||||||
set_global_assignment -name VERILOG_FILE src/video/video_top.v
|
set_global_assignment -name VERILOG_FILE src/video/video_top.v
|
||||||
set_global_assignment -name VHDL_FILE src/keyboard.vhd
|
set_global_assignment -name VHDL_FILE src/keyboard.vhd
|
||||||
set_global_assignment -name VERILOG_FILE src/kempston_mouse.v
|
set_global_assignment -name VERILOG_FILE src/kempston_mouse.v
|
||||||
|
@ -1,222 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: cache_addr.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 10.1 Build 153 11/29/2010 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2010 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 cache_addr (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [15:0] data;
|
|
||||||
input [8:0] rdaddress;
|
|
||||||
input [8:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [15:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [15:0] sub_wire0;
|
|
||||||
wire [15:0] q = sub_wire0[15:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({16{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 512,
|
|
||||||
altsyncram_component.numwords_b = 512,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "UNREGISTERED",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "OLD_DATA",
|
|
||||||
altsyncram_component.widthad_a = 9,
|
|
||||||
altsyncram_component.widthad_b = 9,
|
|
||||||
altsyncram_component.width_a = 16,
|
|
||||||
altsyncram_component.width_b = 16,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "8192"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING "./core_TSLab/video/mem/video_cram.mif"
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "UNREGISTERED"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "OLD_DATA"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 9 0 INPUT NODEFVAL "rdaddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 9 0 INPUT NODEFVAL "wraddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 9 0 wraddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 9 0 rdaddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 16 0 data 0 0 16 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 16 0 @q_b 0 0 16 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_wave*.jpg FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_addr_bb.v TRUE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,222 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: cache_data.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 10.1 Build 153 11/29/2010 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2010 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 cache_data (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [15:0] data;
|
|
||||||
input [8:0] rdaddress;
|
|
||||||
input [8:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [15:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [15:0] sub_wire0;
|
|
||||||
wire [15:0] q = sub_wire0[15:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({16{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 512,
|
|
||||||
altsyncram_component.numwords_b = 512,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "UNREGISTERED",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 9,
|
|
||||||
altsyncram_component.widthad_b = 9,
|
|
||||||
altsyncram_component.width_a = 16,
|
|
||||||
altsyncram_component.width_b = 16,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "8192"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING "./core_TSLab/video/mem/video_cram.mif"
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "UNREGISTERED"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 9 0 INPUT NODEFVAL "rdaddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 9 0 INPUT NODEFVAL "wraddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 9 0 wraddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 9 0 rdaddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 16 0 data 0 0 16 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 16 0 @q_b 0 0 16 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_wave*.jpg FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL cache_data_bb.v TRUE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -277,24 +277,26 @@ module zmem(
|
|||||||
wire cache_v; //data valid
|
wire cache_v; //data valid
|
||||||
wire [1:0] cache_tmp; //empty 16bit: 2 cache_tmp + csvrom + 13cpu_hi_addr1
|
wire [1:0] cache_tmp; //empty 16bit: 2 cache_tmp + csvrom + 13cpu_hi_addr1
|
||||||
|
|
||||||
cache_data cache_data (
|
dpram #(.DATAWIDTH(16), .ADDRWIDTH(9)) cache_data
|
||||||
|
(
|
||||||
.clock (clk), // -- CLK
|
.clock (clk), // -- CLK
|
||||||
.rdaddress ({csvrom1, ch_addr1}), // ADDR for RD
|
.address_b ({csvrom1, ch_addr1}), // ADDR for RD
|
||||||
.wraddress (loader ? za[8:0] : cpu_strobe ? {csvrom2, ch_addr2} : {csvrom1, ch_addr1}),//WR
|
.address_a (loader ? za[8:0] : cpu_strobe ? {csvrom2, ch_addr2} : {csvrom1, ch_addr1}),//WR
|
||||||
//-----------------CACHE DATA -------------------------
|
//-----------------CACHE DATA -------------------------
|
||||||
.wren (loader ? 1'b1 : cpu_strobe), //c2 -strobe
|
.wren_a (loader ? 1'b1 : cpu_strobe), //c2 -strobe
|
||||||
.data (loader ? 16'b0 : cpu_rddata), //<=====
|
.data_a (loader ? 16'b0 : cpu_rddata), //<=====
|
||||||
.q (cache_d) // ==> data from CACHE
|
.q_b (cache_d) // ==> data from CACHE
|
||||||
);
|
);
|
||||||
|
|
||||||
cache_addr cache_addr (
|
dpram #(.DATAWIDTH(16), .ADDRWIDTH(9)) cache_addr
|
||||||
|
(
|
||||||
.clock (clk), //---- CLK
|
.clock (clk), //---- CLK
|
||||||
.rdaddress ({csvrom1, ch_addr1}), //
|
.address_b ({csvrom1, ch_addr1}), //
|
||||||
.wraddress (loader ? za[8:0] : cpu_strobe ? {csvrom2, ch_addr2} : {csvrom1, ch_addr1}), //WR
|
.address_a (loader ? za[8:0] : cpu_strobe ? {csvrom2, ch_addr2} : {csvrom1, ch_addr1}), //WR
|
||||||
//--------------arbiter.cpu_strobe <= curr_cpu && cpu_rnw_r;
|
//--------------arbiter.cpu_strobe <= curr_cpu && cpu_rnw_r;
|
||||||
.q ({cache_tmp, cache_v, cache_a}), // valid, addr from CACHE
|
.q_b ({cache_tmp, cache_v, cache_a}), // valid, addr from CACHE
|
||||||
.data (loader ? 16'b0 : cpu_strobe ? {cache_tmp, 1'b1, cpu_hi_addr2} : {2'b0, 1'b0, 8'b0}), //wrdata
|
.data_a (loader ? 16'b0 : cpu_strobe ? {cache_tmp, 1'b1, cpu_hi_addr2} : {2'b0, 1'b0, 8'b0}), //wrdata
|
||||||
.wren (loader ? 1'b1 : (cpu_strobe || cache_inv)) //c2 -strobe
|
.wren_a (loader ? 1'b1 : (cpu_strobe || cache_inv)) //c2 -strobe
|
||||||
);
|
);
|
||||||
//-----------
|
//-----------
|
||||||
wire cache_hit = (cpu_hi_addr1 == cache_a) && cache_v;
|
wire cache_hit = (cpu_hi_addr1 == cache_a) && cache_v;
|
||||||
@ -307,6 +309,4 @@ module zmem(
|
|||||||
wire cache_hit_en = (cache_hit && (cache_en[win] || csvrom)) ;
|
wire cache_hit_en = (cache_hit && (cache_en[win] || csvrom)) ;
|
||||||
wire cache_inv = ramwr_s && cache_hit; // cache invalidation should be only performed if write happens to cached address
|
wire cache_inv = ramwr_s && cache_hit; // cache invalidation should be only performed if write happens to cached address
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
set_global_assignment -name IP_TOOL_NAME "RAM: 2-PORT"
|
|
||||||
set_global_assignment -name IP_TOOL_VERSION "11.0"
|
|
||||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "video_cram.v"]
|
|
@ -1,219 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_cram.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 11.0 Build 157 04/27/2011 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2011 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 video_cram (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [14:0] data;
|
|
||||||
input [7:0] rdaddress;
|
|
||||||
input [7:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [14:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [14:0] sub_wire0;
|
|
||||||
wire [14:0] q = sub_wire0[14:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({15{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.init_file = "src/video/mem/video_cram.mif",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 256,
|
|
||||||
altsyncram_component.numwords_b = 256,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "UNREGISTERED",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 8,
|
|
||||||
altsyncram_component.widthad_b = 8,
|
|
||||||
altsyncram_component.width_a = 15,
|
|
||||||
altsyncram_component.width_b = 15,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC_PIPELINE_STAGE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "3840"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING "../rtl/ts/video/mem/video_cram.mif"
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "15"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "15"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "15"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "15"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INIT_FILE STRING "../rtl/ts/video/mem/video_cram.mif"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "256"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "256"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "UNREGISTERED"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "15"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "15"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 15 0 INPUT NODEFVAL "data[14..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 15 0 OUTPUT NODEFVAL "q[14..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 8 0 INPUT NODEFVAL "rdaddress[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 8 0 INPUT NODEFVAL "wraddress[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 8 0 wraddress 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 8 0 rdaddress 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 15 0 data 0 0 15 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 15 0 @q_b 0 0 15 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_cram_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,217 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_sfile.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 11.0 Build 208 07/03/2011 SP 1 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2011 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 video_sfile (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [15:0] data;
|
|
||||||
input [7:0] rdaddress;
|
|
||||||
input [7:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [15:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [15:0] sub_wire0;
|
|
||||||
wire [15:0] q = sub_wire0[15:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({16{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 256,
|
|
||||||
altsyncram_component.numwords_b = 256,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 8,
|
|
||||||
altsyncram_component.widthad_b = 8,
|
|
||||||
altsyncram_component.width_a = 16,
|
|
||||||
altsyncram_component.width_b = 16,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC_PIPELINE_STAGE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "4096"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "256"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "256"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 8 0 INPUT NODEFVAL "rdaddress[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 8 0 INPUT NODEFVAL "wraddress[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 8 0 wraddress 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 8 0 rdaddress 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 16 0 data 0 0 16 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 16 0 @q_b 0 0 16 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_sfile_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,217 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_tmbuf.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 11.0 Build 208 07/03/2011 SP 1 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2011 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 video_tmbuf (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [15:0] data;
|
|
||||||
input [8:0] rdaddress;
|
|
||||||
input [8:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [15:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [15:0] sub_wire0;
|
|
||||||
wire [15:0] q = sub_wire0[15:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({16{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 512,
|
|
||||||
altsyncram_component.numwords_b = 512,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 9,
|
|
||||||
altsyncram_component.widthad_b = 9,
|
|
||||||
altsyncram_component.width_a = 16,
|
|
||||||
altsyncram_component.width_b = 16,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC_PIPELINE_STAGE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "8192"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "16"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "16"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL "data[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL "q[15..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 9 0 INPUT NODEFVAL "rdaddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 9 0 INPUT NODEFVAL "wraddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 9 0 wraddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 9 0 rdaddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 16 0 data 0 0 16 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 16 0 @q_b 0 0 16 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tmbuf_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,216 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_tsline0.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 10.1 Build 153 11/29/2010 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2010 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 video_tsline0 (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [7:0] data;
|
|
||||||
input [8:0] rdaddress;
|
|
||||||
input [8:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [7:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [7:0] sub_wire0;
|
|
||||||
wire [7:0] q = sub_wire0[7:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({8{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 512,
|
|
||||||
altsyncram_component.numwords_b = 512,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "UNREGISTERED",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 9,
|
|
||||||
altsyncram_component.widthad_b = 9,
|
|
||||||
altsyncram_component.width_a = 8,
|
|
||||||
altsyncram_component.width_b = 8,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "4096"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "UNREGISTERED"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 8 0 INPUT NODEFVAL "data[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 9 0 INPUT NODEFVAL "rdaddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 9 0 INPUT NODEFVAL "wraddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 9 0 wraddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 9 0 rdaddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 8 0 data 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 8 0 @q_b 0 0 8 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline0_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,216 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_tsline1.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 10.1 Build 153 11/29/2010 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2010 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 video_tsline1 (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [7:0] data;
|
|
||||||
input [8:0] rdaddress;
|
|
||||||
input [8:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [7:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [7:0] sub_wire0;
|
|
||||||
wire [7:0] q = sub_wire0[7:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({8{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 512,
|
|
||||||
altsyncram_component.numwords_b = 512,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "UNREGISTERED",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 9,
|
|
||||||
altsyncram_component.widthad_b = 9,
|
|
||||||
altsyncram_component.width_a = 8,
|
|
||||||
altsyncram_component.width_b = 8,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "4096"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "512"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "UNREGISTERED"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "9"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 8 0 INPUT NODEFVAL "data[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 9 0 INPUT NODEFVAL "rdaddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 9 0 INPUT NODEFVAL "wraddress[8..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 9 0 wraddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 9 0 rdaddress 0 0 9 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 8 0 data 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 8 0 @q_b 0 0 8 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_tsline1_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -1,3 +0,0 @@
|
|||||||
set_global_assignment -name IP_TOOL_NAME "RAM: 2-PORT"
|
|
||||||
set_global_assignment -name IP_TOOL_VERSION "11.0"
|
|
||||||
set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "video_vmem.v"]
|
|
@ -1,217 +0,0 @@
|
|||||||
// megafunction wizard: %RAM: 2-PORT%
|
|
||||||
// GENERATION: STANDARD
|
|
||||||
// VERSION: WM1.0
|
|
||||||
// MODULE: altsyncram
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// File Name: video_vmem.v
|
|
||||||
// Megafunction Name(s):
|
|
||||||
// altsyncram
|
|
||||||
//
|
|
||||||
// Simulation Library Files(s):
|
|
||||||
// altera_mf
|
|
||||||
// ============================================================
|
|
||||||
// ************************************************************
|
|
||||||
// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!
|
|
||||||
//
|
|
||||||
// 11.0 Build 157 04/27/2011 SJ Full Version
|
|
||||||
// ************************************************************
|
|
||||||
|
|
||||||
|
|
||||||
//Copyright (C) 1991-2011 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 video_vmem (
|
|
||||||
clock,
|
|
||||||
data,
|
|
||||||
rdaddress,
|
|
||||||
wraddress,
|
|
||||||
wren,
|
|
||||||
q);
|
|
||||||
|
|
||||||
input clock;
|
|
||||||
input [7:0] data;
|
|
||||||
input [9:0] rdaddress;
|
|
||||||
input [9:0] wraddress;
|
|
||||||
input wren;
|
|
||||||
output [7:0] q;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_off
|
|
||||||
`endif
|
|
||||||
tri1 clock;
|
|
||||||
tri0 wren;
|
|
||||||
`ifndef ALTERA_RESERVED_QIS
|
|
||||||
// synopsys translate_on
|
|
||||||
`endif
|
|
||||||
|
|
||||||
wire [7:0] sub_wire0;
|
|
||||||
wire [7:0] q = sub_wire0[7:0];
|
|
||||||
|
|
||||||
altsyncram altsyncram_component (
|
|
||||||
.address_a (wraddress),
|
|
||||||
.clock0 (clock),
|
|
||||||
.data_a (data),
|
|
||||||
.wren_a (wren),
|
|
||||||
.address_b (rdaddress),
|
|
||||||
.q_b (sub_wire0),
|
|
||||||
.aclr0 (1'b0),
|
|
||||||
.aclr1 (1'b0),
|
|
||||||
.addressstall_a (1'b0),
|
|
||||||
.addressstall_b (1'b0),
|
|
||||||
.byteena_a (1'b1),
|
|
||||||
.byteena_b (1'b1),
|
|
||||||
.clock1 (1'b1),
|
|
||||||
.clocken0 (1'b1),
|
|
||||||
.clocken1 (1'b1),
|
|
||||||
.clocken2 (1'b1),
|
|
||||||
.clocken3 (1'b1),
|
|
||||||
.data_b ({8{1'b1}}),
|
|
||||||
.eccstatus (),
|
|
||||||
.q_a (),
|
|
||||||
.rden_a (1'b1),
|
|
||||||
.rden_b (1'b1),
|
|
||||||
.wren_b (1'b0));
|
|
||||||
defparam
|
|
||||||
altsyncram_component.address_aclr_b = "NONE",
|
|
||||||
altsyncram_component.address_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.clock_enable_input_a = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_input_b = "BYPASS",
|
|
||||||
altsyncram_component.clock_enable_output_b = "BYPASS",
|
|
||||||
altsyncram_component.intended_device_family = "Cyclone IV E",
|
|
||||||
altsyncram_component.lpm_type = "altsyncram",
|
|
||||||
altsyncram_component.numwords_a = 1024,
|
|
||||||
altsyncram_component.numwords_b = 1024,
|
|
||||||
altsyncram_component.operation_mode = "DUAL_PORT",
|
|
||||||
altsyncram_component.outdata_aclr_b = "NONE",
|
|
||||||
altsyncram_component.outdata_reg_b = "CLOCK0",
|
|
||||||
altsyncram_component.power_up_uninitialized = "FALSE",
|
|
||||||
altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE",
|
|
||||||
altsyncram_component.widthad_a = 10,
|
|
||||||
altsyncram_component.widthad_b = 10,
|
|
||||||
altsyncram_component.width_a = 8,
|
|
||||||
altsyncram_component.width_b = 8,
|
|
||||||
altsyncram_component.width_byteena_a = 1;
|
|
||||||
|
|
||||||
|
|
||||||
endmodule
|
|
||||||
|
|
||||||
// ============================================================
|
|
||||||
// CNX file retrieval info
|
|
||||||
// ============================================================
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ADDRESSSTALL_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTEENA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_ENABLE_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: BlankMemory NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRdata NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRq NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrdaddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRrren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwraddress NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: CLRwren NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_A NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: Clock_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: ECC_PIPELINE_STAGE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INDATA_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_B"
|
|
||||||
// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: JTAG_ID STRING "NONE"
|
|
||||||
// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MEMSIZE NUMERIC "8192"
|
|
||||||
// Retrieval info: PRIVATE: MEM_IN_BITS NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: MIFfilename STRING ""
|
|
||||||
// Retrieval info: PRIVATE: OPERATION_MODE NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: OUTDATA_REG_B NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_A NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_PORT_B NUMERIC "3"
|
|
||||||
// Retrieval info: PRIVATE: REGdata NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGq NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrdaddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGrren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwraddress NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: REGwren NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
|
|
||||||
// Retrieval info: PRIVATE: USE_DIFF_CLKEN NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: UseDPRAM NUMERIC "1"
|
|
||||||
// Retrieval info: PRIVATE: VarWidth NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_READ_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_A NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WIDTH_WRITE_B NUMERIC "8"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRADDR_REG_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: WRCTRL_ACLR_B NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: enable NUMERIC "0"
|
|
||||||
// Retrieval info: PRIVATE: rden NUMERIC "0"
|
|
||||||
// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: ADDRESS_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_B STRING "BYPASS"
|
|
||||||
// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
|
|
||||||
// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "1024"
|
|
||||||
// Retrieval info: CONSTANT: NUMWORDS_B NUMERIC "1024"
|
|
||||||
// Retrieval info: CONSTANT: OPERATION_MODE STRING "DUAL_PORT"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_ACLR_B STRING "NONE"
|
|
||||||
// Retrieval info: CONSTANT: OUTDATA_REG_B STRING "CLOCK0"
|
|
||||||
// Retrieval info: CONSTANT: POWER_UP_UNINITIALIZED STRING "FALSE"
|
|
||||||
// Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "10"
|
|
||||||
// Retrieval info: CONSTANT: WIDTHAD_B NUMERIC "10"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_B NUMERIC "8"
|
|
||||||
// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1"
|
|
||||||
// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock"
|
|
||||||
// Retrieval info: USED_PORT: data 0 0 8 0 INPUT NODEFVAL "data[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]"
|
|
||||||
// Retrieval info: USED_PORT: rdaddress 0 0 10 0 INPUT NODEFVAL "rdaddress[9..0]"
|
|
||||||
// Retrieval info: USED_PORT: wraddress 0 0 10 0 INPUT NODEFVAL "wraddress[9..0]"
|
|
||||||
// Retrieval info: USED_PORT: wren 0 0 0 0 INPUT GND "wren"
|
|
||||||
// Retrieval info: CONNECT: @address_a 0 0 10 0 wraddress 0 0 10 0
|
|
||||||
// Retrieval info: CONNECT: @address_b 0 0 10 0 rdaddress 0 0 10 0
|
|
||||||
// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: @data_a 0 0 8 0 data 0 0 8 0
|
|
||||||
// Retrieval info: CONNECT: @wren_a 0 0 0 0 wren 0 0 0 0
|
|
||||||
// Retrieval info: CONNECT: q 0 0 8 0 @q_b 0 0 8 0
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem.v TRUE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem.inc FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem.cmp FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem.bsf FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem_inst.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem_bb.v FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem_waveforms.html FALSE
|
|
||||||
// Retrieval info: GEN_FILE: TYPE_NORMAL video_vmem_wave*.jpg FALSE
|
|
||||||
// Retrieval info: LIB_FILE: altera_mf
|
|
@ -34,42 +34,43 @@ module video_out (
|
|||||||
output wire [3:0] tst
|
output wire [3:0] tst
|
||||||
);
|
);
|
||||||
|
|
||||||
assign tst[0] = clk; ////phase[0];
|
assign tst[0] = clk; ////phase[0];
|
||||||
assign tst[1] = cram_we; //phase[1];
|
assign tst[1] = cram_we; //phase[1];
|
||||||
assign tst[2] = cram_addr_in[0]; //
|
assign tst[2] = cram_addr_in[0]; //
|
||||||
assign tst[3] = cram_data_in[0]; //pwm[3][{phase, 1'b0}]; //!pwm[igrn][{phase, 1'b1}];
|
assign tst[3] = cram_data_in[0]; //pwm[3][{phase, 1'b0}]; //!pwm[igrn][{phase, 1'b1}];
|
||||||
|
|
||||||
|
|
||||||
// TV/VGA mux
|
// TV/VGA mux
|
||||||
reg [7:0] vplex;
|
reg [7:0] vplex;
|
||||||
always @(posedge clk) if (c3) vplex <= vplex_in;
|
always @(posedge clk) if (c3) vplex <= vplex_in;
|
||||||
|
|
||||||
wire [7:0] plex = vga_on ? vgaplex : vplex;
|
wire [7:0] plex = vga_on ? vgaplex : vplex;
|
||||||
wire plex_sel = vga_on ? plex_sel_in[0] : plex_sel_in[1];
|
wire plex_sel = vga_on ? plex_sel_in[0] : plex_sel_in[1];
|
||||||
wire hires = vga_on ? vga_hires : tv_hires;
|
wire hires = vga_on ? vga_hires : tv_hires;
|
||||||
wire [7:0] vdata = hires ? {palsel, plex_sel ? plex[3:0] : plex[7:4]} : plex;
|
wire [7:0] vdata = hires ? {palsel, plex_sel ? plex[3:0] : plex[7:4]} : plex;
|
||||||
|
|
||||||
// CRAM =====================================================================
|
// CRAM =====================================================================
|
||||||
wire [14:0] vpixel;
|
wire [14:0] vpixel;
|
||||||
|
|
||||||
video_cram video_cram(
|
dpram #(.DATAWIDTH(15), .ADDRWIDTH(8), .MEM_INIT_FILE("src/video/video_cram.mif")) video_cram
|
||||||
.clock (clk),
|
(
|
||||||
.wraddress(cram_addr_in),
|
.clock (clk),
|
||||||
.data (cram_data_in),
|
.address_a(cram_addr_in),
|
||||||
.wren (cram_we),
|
.data_a (cram_data_in),
|
||||||
.rdaddress(vdata), //-<INPUT
|
.wren_a (cram_we),
|
||||||
.q (vpixel)
|
.address_b(vdata), //-<INPUT
|
||||||
);
|
.q_b (vpixel)
|
||||||
|
);
|
||||||
|
|
||||||
//=============VPIXEL=================================
|
//=============VPIXEL=================================
|
||||||
|
|
||||||
reg blank;
|
reg blank;
|
||||||
always @(posedge clk) blank <= vga_on ? vga_blank : tv_blank;
|
always @(posedge clk) blank <= vga_on ? vga_blank : tv_blank;
|
||||||
|
|
||||||
wire [14:0] vpix = blank ? 15'b0 : vpixel; //OK for Spectrum mode // 5 bits for every color
|
wire [14:0] vpix = blank ? 15'b0 : vpixel; //OK for Spectrum mode // 5 bits for every color
|
||||||
|
|
||||||
assign vred = {vpix[14:10], vpix[14:12]};
|
assign vred = {vpix[14:10], vpix[14:12]};
|
||||||
assign vgrn = {vpix[ 9: 5], vpix[ 9: 7]};
|
assign vgrn = {vpix[ 9: 5], vpix[ 9: 7]};
|
||||||
assign vblu = {vpix[ 4: 0], vpix[ 4: 2]};
|
assign vblu = {vpix[ 4: 0], vpix[ 4: 2]};
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -92,362 +92,358 @@ module video_top
|
|||||||
output wire [3:0] tst
|
output wire [3:0] tst
|
||||||
);
|
);
|
||||||
|
|
||||||
// wire [2:0] tst;
|
|
||||||
|
|
||||||
|
assign ts_z80_lp = tsconf[4];
|
||||||
assign ts_z80_lp = tsconf[4];
|
|
||||||
|
|
||||||
// video config
|
// video config
|
||||||
wire [7:0] vpage; // re-latched at line_start
|
wire [7:0] vpage; // re-latched at line_start
|
||||||
wire [7:0] vconf; //
|
wire [7:0] vconf; //
|
||||||
wire [8:0] gx_offs; //
|
wire [8:0] gx_offs; //
|
||||||
wire [8:0] gy_offs; //
|
wire [8:0] gy_offs; //
|
||||||
wire [7:0] palsel; //
|
wire [7:0] palsel; //
|
||||||
wire [8:0] t0x_offs; //
|
wire [8:0] t0x_offs; //
|
||||||
wire [8:0] t1x_offs; //
|
wire [8:0] t1x_offs; //
|
||||||
wire [7:0] t0gpage; //
|
wire [7:0] t0gpage; //
|
||||||
wire [7:0] t1gpage; //
|
wire [7:0] t1gpage; //
|
||||||
wire [7:0] sgpage; // * not yet !!!
|
wire [7:0] sgpage; // * not yet !!!
|
||||||
wire [8:0] t0y_offs;
|
wire [8:0] t0y_offs;
|
||||||
wire [8:0] t1y_offs;
|
wire [8:0] t1y_offs;
|
||||||
wire [7:0] tsconf;
|
wire [7:0] tsconf;
|
||||||
wire [7:0] tmpage;
|
wire [7:0] tmpage;
|
||||||
wire [7:0] hint_beg;
|
wire [7:0] hint_beg;
|
||||||
wire [8:0] vint_beg;
|
wire [8:0] vint_beg;
|
||||||
wire [8:0] hpix_beg;
|
wire [8:0] hpix_beg;
|
||||||
wire [8:0] hpix_end;
|
wire [8:0] hpix_end;
|
||||||
wire [8:0] vpix_beg;
|
wire [8:0] vpix_beg;
|
||||||
wire [8:0] vpix_end;
|
wire [8:0] vpix_end;
|
||||||
wire [5:0] x_tiles;
|
wire [5:0] x_tiles;
|
||||||
wire [9:0] x_offs_mode;
|
wire [9:0] x_offs_mode;
|
||||||
wire [4:0] go_offs;
|
wire [4:0] go_offs;
|
||||||
wire [1:0] render_mode;
|
wire [1:0] render_mode;
|
||||||
wire tv_hires;
|
wire tv_hires;
|
||||||
wire vga_hires;
|
wire vga_hires;
|
||||||
wire v60hz;
|
wire v60hz;
|
||||||
//===zx-evo-fpga-564db5e984ef ===
|
//===zx-evo-fpga-564db5e984ef ===
|
||||||
wire nogfx = vconf[5];
|
wire nogfx = vconf[5];
|
||||||
wire notsu = vconf[4];
|
wire notsu = vconf[4];
|
||||||
wire gfxovr = vconf[3];
|
wire gfxovr = vconf[3];
|
||||||
//wire gfxovr;
|
//wire gfxovr;
|
||||||
//===============================
|
//===============================
|
||||||
wire tv_hblank;
|
wire tv_hblank;
|
||||||
wire tv_vblank;
|
wire tv_vblank;
|
||||||
wire vga_hblank;
|
wire vga_hblank;
|
||||||
wire vga_vblank;
|
wire vga_vblank;
|
||||||
|
|
||||||
// counters
|
// counters
|
||||||
wire [7:0] cnt_col;
|
wire [7:0] cnt_col;
|
||||||
wire [8:0] cnt_row;
|
wire [8:0] cnt_row;
|
||||||
wire cptr;
|
wire cptr;
|
||||||
wire [3:0] scnt;
|
wire [3:0] scnt;
|
||||||
wire [8:0] lcount;
|
wire [8:0] lcount;
|
||||||
|
|
||||||
// synchro
|
// synchro
|
||||||
wire pix_start;
|
wire pix_start;
|
||||||
wire tv_pix_start;
|
wire tv_pix_start;
|
||||||
wire vga_pix_start;
|
wire vga_pix_start;
|
||||||
wire ts_start;
|
wire ts_start;
|
||||||
wire v_ts;
|
wire v_ts;
|
||||||
wire v_pf;
|
wire v_pf;
|
||||||
wire hpix;
|
wire hpix;
|
||||||
wire vpix;
|
wire vpix;
|
||||||
wire hvpix;
|
wire hvpix;
|
||||||
wire flash;
|
wire flash;
|
||||||
|
|
||||||
// fetcher
|
// fetcher
|
||||||
wire [31:0] fetch_data;
|
wire [31:0] fetch_data;
|
||||||
wire [31:0] fetch_temp;
|
wire [31:0] fetch_temp;
|
||||||
wire [3:0] fetch_sel;
|
wire [3:0] fetch_sel;
|
||||||
wire [1:0] fetch_bsl;
|
wire [1:0] fetch_bsl;
|
||||||
wire fetch_stb;
|
wire fetch_stb;
|
||||||
|
|
||||||
// video data
|
// video data
|
||||||
wire [7:0] border;
|
wire [7:0] border;
|
||||||
wire [7:0] vplex;
|
wire [7:0] vplex;
|
||||||
wire [7:0] vgaplex;
|
wire [7:0] vgaplex;
|
||||||
|
|
||||||
// TS
|
// TS
|
||||||
wire tsr_go;
|
wire tsr_go;
|
||||||
wire [5:0] tsr_addr;
|
wire [5:0] tsr_addr;
|
||||||
wire [8:0] tsr_line;
|
wire [8:0] tsr_line;
|
||||||
wire [7:0] tsr_page;
|
wire [7:0] tsr_page;
|
||||||
wire [8:0] tsr_x;
|
wire [8:0] tsr_x;
|
||||||
wire [2:0] tsr_xs;
|
wire [2:0] tsr_xs;
|
||||||
wire tsr_xf;
|
wire tsr_xf;
|
||||||
wire [3:0] tsr_pal;
|
wire [3:0] tsr_pal;
|
||||||
wire tsr_rdy;
|
wire tsr_rdy;
|
||||||
|
|
||||||
// TS-line
|
// TS-line
|
||||||
// wire [8:0] ts_waddr = a[8:0];
|
// wire [8:0] ts_waddr = a[8:0];
|
||||||
// wire [7:0] ts_wdata = {d[7:1], 1'b1};
|
// wire [7:0] ts_wdata = {d[7:1], 1'b1};
|
||||||
// wire ts_we = c3;
|
// wire ts_we = c3;
|
||||||
wire [8:0] ts_waddr;
|
wire [8:0] ts_waddr;
|
||||||
wire [7:0] ts_wdata;
|
wire [7:0] ts_wdata;
|
||||||
wire ts_we;
|
wire ts_we;
|
||||||
wire [8:0] ts_raddr;
|
wire [8:0] ts_raddr;
|
||||||
|
|
||||||
// VGA-line
|
// VGA-line
|
||||||
wire [9:0] vga_cnt_in;
|
wire [9:0] vga_cnt_in;
|
||||||
wire [9:0] vga_cnt_out;
|
wire [9:0] vga_cnt_out;
|
||||||
|
|
||||||
video_ports video_ports (
|
video_ports video_ports (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.d (d),
|
.d (d),
|
||||||
.res (res),
|
.res (res),
|
||||||
.line_start_s (line_start_s),
|
.line_start_s (line_start_s),
|
||||||
.border_wr (border_wr),
|
.border_wr (border_wr),
|
||||||
.zborder_wr (zborder_wr),
|
.zborder_wr (zborder_wr),
|
||||||
.zvpage_wr (zvpage_wr),
|
.zvpage_wr (zvpage_wr),
|
||||||
.vpage_wr (vpage_wr),
|
.vpage_wr (vpage_wr),
|
||||||
.vconf_wr (vconf_wr),
|
.vconf_wr (vconf_wr),
|
||||||
.gx_offsl_wr (gx_offsl_wr),
|
.gx_offsl_wr (gx_offsl_wr),
|
||||||
.gx_offsh_wr (gx_offsh_wr),
|
.gx_offsh_wr (gx_offsh_wr),
|
||||||
.gy_offsl_wr (gy_offsl_wr),
|
.gy_offsl_wr (gy_offsl_wr),
|
||||||
.gy_offsh_wr (gy_offsh_wr),
|
.gy_offsh_wr (gy_offsh_wr),
|
||||||
.t0x_offsl_wr (t0x_offsl_wr),
|
.t0x_offsl_wr (t0x_offsl_wr),
|
||||||
.t0x_offsh_wr (t0x_offsh_wr),
|
.t0x_offsh_wr (t0x_offsh_wr),
|
||||||
.t0y_offsl_wr (t0y_offsl_wr),
|
.t0y_offsl_wr (t0y_offsl_wr),
|
||||||
.t0y_offsh_wr (t0y_offsh_wr),
|
.t0y_offsh_wr (t0y_offsh_wr),
|
||||||
.t1x_offsl_wr (t1x_offsl_wr),
|
.t1x_offsl_wr (t1x_offsl_wr),
|
||||||
.t1x_offsh_wr (t1x_offsh_wr),
|
.t1x_offsh_wr (t1x_offsh_wr),
|
||||||
.t1y_offsl_wr (t1y_offsl_wr),
|
.t1y_offsl_wr (t1y_offsl_wr),
|
||||||
.t1y_offsh_wr (t1y_offsh_wr),
|
.t1y_offsh_wr (t1y_offsh_wr),
|
||||||
.palsel_wr (palsel_wr),
|
.palsel_wr (palsel_wr),
|
||||||
.hint_beg_wr (hint_beg_wr),
|
.hint_beg_wr (hint_beg_wr),
|
||||||
.vint_begl_wr (vint_begl_wr),
|
.vint_begl_wr (vint_begl_wr),
|
||||||
.vint_begh_wr (vint_begh_wr),
|
.vint_begh_wr (vint_begh_wr),
|
||||||
.tsconf_wr (tsconf_wr),
|
.tsconf_wr (tsconf_wr),
|
||||||
.tmpage_wr (tmpage_wr),
|
.tmpage_wr (tmpage_wr),
|
||||||
.t0gpage_wr (t0gpage_wr),
|
.t0gpage_wr (t0gpage_wr),
|
||||||
.t1gpage_wr (t1gpage_wr),
|
.t1gpage_wr (t1gpage_wr),
|
||||||
.sgpage_wr (sgpage_wr),
|
.sgpage_wr (sgpage_wr),
|
||||||
.border (border),
|
.border (border),
|
||||||
.vpage (vpage),
|
.vpage (vpage),
|
||||||
.vconf (vconf),
|
.vconf (vconf),
|
||||||
.gx_offs (gx_offs),
|
.gx_offs (gx_offs),
|
||||||
.gy_offs (gy_offs),
|
.gy_offs (gy_offs),
|
||||||
.t0x_offs (t0x_offs),
|
.t0x_offs (t0x_offs),
|
||||||
.t1x_offs (t1x_offs),
|
.t1x_offs (t1x_offs),
|
||||||
.t0y_offs (t0y_offs),
|
.t0y_offs (t0y_offs),
|
||||||
.t1y_offs (t1y_offs),
|
.t1y_offs (t1y_offs),
|
||||||
.palsel (palsel),
|
.palsel (palsel),
|
||||||
.hint_beg (hint_beg),
|
.hint_beg (hint_beg),
|
||||||
.vint_beg (vint_beg),
|
.vint_beg (vint_beg),
|
||||||
// .int_start (int_start), // uncomment to enable VSINT auto-increment
|
.tsconf (tsconf),
|
||||||
.tsconf (tsconf),
|
.tmpage (tmpage),
|
||||||
.tmpage (tmpage),
|
.t0gpage (t0gpage),
|
||||||
.t0gpage (t0gpage),
|
.t1gpage (t1gpage),
|
||||||
.t1gpage (t1gpage),
|
.sgpage (sgpage)
|
||||||
.sgpage (sgpage)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
video_mode video_mode (
|
video_mode video_mode (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.f1 (f1),
|
.f1 (f1),
|
||||||
.c3 (c3),
|
.c3 (c3),
|
||||||
.vpage (vpage),
|
.vpage (vpage),
|
||||||
.vconf (vconf),
|
.vconf (vconf),
|
||||||
.v60hz (v60hz),
|
.v60hz (v60hz),
|
||||||
.fetch_sel (fetch_sel),
|
.fetch_sel (fetch_sel),
|
||||||
.fetch_bsl (fetch_bsl),
|
.fetch_bsl (fetch_bsl),
|
||||||
.fetch_cnt (scnt),
|
.fetch_cnt (scnt),
|
||||||
.fetch_stb (fetch_stb),
|
.fetch_stb (fetch_stb),
|
||||||
.txt_char (fetch_temp[15:0]),
|
.txt_char (fetch_temp[15:0]),
|
||||||
.gx_offs (gx_offs),
|
.gx_offs (gx_offs),
|
||||||
.x_offs_mode (x_offs_mode),
|
.x_offs_mode (x_offs_mode),
|
||||||
.hpix_beg (hpix_beg),
|
.hpix_beg (hpix_beg),
|
||||||
.hpix_end (hpix_end),
|
.hpix_end (hpix_end),
|
||||||
.vpix_beg (vpix_beg),
|
.vpix_beg (vpix_beg),
|
||||||
.vpix_end (vpix_end),
|
.vpix_end (vpix_end),
|
||||||
.x_tiles (x_tiles),
|
.x_tiles (x_tiles),
|
||||||
.go_offs (go_offs),
|
.go_offs (go_offs),
|
||||||
.cnt_col (cnt_col),
|
.cnt_col (cnt_col),
|
||||||
.cnt_row (cnt_row),
|
.cnt_row (cnt_row),
|
||||||
.cptr (cptr),
|
.cptr (cptr),
|
||||||
.line_start_s (line_start_s),
|
.line_start_s (line_start_s),
|
||||||
.pix_start (pix_start),
|
.pix_start (pix_start),
|
||||||
.tv_hires (tv_hires),
|
.tv_hires (tv_hires),
|
||||||
.vga_hires (vga_hires),
|
.vga_hires (vga_hires),
|
||||||
.pix_stb (pix_stb),
|
.pix_stb (pix_stb),
|
||||||
.render_mode (render_mode),
|
.render_mode (render_mode),
|
||||||
.video_addr (video_addr),
|
.video_addr (video_addr),
|
||||||
.video_bw (video_bw)
|
.video_bw (video_bw)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
video_sync video_sync (
|
video_sync video_sync (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.f1 (f1),
|
.f1 (f1),
|
||||||
.c0 (c0),
|
.c0 (c0),
|
||||||
.c1 (c1),
|
.c1 (c1),
|
||||||
.c3 (c3),
|
.c3 (c3),
|
||||||
.hpix_beg (hpix_beg),
|
.hpix_beg (hpix_beg),
|
||||||
.hpix_end (hpix_end),
|
.hpix_end (hpix_end),
|
||||||
.vpix_beg (vpix_beg),
|
.vpix_beg (vpix_beg),
|
||||||
.vpix_end (vpix_end),
|
.vpix_end (vpix_end),
|
||||||
.go_offs (go_offs),
|
.go_offs (go_offs),
|
||||||
.x_offs (x_offs_mode[1:0]),
|
.x_offs (x_offs_mode[1:0]),
|
||||||
.y_offs_wr (gy_offsl_wr || gy_offsh_wr),
|
.y_offs_wr (gy_offsl_wr || gy_offsh_wr),
|
||||||
.line_start_s (line_start_s),
|
.line_start_s (line_start_s),
|
||||||
.hint_beg (hint_beg),
|
.hint_beg (hint_beg),
|
||||||
.vint_beg (vint_beg),
|
.vint_beg (vint_beg),
|
||||||
.hsync (hsync),
|
.hsync (hsync),
|
||||||
.vsync (vsync),
|
.vsync (vsync),
|
||||||
.csync (csync),
|
.csync (csync),
|
||||||
.tv_hblank (tv_hblank),
|
.tv_hblank (tv_hblank),
|
||||||
.tv_vblank (tv_vblank),
|
.tv_vblank (tv_vblank),
|
||||||
.vga_hblank (vga_hblank),
|
.vga_hblank (vga_hblank),
|
||||||
.vga_vblank (vga_vblank),
|
.vga_vblank (vga_vblank),
|
||||||
.vga_cnt_in (vga_cnt_in),
|
.vga_cnt_in (vga_cnt_in),
|
||||||
.vga_cnt_out (vga_cnt_out),
|
.vga_cnt_out (vga_cnt_out),
|
||||||
.ts_raddr (ts_raddr),
|
.ts_raddr (ts_raddr),
|
||||||
.lcount (lcount),
|
.lcount (lcount),
|
||||||
.cnt_col (cnt_col),
|
.cnt_col (cnt_col),
|
||||||
.cnt_row (cnt_row),
|
.cnt_row (cnt_row),
|
||||||
.cptr (cptr),
|
.cptr (cptr),
|
||||||
.scnt (scnt),
|
.scnt (scnt),
|
||||||
.flash (flash),
|
.flash (flash),
|
||||||
.pix_stb (pix_stb),
|
.pix_stb (pix_stb),
|
||||||
.pix_start (pix_start),
|
.pix_start (pix_start),
|
||||||
.ts_start (ts_start),
|
.ts_start (ts_start),
|
||||||
.cstart (x_offs_mode[9:2]),
|
.cstart (x_offs_mode[9:2]),
|
||||||
.rstart (gy_offs),
|
.rstart (gy_offs),
|
||||||
.int_start (int_start),
|
.int_start (int_start),
|
||||||
.v_pf (v_pf),
|
.v_pf (v_pf),
|
||||||
.hpix (hpix),
|
.hpix (hpix),
|
||||||
.v_ts (v_ts),
|
.v_ts (v_ts),
|
||||||
.vpix (vpix),
|
.vpix (vpix),
|
||||||
.hvpix (hvpix),
|
.hvpix (hvpix),
|
||||||
.nogfx (nogfx),
|
.nogfx (nogfx),
|
||||||
.cfg_60hz (cfg_60hz),
|
.cfg_60hz (cfg_60hz),
|
||||||
.sync_pol (sync_pol),
|
.sync_pol (sync_pol),
|
||||||
.v60hz (v60hz),
|
.v60hz (v60hz),
|
||||||
.vga_on (vga_on),
|
.vga_on (vga_on),
|
||||||
.video_go (video_go),
|
.video_go (video_go),
|
||||||
.video_pre_next (video_pre_next)
|
.video_pre_next(video_pre_next)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
video_fetch video_fetch (
|
video_fetch video_fetch (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.f_sel (fetch_sel),
|
.f_sel (fetch_sel),
|
||||||
.b_sel (fetch_bsl),
|
.b_sel (fetch_bsl),
|
||||||
.fetch_stb (fetch_stb),
|
.fetch_stb (fetch_stb),
|
||||||
.fetch_data (fetch_data),
|
.fetch_data (fetch_data),
|
||||||
.fetch_temp (fetch_temp),
|
.fetch_temp (fetch_temp),
|
||||||
.video_strobe (video_strobe),
|
.video_strobe (video_strobe),
|
||||||
.video_data (dram_rdata)
|
.video_data (dram_rdata)
|
||||||
//.video_data (16'b0000111100001111) //-OK
|
|
||||||
);
|
);
|
||||||
|
|
||||||
video_ts video_ts (
|
video_ts video_ts (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.start (ts_start),
|
.start (ts_start),
|
||||||
.line (lcount),
|
.line (lcount),
|
||||||
.v_ts (v_ts),
|
.v_ts (v_ts),
|
||||||
|
|
||||||
.tsconf (tsconf),
|
.tsconf (tsconf),
|
||||||
.t0gpage (t0gpage),
|
.t0gpage (t0gpage),
|
||||||
.t1gpage (t1gpage),
|
.t1gpage (t1gpage),
|
||||||
.sgpage (sgpage),
|
.sgpage (sgpage),
|
||||||
.tmpage (tmpage),
|
.tmpage (tmpage),
|
||||||
.num_tiles (x_tiles),
|
.num_tiles (x_tiles),
|
||||||
.v_pf (v_pf),
|
.v_pf (v_pf),
|
||||||
.t0x_offs (t0x_offs),
|
.t0x_offs (t0x_offs),
|
||||||
.t1x_offs (t1x_offs),
|
.t1x_offs (t1x_offs),
|
||||||
.t0y_offs (t0y_offs),
|
.t0y_offs (t0y_offs),
|
||||||
.t1y_offs (t1y_offs),
|
.t1y_offs (t1y_offs),
|
||||||
.t0_palsel (palsel[5:4]),
|
.t0_palsel (palsel[5:4]),
|
||||||
.t1_palsel (palsel[7:6]),
|
.t1_palsel (palsel[7:6]),
|
||||||
|
|
||||||
.dram_addr (tm_addr),
|
.dram_addr (tm_addr),
|
||||||
.dram_req (tm_req),
|
.dram_req (tm_req),
|
||||||
.dram_next (tm_next),
|
.dram_next (tm_next),
|
||||||
.dram_rdata (dram_rdata),
|
.dram_rdata (dram_rdata),
|
||||||
|
|
||||||
.tsr_go (tsr_go),
|
.tsr_go (tsr_go),
|
||||||
.tsr_addr (tsr_addr),
|
.tsr_addr (tsr_addr),
|
||||||
.tsr_line (tsr_line),
|
.tsr_line (tsr_line),
|
||||||
.tsr_page (tsr_page),
|
.tsr_page (tsr_page),
|
||||||
.tsr_pal (tsr_pal),
|
.tsr_pal (tsr_pal),
|
||||||
.tsr_x (tsr_x),
|
.tsr_x (tsr_x),
|
||||||
.tsr_xs (tsr_xs),
|
.tsr_xs (tsr_xs),
|
||||||
.tsr_xf (tsr_xf),
|
.tsr_xf (tsr_xf),
|
||||||
.tsr_rdy (tsr_rdy),
|
.tsr_rdy (tsr_rdy),
|
||||||
|
|
||||||
.sfile_addr_in (zma),
|
.sfile_addr_in (zma),
|
||||||
.sfile_data_in (zmd),
|
.sfile_data_in (zmd),
|
||||||
.sfile_we (sfile_we)
|
.sfile_we (sfile_we)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
video_ts_render video_ts_render (
|
video_ts_render video_ts_render (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
|
||||||
.reset (ts_start),
|
.reset (ts_start),
|
||||||
|
|
||||||
.tsr_go (tsr_go),
|
.tsr_go (tsr_go),
|
||||||
.addr (tsr_addr),
|
.addr (tsr_addr),
|
||||||
.line (tsr_line),
|
.line (tsr_line),
|
||||||
.page (tsr_page),
|
.page (tsr_page),
|
||||||
.pal (tsr_pal),
|
.pal (tsr_pal),
|
||||||
.x_coord (tsr_x),
|
.x_coord (tsr_x),
|
||||||
.x_size (tsr_xs),
|
.x_size (tsr_xs),
|
||||||
.flip (tsr_xf),
|
.flip (tsr_xf),
|
||||||
.mem_rdy (tsr_rdy),
|
.mem_rdy (tsr_rdy),
|
||||||
|
|
||||||
.ts_waddr (ts_waddr),
|
.ts_waddr (ts_waddr),
|
||||||
.ts_wdata (ts_wdata),
|
.ts_wdata (ts_wdata),
|
||||||
.ts_we (ts_we),
|
.ts_we (ts_we),
|
||||||
|
|
||||||
.dram_addr (ts_addr),
|
.dram_addr (ts_addr),
|
||||||
.dram_req (ts_req),
|
.dram_req (ts_req),
|
||||||
.dram_pre_next (ts_pre_next),
|
.dram_pre_next (ts_pre_next),
|
||||||
.dram_next (ts_next),
|
.dram_next (ts_next),
|
||||||
.dram_rdata (dram_rdata)
|
.dram_rdata (dram_rdata)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
video_render video_render (
|
video_render video_render (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.c1 (c1),
|
.c1 (c1),
|
||||||
.hvpix (hvpix),
|
.hvpix (hvpix),
|
||||||
.nogfx (nogfx),
|
.nogfx (nogfx),
|
||||||
.notsu (notsu),
|
.notsu (notsu),
|
||||||
.gfxovr (gfxovr),
|
.gfxovr (gfxovr),
|
||||||
.flash (flash),
|
.flash (flash),
|
||||||
.hires (tv_hires),
|
.hires (tv_hires),
|
||||||
.psel (scnt),
|
.psel (scnt),
|
||||||
.palsel (palsel[3:0]),
|
.palsel (palsel[3:0]),
|
||||||
.render_mode (render_mode),
|
.render_mode (render_mode),
|
||||||
.data (fetch_data),
|
.data (fetch_data),
|
||||||
.border_in (border),
|
.border_in (border),
|
||||||
.tsdata_in (ts_rdata),
|
.tsdata_in (ts_rdata),
|
||||||
.vplex_out (vplex)
|
.vplex_out (vplex)
|
||||||
);
|
);
|
||||||
|
|
||||||
video_out video_out (
|
video_out video_out (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.f0 (f0),
|
.f0 (f0),
|
||||||
.c3 (c3),
|
.c3 (c3),
|
||||||
.vga_on (vga_on),
|
.vga_on (vga_on),
|
||||||
.tv_blank (tv_hblank|tv_vblank),
|
.tv_blank (tv_hblank|tv_vblank),
|
||||||
.vga_blank (vga_hblank|vga_vblank),
|
.vga_blank (vga_hblank|vga_vblank),
|
||||||
.palsel (palsel[3:0]),
|
.palsel (palsel[3:0]),
|
||||||
.plex_sel_in ({h1, f1}),
|
.plex_sel_in ({h1, f1}),
|
||||||
.tv_hires (tv_hires),
|
.tv_hires (tv_hires),
|
||||||
.vga_hires (vga_hires),
|
.vga_hires (vga_hires),
|
||||||
.cram_addr_in (zma),
|
.cram_addr_in (zma),
|
||||||
.cram_data_in (zmd[14:0]),
|
.cram_data_in (zmd[14:0]),
|
||||||
.cram_we (cram_we),
|
.cram_we (cram_we),
|
||||||
.vplex_in (vplex),
|
.vplex_in (vplex),
|
||||||
.vgaplex (vgaplex),
|
.vgaplex (vgaplex),
|
||||||
.vred (vred),
|
.vred (vred),
|
||||||
.vgrn (vgrn),
|
.vgrn (vgrn),
|
||||||
.vblu (vblu),
|
.vblu (vblu),
|
||||||
.tst (tst)
|
.tst (tst)
|
||||||
);
|
);
|
||||||
|
|
||||||
assign hblank = vga_on ? vga_hblank : tv_hblank;
|
assign hblank = vga_on ? vga_hblank : tv_hblank;
|
||||||
@ -455,45 +451,47 @@ assign vblank = vga_on ? vga_vblank : tv_vblank;
|
|||||||
|
|
||||||
// 2 buffers: 512 pixels * 8 bits (9x8) - used as bitmap buffer for TS overlay over graphics
|
// 2 buffers: 512 pixels * 8 bits (9x8) - used as bitmap buffer for TS overlay over graphics
|
||||||
// (2 altdprams)
|
// (2 altdprams)
|
||||||
wire tl_act0 = lcount[0];
|
wire tl_act0 = lcount[0];
|
||||||
wire tl_act1 = ~lcount[0];
|
wire tl_act1 = ~lcount[0];
|
||||||
wire [8:0] ts_waddr0 = tl_act0 ? ts_raddr : ts_waddr;
|
wire [8:0] ts_waddr0 = tl_act0 ? ts_raddr : ts_waddr;
|
||||||
wire [7:0] ts_wdata0 = tl_act0 ? 8'd0 : ts_wdata;
|
wire [7:0] ts_wdata0 = tl_act0 ? 8'd0 : ts_wdata;
|
||||||
wire ts_we0 = tl_act0 ? c3 : ts_we;
|
wire ts_we0 = tl_act0 ? c3 : ts_we;
|
||||||
wire [8:0] ts_waddr1 = tl_act1 ? ts_raddr : ts_waddr;
|
wire [8:0] ts_waddr1 = tl_act1 ? ts_raddr : ts_waddr;
|
||||||
wire [7:0] ts_wdata1 = tl_act1 ? 8'd0 : ts_wdata;
|
wire [7:0] ts_wdata1 = tl_act1 ? 8'd0 : ts_wdata;
|
||||||
wire ts_we1 = tl_act1 ? c3 : ts_we;
|
wire ts_we1 = tl_act1 ? c3 : ts_we;
|
||||||
wire [7:0] ts_rdata = tl_act0 ? ts_rdata0 : ts_rdata1;
|
wire [7:0] ts_rdata = tl_act0 ? ts_rdata0 : ts_rdata1;
|
||||||
wire [7:0] ts_rdata0, ts_rdata1;
|
wire [7:0] ts_rdata0, ts_rdata1;
|
||||||
|
|
||||||
|
dpram #(.ADDRWIDTH(9)) video_tsline0
|
||||||
video_tsline0 video_tsline0 (
|
(
|
||||||
.clock (clk),
|
.clock (clk),
|
||||||
.wraddress (ts_waddr0),
|
.address_a (ts_waddr0),
|
||||||
.data (ts_wdata0),
|
.data_a (ts_wdata0),
|
||||||
.wren (ts_we0),
|
.wren_a (ts_we0),
|
||||||
.rdaddress (ts_raddr),
|
.address_b (ts_raddr),
|
||||||
.q (ts_rdata0)
|
.q_b (ts_rdata0)
|
||||||
);
|
|
||||||
video_tsline1 video_tsline1 (
|
|
||||||
.clock (clk),
|
|
||||||
.wraddress (ts_waddr1),
|
|
||||||
.data (ts_wdata1),
|
|
||||||
.wren (ts_we1),
|
|
||||||
.rdaddress (ts_raddr),
|
|
||||||
.q (ts_rdata1)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
dpram #(.ADDRWIDTH(9)) video_tsline1
|
||||||
|
(
|
||||||
|
.clock (clk),
|
||||||
|
.address_a (ts_waddr1),
|
||||||
|
.data_a (ts_wdata1),
|
||||||
|
.wren_a (ts_we1),
|
||||||
|
.address_b (ts_raddr),
|
||||||
|
.q_b (ts_rdata1)
|
||||||
|
);
|
||||||
|
|
||||||
// 2 lines * 512 pix * 8 bit (10x8) - used for VGA doubler
|
// 2 lines * 512 pix * 8 bit (10x8) - used for VGA doubler
|
||||||
// (1 altdpram)
|
// (1 altdpram)
|
||||||
video_vmem video_vmem(
|
dpram #(.ADDRWIDTH(10)) video_vmem
|
||||||
.clock (clk),
|
(
|
||||||
.wraddress (vga_cnt_in),
|
.clock (clk),
|
||||||
.data (vplex),
|
.address_a (vga_cnt_in),
|
||||||
.wren (c3),
|
.data_a (vplex),
|
||||||
.rdaddress (vga_cnt_out),
|
.wren_a (c3),
|
||||||
.q (vgaplex)
|
.address_b (vga_cnt_out),
|
||||||
|
.q_b (vgaplex)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,22 +13,23 @@
|
|||||||
// 6:0 word within line - 128 words = 512 pixels
|
// 6:0 word within line - 128 words = 512 pixels
|
||||||
|
|
||||||
|
|
||||||
module video_ts (
|
module video_ts
|
||||||
|
(
|
||||||
|
|
||||||
// clocks
|
// clocks
|
||||||
input wire clk,
|
input wire clk,
|
||||||
|
|
||||||
// video controls
|
// video controls
|
||||||
input wire start,
|
input wire start,
|
||||||
input wire [8:0] line, // = vcount - vpix_beg + 9'b1;
|
input wire [8:0] line, // = vcount - vpix_beg + 9'b1;
|
||||||
input wire v_ts,
|
input wire v_ts,
|
||||||
input wire v_pf, // vertical tilemap prefetch window
|
input wire v_pf, // vertical tilemap prefetch window
|
||||||
|
|
||||||
// video config
|
// video config
|
||||||
input wire [7:0] tsconf,
|
input wire [7:0] tsconf,
|
||||||
input wire [7:0] t0gpage,
|
input wire [7:0] t0gpage,
|
||||||
input wire [7:0] t1gpage,
|
input wire [7:0] t1gpage,
|
||||||
input wire [7:0] sgpage,
|
input wire [7:0] sgpage,
|
||||||
input wire [7:0] tmpage,
|
input wire [7:0] tmpage,
|
||||||
input wire [5:0] num_tiles,
|
input wire [5:0] num_tiles,
|
||||||
input wire [8:0] t0x_offs,
|
input wire [8:0] t0x_offs,
|
||||||
@ -38,23 +39,23 @@ module video_ts (
|
|||||||
input wire [1:0] t0_palsel,
|
input wire [1:0] t0_palsel,
|
||||||
input wire [1:0] t1_palsel,
|
input wire [1:0] t1_palsel,
|
||||||
|
|
||||||
// SFYS interface
|
// SFYS interface
|
||||||
input wire [7:0] sfile_addr_in,
|
input wire [7:0] sfile_addr_in,
|
||||||
input wire [15:0] sfile_data_in,
|
input wire [15:0] sfile_data_in,
|
||||||
input wire sfile_we,
|
input wire sfile_we,
|
||||||
|
|
||||||
// renderer interface
|
// renderer interface
|
||||||
output wire tsr_go,
|
output wire tsr_go,
|
||||||
output wire [5:0] tsr_addr, // graphics address within the line
|
output wire [5:0] tsr_addr, // graphics address within the line
|
||||||
output wire [8:0] tsr_line, // bitmap line
|
output wire [8:0] tsr_line, // bitmap line
|
||||||
output wire [7:0] tsr_page, // bitmap 1st page
|
output wire [7:0] tsr_page, // bitmap 1st page
|
||||||
output wire [8:0] tsr_x, // addr in buffer (0-359 visibles)
|
output wire [8:0] tsr_x, // addr in buffer (0-359 visibles)
|
||||||
output wire [2:0] tsr_xs, // size (8-64 pix)
|
output wire [2:0] tsr_xs, // size (8-64 pix)
|
||||||
output wire tsr_xf, // X flip
|
output wire tsr_xf, // X flip
|
||||||
output wire [3:0] tsr_pal, // palette
|
output wire [3:0] tsr_pal, // palette
|
||||||
input wire tsr_rdy, // renderer is done and ready to receive a new task
|
input wire tsr_rdy, // renderer is done and ready to receive a new task
|
||||||
|
|
||||||
// DRAM interface
|
// DRAM interface
|
||||||
output wire [20:0] dram_addr,
|
output wire [20:0] dram_addr,
|
||||||
output wire dram_req,
|
output wire dram_req,
|
||||||
input wire dram_next,
|
input wire dram_next,
|
||||||
@ -374,30 +375,28 @@ module video_ts (
|
|||||||
|
|
||||||
|
|
||||||
// SFile
|
// SFile
|
||||||
wire [15:0] sfile_rdata;
|
wire [15:0] sfile_rdata;
|
||||||
|
dpram #(.DATAWIDTH(16), .ADDRWIDTH(8)) video_sfile
|
||||||
video_sfile video_sfile (
|
(
|
||||||
.clock (!clk), // MVV 18.10.2014
|
.clock (clk),
|
||||||
.wraddress (sfile_addr_in),
|
.address_a (sfile_addr_in),
|
||||||
.data (sfile_data_in),
|
.data_a (sfile_data_in),
|
||||||
.wren (sfile_we),
|
.wren_a (sfile_we),
|
||||||
.rdaddress (sreg),
|
.address_b (sreg),
|
||||||
.q (sfile_rdata)
|
.q_b (sfile_rdata)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// 4 buffers * 2 tile-planes * 64 tiles * 16 bits (9x16) - used to prefetch tiles
|
// 4 buffers * 2 tile-planes * 64 tiles * 16 bits (9x16) - used to prefetch tiles
|
||||||
// (2 altdprams)
|
// (2 altdprams)
|
||||||
wire [15:0] tmb_rdata;
|
wire [15:0] tmb_rdata;
|
||||||
|
dpram #(.DATAWIDTH(16), .ADDRWIDTH(9)) video_tmbuf
|
||||||
video_tmbuf video_tmbuf (
|
(
|
||||||
.clock (!clk), // MVV 18.10.2014
|
.clock (clk),
|
||||||
.data (dram_rdata),
|
.address_a (tmb_waddr),
|
||||||
// .data (0),
|
.data_a (dram_rdata),
|
||||||
.wraddress (tmb_waddr),
|
.wren_a (tm_next),
|
||||||
.wren (tm_next),
|
.address_b (tmb_raddr),
|
||||||
.rdaddress (tmb_raddr),
|
.q_b (tmb_rdata)
|
||||||
.q (tmb_rdata)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
Reference in New Issue
Block a user