URL
https://opencores.org/ocsvn/vg_z80_sbc/vg_z80_sbc/trunk
Subversion Repositories vg_z80_sbc
[/] [vg_z80_sbc/] [trunk/] [rtl/] [top_vg_z80.v] - Rev 4
Go to most recent revision | Compare with Previous | Blame | View Log
////////////////////////////////////////////////////////////////////// //// //// //// $Id: top_vg_z80.v,v 1.2 2008-12-02 15:15:37 hharte Exp $ //// //// top_sk_z80.v - Z80 SBC Based on Xilinx S3E Starter Kit //// //// Top-Level //// //// //// //// This file is part of the Vector Graphic Z80 SBC Project //// //// http://www.opencores.org/projects/vg_z80_sbc/ //// //// //// //// Author: //// //// - Howard M. Harte (hharte@opencores.org) //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2008 Howard M. Harte //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// //+---------------------------------------------------------------------------+ //| 16 1MB Address Regions: //| //| 0:00000 - Wishbone I/O //| 1:00000 - SRAM (32k) //| 2:00000 - FLASH (512K) //| 6:00000 - VGA Controller //| 8:00000 - DDR SDRAM //| E:00000 - PS2 Keyboard //| F:00000 - MMU //| //| 16 4K Entries: //| //| 0:00xxx - Lower <xxx> 12 address bits are passed through unchanged. //| //| Mapping register (MMR) is divided into two fields: //| //| Upper 4-bits = MMR_H <h> //| Lower 8-bits = MMR_L <ll> //| //| forms the final 24-bit address as follows: //| //| <h>:<llxxx> //| //| This provides for 16MB of address space from 64K, //| //| In the Z80's 64K address space, the mapping is configured by default as //| follows: //| //| 0000-0FFF - 4K SRAM containing shadow copy of Monitor, only used to jump to monitor at 0xE000. //| 1000-1FFF - 4K SRAM //| 2000-2FFF - 4K SRAM //| 3000-3FFF - Shadow of 0000-0FFF //| 4000-4FFF - Shadow of 1000-1FFF //| 5000-5FFF - Shadow of 2000-2FFF //| 6000-6FFF - Shadow of 0000-0FFF //| 7000-7FFF - Shadow of 1000-1FFF //| 8000-8FFF - SDRAM //| 9000-9FFF - SDRAM //| A000-AFFF - SDRAM //| B000-BFFF - SDRAM //| C000-CFFF - FLASH //| D000-DFFF - Memory Mapping Unit Registers (should be moved to I/O space...) //| E000-EFFF - 4K SRAM Containing Vector Graphics Monitor 4.3 //| F000-FFFF - Flashwriter 2 Dual-port SRAM //| //| This design runs on the Xilinx Spartan-3E Starter Kit with XC3S500E FPGA. //| There are issues with the SDRAM controller, but everything else seems to //| work fine. //| //| It is possible to program the Monitor into FLASH, and change the memory //| mapping to use that instead of SRAM. Then a full 16K of SRAM can be //| available for user programs. There is aso slightly more than 2K of RAM //| available above the display-visible area of the Flashwriter2, from //| F780-FFFFh. This can be used as general-purpose RAM, but be aware that //| the monitor uses some of this RAM for its stack and some temporary //| variables. //+---------------------------------------------------------------------------+ `include "ddr_include.v" `define USE_INTERNAL_RAM module vg_z80_sbc ( CLK, RST, // Active Low UART0_BR_CLK, UART0_TXD, UART0_RXD, UART1_TXD, UART1_RXD, FLASH_A, FLASH_D, FLASH_CE, FLASH_OE, FLASH_WE, FLASH_BYTE, hsync, vsync, R, G, B, PS2_KBD_CLK, PS2_KBD_DAT, SD_A, SD_DQ, SD_BA, SD_CAS, SD_CK_N, SD_CK_P, SD_CKE, SD_CS, SD_DM, SD_DQS, SD_RAS, SD_WE, SD_CK_FB, rot ); input CLK ; input RST ; // UARTS output UART0_BR_CLK; output UART0_TXD; input UART0_RXD; output UART1_TXD; input UART1_RXD; // FLASH Memory Interface output [23:0] FLASH_A; inout [7:0] FLASH_D; output FLASH_CE; output FLASH_OE; output FLASH_WE; output FLASH_BYTE; // VGA output hsync, vsync, R, G, B; // PS/2 inout PS2_KBD_CLK; inout PS2_KBD_DAT; // DDR Interface //output [12:0] SD_A; //output [1:0] SD_BA; //inout [15:0] SD_DQ; //inout [1:0] SD_DQS; //output [1:0] SD_DM; output SD_CAS; output SD_CK_N; output SD_CK_P; output SD_CKE; output SD_CS; output SD_RAS; output SD_WE; input SD_CK_FB; output [ `A_RNG] SD_A; output [ `BA_RNG] SD_BA; inout [ `DQ_RNG] SD_DQ; inout [`DQS_RNG] SD_DQS; output [ `DM_RNG] SD_DM; input [2:0] rot; wire NRST = !RST; wire [7:0] flash_dat_i; wire [7:0] flash_dat_o; wire [18:0] flash_adr_o; wire flash_ce_o, flash_oe_o, flash_we_o; reg clk25mhz; // Generate 25MHz Clock from 50MHz clock input always @(posedge CLK or posedge RST) if (RST) begin clk25mhz <= 1'b0; end else begin clk25mhz <= !clk25mhz; end assign FLASH_A = {5'b0,flash_adr_o}; assign FLASH_D = (!flash_we_o) ? flash_dat_o : 8'bZZZZZZZZ; assign flash_dat_i = FLASH_D; assign FLASH_CE = flash_ce_o; assign FLASH_OE = flash_oe_o; assign FLASH_WE = flash_we_o; assign FLASH_BYTE = 1'b0; wire [15:0] rgb_int ; // WISHBONE slave interface wire [31:0] ADR_I = 32'h00000000; wire [31:0] SDAT_I = 32'hffffffff; wire [31:0] SDAT_O ; wire [3:0] SEL_I = 1'b0; wire CYC_I = 1'b0; wire STB_I = 1'b0; wire WE_I = 1'b0; wire CAB_I = 1'b0; wire ACK_O ; wire RTY_O ; wire ERR_O ; // WISHBONE master interface wire [31:0] ADR_O ; wire [31:0] MDAT_I; wire [31:0] MDAT_O = 32'h00000000; wire [3:0] SEL_O = 4'b0000; wire CYC_O = 1'b0; wire STB_O = 1'b0; wire WE_O = 1'b0; wire CAB_O = 1'b0; wire ACK_I; wire RTY_I; wire ERR_I; wire PCI_CLK = clk25mhz; wire [31:0] wb_z80_dat_o; wire wb_z80_stb_o; wire wb_z80_cyc_o; wire wb_z80_we_o; wire [15:0] wb_z80_adr_o; wire [1:0] wb_z80_tga_o; wire wb_z80_ack_i; wire [31:0] wb_z80_dat_i; wire z80_int_req_i; wire wb_z80_err_i; wire [3:0] wb_z80_sel_o; wire z80_cpu_rst; wire [7:0] wb_z80_be_dat_i; // dat moved to correct byte lane depending on sel lines. wire [7:0] wb_z80_final_dat_i; wire z80_mem_hit; assign z80_mem_hit = wb_z80_tga_o == 2'b00; assign wb_z80_int_req_i = 1'h0; assign wb_z80_sel_o = wb_z80_adr_o[1:0] == 2'b00 ? 4'b0001 : wb_z80_adr_o[1:0] == 2'b01 ? 4'b0010 : wb_z80_adr_o[1:0] == 2'b10 ? 4'b0100 : 4'b1000; assign wb_z80_dat_o[15:8] = wb_z80_dat_o[7:0]; assign wb_z80_dat_o[23:16] = wb_z80_dat_o[7:0]; assign wb_z80_dat_o[31:24] = wb_z80_dat_o[7:0]; assign wb_z80_be_dat_i = wb_z80_adr_o[1:0] == 2'b00 ? wb_z80_dat_i[7:0] : wb_z80_adr_o[1:0] == 2'b01 ? wb_z80_dat_i[15:8] : wb_z80_adr_o[1:0] == 2'b10 ? wb_z80_dat_i[23:16] : wb_z80_dat_i[31:24]; assign wb_z80_final_dat_i = z80_mem_hit ? wb_z80_be_dat_i : wb_z80_dat_i[7:0]; // Instantiate the Wishbone Z80 Core z80_core_top z80cpu ( .wb_dat_o(wb_z80_dat_o[7:0]), .wb_stb_o(wb_z80_stb_o), .wb_cyc_o(wb_z80_cyc_o), .wb_we_o(wb_z80_we_o), .wb_adr_o(wb_z80_adr_o), .wb_tga_o(wb_z80_tga_o), .wb_ack_i(wb_z80_ack_i), .wb_clk_i(PCI_CLK), .wb_dat_i(wb_z80_final_dat_i), .wb_rst_i(RST), .int_req_i(z80_int_req_i) ); // Instantiate the CPU Controller wire [31:0] wb_cpu_ctrl_dat_o; wire [31:0] wb_cpu_ctrl_dat_i; wire [3:0] wb_cpu_ctrl_sel_i; wire wb_cpu_ctrl_we_i; wire wb_cpu_ctrl_stb_i; wire wb_cpu_ctrl_cyc_i; wire wb_cpu_ctrl_ack_o; wire [5:0] wb_cpu_ctrl_adr_i; wire [31:0] cpu_ctrl_reg0; wire [31:0] cpu_ctrl_reg1; wb_cpu_ctrl cpu_ctrl0 ( .clk_i(PCI_CLK), .nrst_i(NRST), .wb_adr_i(wb_cpu_ctrl_adr_i[2:0]), .wb_dat_o(wb_cpu_ctrl_dat_o), .wb_dat_i(wb_cpu_ctrl_dat_i), .wb_sel_i(wb_cpu_ctrl_sel_i), .wb_we_i(wb_cpu_ctrl_we_i), .wb_stb_i(wb_cpu_ctrl_stb_i), .wb_cyc_i(wb_cpu_ctrl_cyc_i), .wb_ack_o(wb_cpu_ctrl_ack_o), .datareg0(cpu_ctrl_reg0), .datareg1(cpu_ctrl_reg1) ); assign z80_cpu_rst = cpu_ctrl_reg0[0]; `ifdef USE_INTERNAL_RAM // Instantiate the SRAM wire [31:0] wb_ram_dat_o; wire [31:0] wb_ram_dat_i; wire [3:0] wb_ram_sel_i; wire wb_ram_we_i; wire wb_ram_stb_i; wire wb_ram_cyc_i; wire wb_ram_ack_o; wire [14:0] wb_ram_adr_i; wb_sram sram0 ( .clk_i(PCI_CLK), .nrst_i(NRST), .wb_adr_i(wb_ram_adr_i), .wb_dat_o(wb_ram_dat_o), .wb_dat_i(wb_ram_dat_i), .wb_sel_i(wb_ram_sel_i), .wb_we_i(wb_ram_we_i), .wb_stb_i(wb_ram_stb_i), .wb_cyc_i(wb_ram_cyc_i), .wb_ack_o(wb_ram_ack_o) ); `endif // USE_INTERNAL_RAM wire [31:0] wbs_vga_dat_o; wire wbs_vga_ack_o; wire [31:0] wbs_vga_dat_i; wire wbs_vga_we_i; wire [3:0] wbs_vga_sel_i; wire [13:0] wbs_vga_adr_i; wire wbs_vga_cyc_i; wire wbs_vga_stb_i; // Instantiate the VGA Controller (Emulating Vector Graphic FlashWriter2) wb_vga #( .font_height(10), .text_height(2)) vga0 ( .clk_i(PCI_CLK), .clk_50mhz_i(CLK), .nrst_i(NRST), .wb_adr_i(wbs_vga_adr_i), .wb_dat_o(wbs_vga_dat_o), .wb_dat_i(wbs_vga_dat_i), .wb_sel_i(wbs_vga_sel_i), .wb_we_i(wbs_vga_we_i), .wb_stb_i(wbs_vga_stb_i), .wb_cyc_i(wbs_vga_cyc_i), .wb_ack_o(wbs_vga_ack_o), .vga_hsync_o(hsync), .vga_vsync_o(vsync), .vga_r_o(R), .vga_g_o(G), .vga_b_o(B) ); wire [2:0] wb_uart0_adr_i; wire [31:0] wb_uart0_dat_i; wire [31:0] wb_uart0_dat_o; wire wb_uart0_we_i; wire [3:0] wb_uart0_sel_i; wire wb_uart0_cyc_i; wire wb_uart0_stb_i; wire wb_uart0_ack_o; wire uart0_int_o; wire uart0_stx_pad_o; wire uart0_rts_pad_o; wire uart0_cts_pad_i; wire uart0_dtr_pad_o; wire uart0_dsr_pad_i; wire uart0_ri_pad_i; wire uart0_dcd_pad_i; wire uart0_baud_o; assign wb_uart0_dat_o[31:8] = 24'h000000; // Instantiate the Console UART uart_top uart0 ( .wb_clk_i(PCI_CLK), .wb_rst_i(RST), .wb_adr_i(wb_uart0_adr_i), .wb_dat_i(wb_uart0_dat_i[7:0]), .wb_dat_o(wb_uart0_dat_o[7:0]), .wb_we_i(wb_uart0_we_i), .wb_stb_i(wb_uart0_stb_i), .wb_cyc_i(wb_uart0_cyc_i), .wb_ack_o(wb_uart0_ack_o), .wb_sel_i(wb_uart0_sel_i), .int_o(uart0_int_o), .stx_pad_o(uart0_stx_pad_o), .srx_pad_i(UART0_RXD), .rts_pad_o(uart0_rts_pad_o), .cts_pad_i(uart0_cts_pad_i), .dtr_pad_o(uart0_dtr_pad_o), .dsr_pad_i(uart0_dsr_pad_i), .ri_pad_i(uart0_ri_pad_i), .dcd_pad_i(uart0_dcd_pad_i), .baud_o(uart0_baud_o) ); assign UART0_BR_CLK = uart0_baud_o; assign UART0_TXD = uart0_stx_pad_o; wire [4:0] wb_uart1_adr_i; wire [31:0] wb_uart1_dat_i; wire [31:0] wb_uart1_dat_o; wire wb_uart1_we_i; wire [3:0] wb_uart1_sel_i; wire wb_uart1_cyc_i; wire wb_uart1_stb_i; wire wb_uart1_ack_o; wire uart_lb_tx; wire uart_lb_rx; wire uart_lb2_tx; wire uart_lb2_rx; // Instantiate more UARTs and most importantly, the PS/2 Keyboard // wb_uart #( .clk_freq(25000000), .baud(115200) ) wb_uart1 ( .clk(PCI_CLK), .reset(RST), .wb_stb_i(wb_uart1_stb_i), .wb_cyc_i(wb_uart1_cyc_i), .wb_ack_o(wb_uart1_ack_o), .wb_we_i(wb_uart1_we_i), .wb_adr_i(wb_uart1_adr_i), .wb_sel_i(wb_uart1_sel_i), .wb_dat_i(wb_uart1_dat_i), .wb_dat_o(wb_uart1_dat_o), .ps2_clk(PS2_KBD_CLK), .ps2_data(PS2_KBD_DAT), .uart1_rxd(UART1_RXD), .uart1_txd(UART1_TXD), .uart2_rxd(uart_lb2_rx), .uart2_txd(uart_lb2_tx), .uart3_rxd(uart_lb2_tx), .uart3_txd(uart_lb2_rx) ); wire [31:0] wbs_flash_dat_o; wire wbs_flash_ack_o; wire [31:0] wbs_flash_dat_i; wire wbs_flash_we_i; wire [3:0] wbs_flash_sel_i; wire [18:0] wbs_flash_adr_i; wire wbs_flash_cyc_i; wire wbs_flash_stb_i; // Instantiate the FLASH Memory Interface wb_flash flash0 ( .clk_i(PCI_CLK), .nrst_i(NRST), .wb_adr_i(wbs_flash_adr_i), .wb_dat_o(wbs_flash_dat_o), .wb_dat_i(wbs_flash_dat_i), .wb_sel_i(wbs_flash_sel_i), .wb_we_i(wbs_flash_we_i), .wb_stb_i(wbs_flash_stb_i), .wb_cyc_i(wbs_flash_cyc_i), .wb_ack_o(wbs_flash_ack_o), .flash_adr_o(flash_adr_o), .flash_dat_o(flash_dat_o), .flash_dat_i(flash_dat_i), .flash_oe(flash_oe_o), .flash_ce(flash_ce_o), .flash_we(flash_we_o) ); wire [31:0] wbs_ddr_dat_o; wire wbs_ddr_ack_o; wire [31:0] wbs_ddr_dat_i; wire wbs_ddr_we_i; wire [3:0] wbs_ddr_sel_i; wire [19:0] wbs_ddr_adr_i; wire wbs_ddr_cyc_i; wire wbs_ddr_stb_i; // Instantiate the DDR SDRAM Controller // (This is not working properly at the moment... not sure why.) wb_ddr #( .phase_shift(0), .clk_multiply(12), //15), //13), .clk_divide(3), .wait200_init(26) ) ddr0 ( .clk(PCI_CLK), .reset(RST), .rot(rot), .ddr_clk(SD_CK_P), .ddr_clk_n(SD_CK_N), .ddr_clk_fb(SD_CK_FB), .ddr_ras_n(SD_RAS), .ddr_cas_n(SD_CAS), .ddr_we_n(SD_WE), .ddr_cke(SD_CKE), .ddr_cs_n(SD_CS), .ddr_a(SD_A), .ddr_ba(SD_BA), .ddr_dq(SD_DQ), .ddr_dqs(SD_DQS), .ddr_dm(SD_DM), .wb_adr_i({12'b0, wbs_ddr_adr_i}), .wb_dat_i(wbs_ddr_dat_i), .wb_dat_o(wbs_ddr_dat_o), .wb_sel_i(wbs_ddr_sel_i), .wb_cyc_i(wbs_ddr_cyc_i), .wb_stb_i(wbs_ddr_stb_i), .wb_we_i(wbs_ddr_we_i), .wb_ack_o(wbs_ddr_ack_o) ); wire [31:0] wbs_mmu_dat_o; wire wbs_mmu_ack_o; wire [31:0] wbs_mmu_dat_i; wire wbs_mmu_we_i; wire [3:0] wbs_mmu_sel_i; wire [9:0] wbs_mmu_adr_i; wire wbs_mmu_cyc_i; wire wbs_mmu_stb_i; wire [15:0] mmu_adr_i = wb_z80_adr_o[15:0]; wire [23:0] mmu_adr_o; // Instantiate the Memory Management Unit wb_mmu mmu0 ( .clk_i(PCI_CLK), .nrst_i(NRST), .wbs_adr_i(wbs_mmu_adr_i), .wbs_dat_o(wbs_mmu_dat_o), .wbs_dat_i(wbs_mmu_dat_i), .wbs_sel_i(wbs_mmu_sel_i), .wbs_we_i(wbs_mmu_we_i), .wbs_stb_i(wbs_mmu_stb_i), .wbs_cyc_i(wbs_mmu_cyc_i), .wbs_ack_o(wbs_mmu_ack_o), .mmu_adr_i(mmu_adr_i), .mmu_adr_o(mmu_adr_o) ); // Instantiate the Wishbone Backplane intercon wb_intercon ( .wb32_pci_master_dat_i(MDAT_I), .wb32_pci_master_ack_i(ACK_I), .wb32_pci_master_err_i(ERR_I), .wb32_pci_master_dat_o(MDAT_O), .wb32_pci_master_we_o(WE_O), .wb32_pci_master_sel_o(SEL_O), .wb32_pci_master_adr_o(ADR_O[23:0]), .wb32_pci_master_cyc_o(CYC_O), .wb32_pci_master_stb_o(STB_O), .wbm_z80_dat_i(wb_z80_dat_i), .wbm_z80_ack_i(wb_z80_ack_i), .wbm_z80_dat_o(wb_z80_dat_o), .wbm_z80_we_o(wb_z80_we_o), .wbm_z80_sel_o(wb_z80_sel_o), .wbm_z80_adr_o((wb_z80_tga_o & 2'b01) ? {14'h0000,wb_z80_adr_o[7:0],2'b00} : mmu_adr_o), .wbm_z80_cyc_o(wb_z80_cyc_o), .wbm_z80_stb_o(wb_z80_stb_o), .wb_cpu_ctrl_dat_o(wb_cpu_ctrl_dat_o), .wb_cpu_ctrl_ack_o(wb_cpu_ctrl_ack_o), .wb_cpu_ctrl_dat_i(wb_cpu_ctrl_dat_i), .wb_cpu_ctrl_we_i(wb_cpu_ctrl_we_i), .wb_cpu_ctrl_sel_i(wb_cpu_ctrl_sel_i), .wb_cpu_ctrl_adr_i(wb_cpu_ctrl_adr_i), .wb_cpu_ctrl_cyc_i(wb_cpu_ctrl_cyc_i), .wb_cpu_ctrl_stb_i(wb_cpu_ctrl_stb_i), `ifdef USE_INTERNAL_RAM .wb_sram_dat_o(wb_ram_dat_o), .wb_sram_ack_o(wb_ram_ack_o), .wb_sram_dat_i(wb_ram_dat_i), .wb_sram_we_i(wb_ram_we_i), .wb_sram_sel_i(wb_ram_sel_i), .wb_sram_adr_i(wb_ram_adr_i), .wb_sram_cyc_i(wb_ram_cyc_i), .wb_sram_stb_i(wb_ram_stb_i), `endif // USE_INTERNAL_RAM .wb_uart0_dat_o(wb_uart0_dat_o), .wb_uart0_ack_o(wb_uart0_ack_o), .wb_uart0_dat_i(wb_uart0_dat_i), .wb_uart0_we_i(wb_uart0_we_i), .wb_uart0_sel_i(wb_uart0_sel_i), .wb_uart0_adr_i(wb_uart0_adr_i), .wb_uart0_cyc_i(wb_uart0_cyc_i), .wb_uart0_stb_i(wb_uart0_stb_i), .wb_uart1_dat_o(wb_uart1_dat_o), .wb_uart1_ack_o(wb_uart1_ack_o), .wb_uart1_dat_i(wb_uart1_dat_i), .wb_uart1_we_i(wb_uart1_we_i), .wb_uart1_sel_i(wb_uart1_sel_i), .wb_uart1_adr_i(wb_uart1_adr_i), .wb_uart1_cyc_i(wb_uart1_cyc_i), .wb_uart1_stb_i(wb_uart1_stb_i), .wbs_flash_dat_o(wbs_flash_dat_o), .wbs_flash_ack_o(wbs_flash_ack_o), .wbs_flash_dat_i(wbs_flash_dat_i), .wbs_flash_we_i (wbs_flash_we_i), .wbs_flash_sel_i(wbs_flash_sel_i), .wbs_flash_adr_i(wbs_flash_adr_i), .wbs_flash_cyc_i(wbs_flash_cyc_i), .wbs_flash_stb_i(wbs_flash_stb_i), .wbs_ddr_dat_o(wbs_ddr_dat_o), .wbs_ddr_ack_o(wbs_ddr_ack_o), .wbs_ddr_dat_i(wbs_ddr_dat_i), .wbs_ddr_we_i (wbs_ddr_we_i), .wbs_ddr_sel_i(wbs_ddr_sel_i), .wbs_ddr_adr_i(wbs_ddr_adr_i), .wbs_ddr_cyc_i(wbs_ddr_cyc_i), .wbs_ddr_stb_i(wbs_ddr_stb_i), .wbs_mmu_dat_o(wbs_mmu_dat_o), .wbs_mmu_ack_o(wbs_mmu_ack_o), .wbs_mmu_dat_i(wbs_mmu_dat_i), .wbs_mmu_we_i (wbs_mmu_we_i), .wbs_mmu_sel_i(wbs_mmu_sel_i), .wbs_mmu_adr_i(wbs_mmu_adr_i), .wbs_mmu_cyc_i(wbs_mmu_cyc_i), .wbs_mmu_stb_i(wbs_mmu_stb_i), .wbs_vga_dat_o(wbs_vga_dat_o), .wbs_vga_ack_o(wbs_vga_ack_o), .wbs_vga_dat_i(wbs_vga_dat_i), .wbs_vga_we_i (wbs_vga_we_i), .wbs_vga_sel_i(wbs_vga_sel_i), .wbs_vga_adr_i(wbs_vga_adr_i), .wbs_vga_cyc_i(wbs_vga_cyc_i), .wbs_vga_stb_i(wbs_vga_stb_i), .clk(PCI_CLK), .reset(RST) ); endmodule
Go to most recent revision | Compare with Previous | Blame | View Log