mirror of
https://github.com/UzixLS/TSConf_MiST.git
synced 2025-07-18 23:01:37 +03:00
643 lines
16 KiB
Verilog
643 lines
16 KiB
Verilog
`include "tune.v"
|
|
|
|
// This module is a video top-level
|
|
|
|
module video_top
|
|
(
|
|
// clocks
|
|
input wire clk,
|
|
input wire f0, f1,
|
|
input wire h1,
|
|
input wire c0, c1, c3,
|
|
// input wire t0, // debug!!!
|
|
|
|
// video DAC
|
|
output wire [1:0] vred,
|
|
output wire [1:0] vgrn,
|
|
output wire [1:0] vblu,
|
|
|
|
// video raw (for 15 bit DAC)
|
|
output wire [4:0] vred_raw,
|
|
output wire [4:0] vgrn_raw,
|
|
output wire [4:0] vblu_raw,
|
|
output wire vdac_mode,
|
|
`ifdef IDE_VDAC2
|
|
output wire vdac2_msel,
|
|
`endif
|
|
|
|
// video syncs
|
|
output wire hsync,
|
|
output wire vsync,
|
|
output wire csync,
|
|
|
|
// Z80 controls
|
|
input wire [ 7:0] d,
|
|
input wire [15:0] zmd,
|
|
input wire [ 7:0] zma,
|
|
input wire cram_we,
|
|
input wire sfile_we,
|
|
|
|
// port write strobes
|
|
input wire zborder_wr,
|
|
input wire border_wr,
|
|
input wire zvpage_wr,
|
|
input wire vpage_wr,
|
|
input wire vconf_wr,
|
|
input wire gx_offsl_wr,
|
|
input wire gx_offsh_wr,
|
|
input wire gy_offsl_wr,
|
|
input wire gy_offsh_wr,
|
|
input wire t0x_offsl_wr,
|
|
input wire t0x_offsh_wr,
|
|
input wire t0y_offsl_wr,
|
|
input wire t0y_offsh_wr,
|
|
input wire t1x_offsl_wr,
|
|
input wire t1x_offsh_wr,
|
|
input wire t1y_offsl_wr,
|
|
input wire t1y_offsh_wr,
|
|
input wire tsconf_wr,
|
|
input wire palsel_wr,
|
|
input wire tmpage_wr,
|
|
input wire t0gpage_wr,
|
|
input wire t1gpage_wr,
|
|
input wire sgpage_wr,
|
|
input wire hint_beg_wr ,
|
|
input wire vint_begl_wr,
|
|
input wire vint_begh_wr,
|
|
|
|
// ZX controls
|
|
input wire res,
|
|
output wire int_start,
|
|
output wire line_start_s,
|
|
`ifdef PENT_312
|
|
output wire [4:0] hcnt,
|
|
output wire upper8,
|
|
`endif
|
|
|
|
// DRAM interface
|
|
output wire [20:0] video_addr,
|
|
output wire [ 4:0] video_bw,
|
|
output wire video_go,
|
|
input wire [15:0] dram_rdata, // raw, should be latched by c2
|
|
input wire video_pre_next,
|
|
input wire video_strobe,
|
|
output wire [20:0] ts_addr,
|
|
output wire ts_req,
|
|
input wire ts_pre_next,
|
|
input wire ts_next,
|
|
output wire [20:0] tm_addr,
|
|
output wire tm_req,
|
|
input wire tm_next,
|
|
|
|
// video controls
|
|
input wire cfg_60hz,
|
|
input wire vga_on
|
|
);
|
|
|
|
// video config
|
|
wire [7:0] vpage; // re-latched at line_start
|
|
wire [7:0] vconf; //
|
|
wire [8:0] gx_offs; //
|
|
wire [8:0] gy_offs; //
|
|
wire [7:0] palsel; //
|
|
wire [8:0] t0x_offs; //
|
|
wire [8:0] t1x_offs; //
|
|
wire [7:0] t0gpage; //
|
|
wire [7:0] t1gpage; //
|
|
wire [7:0] sgpage; // * not yet !!!
|
|
wire [8:0] t0y_offs;
|
|
wire [8:0] t1y_offs;
|
|
wire [7:0] tsconf;
|
|
wire [7:0] tmpage;
|
|
wire [7:0] hint_beg;
|
|
wire [8:0] vint_beg;
|
|
wire [8:0] hpix_beg;
|
|
wire [8:0] hpix_end;
|
|
wire [8:0] vpix_beg;
|
|
wire [8:0] vpix_end;
|
|
wire [8:0] hpix_beg_ts;
|
|
wire [8:0] hpix_end_ts;
|
|
wire [8:0] vpix_beg_ts;
|
|
wire [8:0] vpix_end_ts;
|
|
wire [5:0] x_tiles;
|
|
wire [9:0] x_offs_mode;
|
|
wire [4:0] go_offs;
|
|
wire [1:0] render_mode;
|
|
wire tv_hires;
|
|
wire vga_hires;
|
|
wire v60hz;
|
|
wire nogfx = vconf[5];
|
|
wire notsu = vconf[4];
|
|
`ifdef IDE_VDAC2
|
|
assign vdac2_msel = vconf[2];
|
|
`endif
|
|
wire tv_blank;
|
|
|
|
// counters
|
|
wire [7:0] cnt_col;
|
|
wire [8:0] cnt_row;
|
|
wire cptr;
|
|
wire [3:0] scnt;
|
|
wire [8:0] lcount;
|
|
|
|
// synchro
|
|
wire frame_start;
|
|
wire pix_start;
|
|
wire tv_pix_start;
|
|
wire vga_pix_start;
|
|
wire ts_start;
|
|
wire vga_blank;
|
|
wire vga_line;
|
|
wire v_ts;
|
|
wire v_pf;
|
|
wire hpix;
|
|
wire vpix;
|
|
wire hvpix;
|
|
wire hvtspix;
|
|
wire frame;
|
|
wire flash;
|
|
wire pix_stb;
|
|
|
|
// fetcher
|
|
wire [31:0] fetch_data;
|
|
wire [31:0] fetch_temp;
|
|
wire [3:0] fetch_sel;
|
|
wire [1:0] fetch_bsl;
|
|
wire fetch_stb;
|
|
|
|
// video data
|
|
wire [7:0] border;
|
|
wire [7:0] vplex;
|
|
wire [7:0] vgaplex;
|
|
|
|
// TS
|
|
wire tsr_go;
|
|
wire [5:0] tsr_addr;
|
|
wire [8:0] tsr_line;
|
|
wire [7:0] tsr_page;
|
|
wire [8:0] tsr_x;
|
|
wire [2:0] tsr_xs;
|
|
wire tsr_xf;
|
|
wire [3:0] tsr_pal;
|
|
wire tsr_rdy;
|
|
|
|
// TS-line
|
|
wire [8:0] ts_waddr;
|
|
wire [7:0] ts_wdata;
|
|
wire ts_we;
|
|
wire [8:0] ts_raddr;
|
|
|
|
// VGA-line
|
|
wire [9:0] vga_cnt_in;
|
|
wire [9:0] vga_cnt_out;
|
|
|
|
wire [7:0] ts_rdata0, ts_rdata1;
|
|
wire tl_act0 = lcount[0];
|
|
wire tl_act1 = ~lcount[0];
|
|
wire [8:0] ts_waddr0 = tl_act0 ? ts_raddr : ts_waddr;
|
|
wire [7:0] ts_wdata0 = tl_act0 ? 8'd0 : ts_wdata;
|
|
wire ts_we0 = tl_act0 ? c3 : ts_we;
|
|
wire [8:0] ts_waddr1 = tl_act1 ? ts_raddr : ts_waddr;
|
|
wire [7:0] ts_wdata1 = tl_act1 ? 8'd0 : ts_wdata;
|
|
wire ts_we1 = tl_act1 ? c3 : ts_we;
|
|
wire [7:0] ts_rdata = tl_act0 ? ts_rdata0 : ts_rdata1;
|
|
|
|
video_ports video_ports
|
|
(
|
|
.clk (clk),
|
|
.d (d),
|
|
.res (res),
|
|
.line_start_s (line_start_s),
|
|
.border_wr (border_wr),
|
|
.zborder_wr (zborder_wr),
|
|
.zvpage_wr (zvpage_wr),
|
|
.vpage_wr (vpage_wr),
|
|
.vconf_wr (vconf_wr),
|
|
.gx_offsl_wr (gx_offsl_wr),
|
|
.gx_offsh_wr (gx_offsh_wr),
|
|
.gy_offsl_wr (gy_offsl_wr),
|
|
.gy_offsh_wr (gy_offsh_wr),
|
|
.t0x_offsl_wr (t0x_offsl_wr),
|
|
.t0x_offsh_wr (t0x_offsh_wr),
|
|
.t0y_offsl_wr (t0y_offsl_wr),
|
|
.t0y_offsh_wr (t0y_offsh_wr),
|
|
.t1x_offsl_wr (t1x_offsl_wr),
|
|
.t1x_offsh_wr (t1x_offsh_wr),
|
|
.t1y_offsl_wr (t1y_offsl_wr),
|
|
.t1y_offsh_wr (t1y_offsh_wr),
|
|
.palsel_wr (palsel_wr),
|
|
.hint_beg_wr (hint_beg_wr),
|
|
.vint_begl_wr (vint_begl_wr),
|
|
.vint_begh_wr (vint_begh_wr),
|
|
.tsconf_wr (tsconf_wr),
|
|
.tmpage_wr (tmpage_wr),
|
|
.t0gpage_wr (t0gpage_wr),
|
|
.t1gpage_wr (t1gpage_wr),
|
|
.sgpage_wr (sgpage_wr),
|
|
.border (border),
|
|
.vpage (vpage),
|
|
.vconf (vconf),
|
|
.gx_offs (gx_offs),
|
|
.gy_offs (gy_offs),
|
|
.t0x_offs (t0x_offs),
|
|
.t1x_offs (t1x_offs),
|
|
.t0y_offs (t0y_offs),
|
|
.t1y_offs (t1y_offs),
|
|
.palsel (palsel),
|
|
.hint_beg (hint_beg),
|
|
.vint_beg (vint_beg),
|
|
`ifdef AUTO_INT
|
|
.int_start (int_start),
|
|
`else
|
|
.int_start (1'b0),
|
|
`endif
|
|
.tsconf (tsconf),
|
|
.tmpage (tmpage),
|
|
.t0gpage (t0gpage),
|
|
.t1gpage (t1gpage),
|
|
.sgpage (sgpage)
|
|
);
|
|
|
|
video_mode video_mode
|
|
(
|
|
.clk (clk),
|
|
.f1 (f1),
|
|
.c3 (c3),
|
|
.vpage (vpage),
|
|
.vconf (vconf),
|
|
.v60hz (v60hz),
|
|
.fetch_sel (fetch_sel),
|
|
.fetch_bsl (fetch_bsl),
|
|
.fetch_cnt (scnt),
|
|
.fetch_stb (fetch_stb),
|
|
.txt_char (fetch_temp[15:0]),
|
|
.gx_offs (gx_offs),
|
|
.x_offs_mode (x_offs_mode),
|
|
`ifdef XTR_FEAT
|
|
.ts_rres_ext (tsconf[0]),
|
|
`else
|
|
.ts_rres_ext (1'b0),
|
|
`endif
|
|
.hpix_beg (hpix_beg),
|
|
.hpix_end (hpix_end),
|
|
.vpix_beg (vpix_beg),
|
|
.vpix_end (vpix_end),
|
|
.hpix_beg_ts (hpix_beg_ts),
|
|
.hpix_end_ts (hpix_end_ts),
|
|
.vpix_beg_ts (vpix_beg_ts),
|
|
.vpix_end_ts (vpix_end_ts),
|
|
.x_tiles (x_tiles),
|
|
.go_offs (go_offs),
|
|
.cnt_col (cnt_col),
|
|
.cnt_row (cnt_row),
|
|
.cptr (cptr),
|
|
.line_start_s (line_start_s),
|
|
.pix_start (pix_start),
|
|
.tv_hires (tv_hires),
|
|
.vga_hires (vga_hires),
|
|
.pix_stb (pix_stb),
|
|
.render_mode (render_mode),
|
|
.video_addr (video_addr),
|
|
.video_bw (video_bw)
|
|
);
|
|
|
|
video_sync video_sync
|
|
(
|
|
.clk (clk),
|
|
.f1 (f1),
|
|
.c0 (c0),
|
|
.c3 (c3),
|
|
.hpix_beg (hpix_beg),
|
|
.hpix_end (hpix_end),
|
|
.vpix_beg (vpix_beg),
|
|
.vpix_end (vpix_end),
|
|
.hpix_beg_ts (hpix_beg_ts),
|
|
.hpix_end_ts (hpix_end_ts),
|
|
.vpix_beg_ts (vpix_beg_ts),
|
|
.vpix_end_ts (vpix_end_ts),
|
|
.go_offs (go_offs),
|
|
.x_offs (x_offs_mode[1:0]),
|
|
.y_offs_wr (gy_offsl_wr || gy_offsh_wr),
|
|
.line_start_s (line_start_s),
|
|
.hint_beg (hint_beg),
|
|
.vint_beg (vint_beg),
|
|
.hsync (hsync),
|
|
.vsync (vsync),
|
|
.csync (csync),
|
|
.tv_blank (tv_blank),
|
|
.vga_blank (vga_blank),
|
|
.vga_cnt_in (vga_cnt_in),
|
|
.vga_cnt_out (vga_cnt_out),
|
|
.ts_raddr (ts_raddr),
|
|
.lcount (lcount),
|
|
.cnt_col (cnt_col),
|
|
.cnt_row (cnt_row),
|
|
.cptr (cptr),
|
|
.scnt (scnt),
|
|
`ifdef PENT_312
|
|
.hcnt (hcnt),
|
|
.upper8 (upper8),
|
|
`endif
|
|
.frame (frame),
|
|
.flash (flash),
|
|
.pix_stb (pix_stb),
|
|
.pix_start (pix_start),
|
|
.ts_start (ts_start),
|
|
.cstart (x_offs_mode[9:2]),
|
|
.rstart (gy_offs),
|
|
.vga_line (vga_line),
|
|
.frame_start (frame_start),
|
|
.int_start (int_start),
|
|
.v_pf (v_pf),
|
|
.hpix (hpix),
|
|
.v_ts (v_ts),
|
|
.vpix (vpix),
|
|
.hvpix (hvpix),
|
|
.hvtspix (hvtspix),
|
|
.nogfx (nogfx),
|
|
.vga_on (vga_on),
|
|
.cfg_60hz (cfg_60hz),
|
|
.v60hz (v60hz),
|
|
.video_go (video_go),
|
|
.video_pre_next (video_pre_next)
|
|
);
|
|
|
|
video_fetch video_fetch
|
|
(
|
|
.clk (clk),
|
|
.f_sel (fetch_sel),
|
|
.b_sel (fetch_bsl),
|
|
.fetch_stb (fetch_stb),
|
|
.fetch_data (fetch_data),
|
|
.fetch_temp (fetch_temp),
|
|
.video_strobe (video_strobe),
|
|
.video_data (dram_rdata)
|
|
);
|
|
|
|
video_ts video_ts
|
|
(
|
|
.clk (clk),
|
|
.start (ts_start),
|
|
.line (lcount),
|
|
.v_ts (v_ts),
|
|
|
|
`ifdef DISABLE_TSU
|
|
.tsconf (0),
|
|
`else
|
|
.tsconf (tsconf),
|
|
// .tsconf ({3'b0, tsconf[4:0]}), // no TSU
|
|
// .tsconf ({1'b0, tsconf[6:0]}), // no sprites
|
|
// .tsconf ({tsconf[7], 2'b00, tsconf[4:0]}), // no tiles
|
|
`endif
|
|
.t0gpage (t0gpage),
|
|
.t1gpage (t1gpage),
|
|
.sgpage (sgpage),
|
|
.tmpage (tmpage),
|
|
.num_tiles (x_tiles),
|
|
.v_pf (v_pf),
|
|
.t0x_offs (t0x_offs),
|
|
.t1x_offs (t1x_offs),
|
|
.t0y_offs (t0y_offs),
|
|
.t1y_offs (t1y_offs),
|
|
.t0_palsel (palsel[5:4]),
|
|
.t1_palsel (palsel[7:6]),
|
|
|
|
.dram_addr (tm_addr),
|
|
.dram_req (tm_req),
|
|
.dram_next (tm_next),
|
|
.dram_rdata (dram_rdata),
|
|
|
|
.tsr_go (tsr_go),
|
|
.tsr_addr (tsr_addr),
|
|
.tsr_line (tsr_line),
|
|
.tsr_page (tsr_page),
|
|
.tsr_pal (tsr_pal),
|
|
.tsr_x (tsr_x),
|
|
.tsr_xs (tsr_xs),
|
|
.tsr_xf (tsr_xf),
|
|
.tsr_rdy (tsr_rdy),
|
|
|
|
.sfile_addr_in (zma),
|
|
.sfile_data_in (zmd),
|
|
.sfile_we (sfile_we)
|
|
);
|
|
|
|
video_ts_render video_ts_render
|
|
(
|
|
.clk (clk),
|
|
|
|
.reset (ts_start),
|
|
|
|
.tsr_go (tsr_go),
|
|
.addr (tsr_addr),
|
|
.line (tsr_line),
|
|
.page (tsr_page),
|
|
.pal (tsr_pal),
|
|
.x_coord (tsr_x),
|
|
.x_size (tsr_xs),
|
|
.flip (tsr_xf),
|
|
.mem_rdy (tsr_rdy),
|
|
|
|
.ts_waddr (ts_waddr),
|
|
.ts_wdata (ts_wdata),
|
|
.ts_we (ts_we),
|
|
|
|
.dram_addr (ts_addr),
|
|
.dram_req (ts_req),
|
|
.dram_pre_next (ts_pre_next),
|
|
.dram_next (ts_next),
|
|
.dram_rdata (dram_rdata)
|
|
);
|
|
|
|
video_render video_render
|
|
(
|
|
.clk (clk),
|
|
.c1 (c1),
|
|
.hvpix (hvpix),
|
|
.hvtspix (hvtspix),
|
|
.nogfx (nogfx),
|
|
.notsu (notsu),
|
|
`ifdef XTR_FEAT
|
|
.gfxovr (vconf[3]),
|
|
`else
|
|
.gfxovr (1'b0),
|
|
`endif
|
|
.flash (flash),
|
|
.hires (tv_hires),
|
|
.psel (scnt),
|
|
.palsel (palsel[3:0]),
|
|
.render_mode (render_mode),
|
|
.data (fetch_data),
|
|
.border_in (border),
|
|
.tsdata_in (ts_rdata),
|
|
.vplex_out (vplex)
|
|
);
|
|
|
|
video_out video_out
|
|
(
|
|
.clk (clk),
|
|
.c3 (c3),
|
|
.vga_on (vga_on),
|
|
.tv_blank (tv_blank),
|
|
.vga_blank (vga_blank),
|
|
.vga_line (vga_line),
|
|
.palsel (palsel[3:0]),
|
|
.plex_sel_in ({h1, f1}),
|
|
.tv_hires (tv_hires),
|
|
.vga_hires (vga_hires),
|
|
.cram_addr_in (zma),
|
|
.cram_data_in (zmd[15:0]),
|
|
.cram_we (cram_we),
|
|
.vplex_in (vplex),
|
|
.vgaplex (vgaplex),
|
|
.vred (vred),
|
|
.vgrn (vgrn),
|
|
.vblu (vblu),
|
|
.vred_raw (vred_raw),
|
|
.vgrn_raw (vgrn_raw),
|
|
.vblu_raw (vblu_raw),
|
|
.vdac_mode (vdac_mode)
|
|
);
|
|
|
|
// 2 buffers: 512 pixels * 8 bits (9x8) - used as bitmap buffer for TS overlay over graphics
|
|
dpram #(.ADDRWIDTH(9)) video_tsline0
|
|
(
|
|
.clock (clk),
|
|
.address_a (ts_waddr0),
|
|
.data_a (ts_wdata0),
|
|
.wren_a (ts_we0),
|
|
.address_b (ts_raddr),
|
|
.q_b (ts_rdata0)
|
|
);
|
|
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)
|
|
);
|
|
/*
|
|
altdpram video_tsline0
|
|
(
|
|
.inclock (clk),
|
|
.wren (ts_we0),
|
|
.data (ts_wdata0),
|
|
.rdaddress (ts_raddr),
|
|
.wraddress (ts_waddr0),
|
|
.q (ts_rdata0),
|
|
.aclr (1'b0),
|
|
.byteena (1'b1),
|
|
.inclocken (1'b1),
|
|
.outclock (1'b1),
|
|
.outclocken (1'b1),
|
|
.rdaddressstall (1'b0),
|
|
.rden (1'b1),
|
|
.wraddressstall (1'b0)
|
|
);
|
|
|
|
defparam
|
|
video_tsline0.indata_aclr = "OFF",
|
|
video_tsline0.indata_reg = "INCLOCK",
|
|
video_tsline0.intended_device_family = "ACEX1K",
|
|
video_tsline0.lpm_type = "altdpram",
|
|
video_tsline0.outdata_aclr = "OFF",
|
|
video_tsline0.outdata_reg = "UNREGISTERED",
|
|
video_tsline0.rdaddress_aclr = "OFF",
|
|
video_tsline0.rdaddress_reg = "INCLOCK",
|
|
video_tsline0.rdcontrol_aclr = "OFF",
|
|
video_tsline0.rdcontrol_reg = "UNREGISTERED",
|
|
video_tsline0.width = 8,
|
|
video_tsline0.widthad = 9,
|
|
video_tsline0.wraddress_aclr = "OFF",
|
|
video_tsline0.wraddress_reg = "INCLOCK",
|
|
video_tsline0.wrcontrol_aclr = "OFF",
|
|
video_tsline0.wrcontrol_reg = "INCLOCK";
|
|
|
|
altdpram video_tsline1
|
|
(
|
|
.inclock (clk),
|
|
.wren (ts_we1),
|
|
.data (ts_wdata1),
|
|
.rdaddress (ts_raddr),
|
|
.wraddress (ts_waddr1),
|
|
.q (ts_rdata1),
|
|
.aclr (1'b0),
|
|
.byteena (1'b1),
|
|
.inclocken (1'b1),
|
|
.outclock (1'b1),
|
|
.outclocken (1'b1),
|
|
.rdaddressstall (1'b0),
|
|
.rden (1'b1),
|
|
.wraddressstall (1'b0)
|
|
);
|
|
|
|
defparam
|
|
video_tsline1.indata_aclr = "OFF",
|
|
video_tsline1.indata_reg = "INCLOCK",
|
|
video_tsline1.intended_device_family = "ACEX1K",
|
|
video_tsline1.lpm_type = "altdpram",
|
|
video_tsline1.outdata_aclr = "OFF",
|
|
video_tsline1.outdata_reg = "UNREGISTERED",
|
|
video_tsline1.rdaddress_aclr = "OFF",
|
|
video_tsline1.rdaddress_reg = "INCLOCK",
|
|
video_tsline1.rdcontrol_aclr = "OFF",
|
|
video_tsline1.rdcontrol_reg = "UNREGISTERED",
|
|
video_tsline1.width = 8,
|
|
video_tsline1.widthad = 9,
|
|
video_tsline1.wraddress_aclr = "OFF",
|
|
video_tsline1.wraddress_reg = "INCLOCK",
|
|
video_tsline1.wrcontrol_aclr = "OFF",
|
|
video_tsline1.wrcontrol_reg = "INCLOCK";
|
|
*/
|
|
|
|
// 2 lines * 512 pix * 8 bit (10x8) - used for VGA doubler
|
|
dpram #(.ADDRWIDTH(10)) video_vmem
|
|
(
|
|
.clock (clk),
|
|
.address_a (vga_cnt_in),
|
|
.data_a (vplex),
|
|
.wren_a (c3),
|
|
.address_b (vga_cnt_out),
|
|
.q_b (vgaplex)
|
|
);
|
|
/*
|
|
altdpram video_vmem
|
|
(
|
|
.inclock (clk),
|
|
.outclock (clk),
|
|
.wren (c3),
|
|
.data (vplex),
|
|
.rdaddress (vga_cnt_out),
|
|
.wraddress (vga_cnt_in),
|
|
.q (vgaplex),
|
|
.aclr (1'b0),
|
|
.byteena (1'b1),
|
|
.inclocken (1'b1),
|
|
.outclocken (1'b1),
|
|
.rdaddressstall (1'b0),
|
|
.rden (1'b1),
|
|
.wraddressstall (1'b0)
|
|
);
|
|
|
|
defparam
|
|
video_vmem.indata_aclr = "OFF",
|
|
video_vmem.indata_reg = "INCLOCK",
|
|
video_vmem.intended_device_family = "ACEX1K",
|
|
video_vmem.lpm_type = "altdpram",
|
|
video_vmem.outdata_aclr = "OFF",
|
|
video_vmem.outdata_reg = "OUTCLOCK",
|
|
video_vmem.rdaddress_aclr = "OFF",
|
|
video_vmem.rdaddress_reg = "INCLOCK",
|
|
video_vmem.rdcontrol_aclr = "OFF",
|
|
video_vmem.rdcontrol_reg = "UNREGISTERED",
|
|
video_vmem.width = 8,
|
|
video_vmem.widthad = 10,
|
|
video_vmem.wraddress_aclr = "OFF",
|
|
video_vmem.wraddress_reg = "INCLOCK",
|
|
video_vmem.wrcontrol_aclr = "OFF",
|
|
video_vmem.wrcontrol_reg = "INCLOCK";
|
|
*/
|
|
endmodule
|