📄 demo_amba.v
字号:
/***********************************************************************
*
* High Speed AMBA Bus (AHB) Interface Example
* for "QuickMIPS" QL901M-680 Device
* demo_amba.v
*
* Copyright (c) 2002
* QuickLogic, Corp.
*
*
************************************************************************/
`timescale 1ns/10ps
`include "macros.v"
`include "ahb_master.v"
`include "ahb_slave.v"
`include "appreq_sm.v"
`include "app_codec.v"
`include "qmipsesp.v"
`include "busreq_sm.v"
`include "fifo128x32.v"
module demo_amba (
/**************/
/* ESP IOs */
/**************/
// MC Pad signals off-chip
CS_n,
WEN_n,
BLS_n,
OEN_n,
BOOT,
ADDR,
DATA,
SD_DQM,
SD_CS_n,
SD_CKE,
SD_RAS_n,
SD_CAS_n,
SD_WE_n,
SD_CLKOUT,
SD_CLKIN,
// U1 Pad signals off-chip
U1_TXD_SIROUT_n,
U1_RXD_SIRIN,
U1_CTS_n,
U1_DCD_n,
U1_DSR_n,
U1_RI_n,
U1_DTR_n,
U1_RTS_n,
// U2 Pad signals off-chip
U2_RXD_SIRIN,
U2_TXD_SIROUT_n,
// PL Pad signals off-chip
PL_CLOCKIN,
PL_RESET_n,
PL_WARMRESET_n,
PL_ENABLE,
PL_CLKOUT,
PL_BYPASS,
PL_LOCK,
// GL Pad signals off-chip
CPU_BIGENDIAN,
CPU_EXTINT_n,
// JD Pad signals off-chip
EJTAG_DEBUGM,
EJTAG_DINT,
EJTAG_TCK,
EJTAG_TDI,
EJTAG_TDO,
EJTAG_TMS,
EJTAG_TRST,
// PC Pad signals off-chip
PCI_AD,
PCI_C_BE_n,
PCI_PAR,
PCI_FRAME_n,
PCI_IRDY_n,
PCI_TRDY_n,
PCI_STOP_n,
PCI_DEVSEL_n,
PCI_IDSEL,
PCI_SERR_n,
PCI_PERR_n,
PCI_REQ_n,
PCI_GNT_n,
PCI_LOCK_n,
PCI_INTA_n,
PCI_CLK,
PCI_RST_n,
// TM Pad signals off-chip
TM_OVERFLOW,
TM_ENABLE,
// M1 Pad signals off-chip
M1_CRS,
M1_COL,
M1_RXCLK,
M1_RXD,
M1_RXDV,
M1_RXER,
M1_TXCLK,
M1_MDC,
M1_TXD,
M1_TXEN,
M1_MDIO,
// M2 Pad signals off-chip
M2_CRS,
M2_COL,
M2_RXCLK,
M2_RXD,
M2_RXDV,
M2_RXER,
M2_TXCLK,
M2_MDC,
M2_TXD,
M2_TXEN,
M2_MDIO,
/**************/
/* Fabric IOs */
/**************/
// LED output
LED8
);
// SM Pad signals off-chip
output [7:0] CS_n;
output WEN_n;
output [3:0] BLS_n;
output OEN_n;
input [1:0] BOOT;
output [23:0] ADDR;
inout [31:0] DATA;
output [3:0] SD_DQM;
output [3:0] SD_CS_n;
output [3:0] SD_CKE;
output SD_RAS_n;
output SD_CAS_n;
output SD_WE_n;
output SD_CLKOUT;
input SD_CLKIN;
// U1 Pad signals off-chip
output U1_TXD_SIROUT_n;
input U1_RXD_SIRIN;
input U1_CTS_n;
input U1_DCD_n;
input U1_DSR_n;
input U1_RI_n;
output U1_DTR_n;
output U1_RTS_n;
// U2 Pad signals off-chip
input U2_RXD_SIRIN;
output U2_TXD_SIROUT_n;
// PL Pad signals off-chip
input PL_CLOCKIN;
input PL_RESET_n;
input PL_WARMRESET_n;
input PL_ENABLE;
input PL_BYPASS;
output PL_CLKOUT;
output PL_LOCK ;
// GL Pad signals off-chip
input [6:0] CPU_EXTINT_n;
input CPU_BIGENDIAN;
// JD Pad signals off-chip
input EJTAG_DINT;
output EJTAG_DEBUGM;
input EJTAG_TCK;
input EJTAG_TDI;
output EJTAG_TDO;
input EJTAG_TMS;
input EJTAG_TRST;
// PC Pad signals off-chip
inout [31:0] PCI_AD;
inout [3:0] PCI_C_BE_n;
inout PCI_PAR;
inout PCI_FRAME_n;
inout PCI_IRDY_n;
inout PCI_TRDY_n;
inout PCI_STOP_n;
inout PCI_DEVSEL_n;
input PCI_IDSEL;
output PCI_SERR_n;
output PCI_PERR_n;
output PCI_REQ_n;
input PCI_GNT_n;
input PCI_LOCK_n;
output PCI_INTA_n;
input PCI_CLK;
input PCI_RST_n;
// TM Pad signals off-chip
output TM_OVERFLOW;
input TM_ENABLE;
// M1 Pad signals off-chip
input M1_CRS;
input M1_COL;
input M1_RXCLK;
input [3:0] M1_RXD;
input M1_RXDV;
input M1_RXER;
input M1_TXCLK;
output M1_MDC;
output [3:0] M1_TXD;
output M1_TXEN;
inout M1_MDIO;
// M2 Pad signals off-chip
input M2_CRS;
input M2_COL;
input M2_RXCLK;
input [3:0] M2_RXD;
input M2_RXDV;
input M2_RXER;
input M2_TXCLK;
output M2_MDC;
output [3:0] M2_TXD;
output M2_TXEN;
inout M2_MDIO;
// LED Output signals (Application I/O)
output [7:0] LED8;
// AHB & APB interface signals
wire hclk;
wire hresetn;
wire [31:0] ahbm_haddr;
wire [1:0] ahbm_htrans;
wire ahbm_hwrite;
wire [2:0] ahbm_hsize;
wire [2:0] ahbm_hburst;
wire [3:0] ahbm_hprot;
wire [31:0] ahbm_hwdata;
wire [31:0] ahbm_hrdata;
wire ahb_hready_in;
wire [1:0] ahbm_hresp;
wire ahbm_hbusreq;
wire ahbm_hgrant;
wire ahbs_hsel;
wire [31:0] ahbs_haddr;
wire [1:0] ahbs_htrans;
wire ahbs_hwrite;
wire [2:0] ahbs_hsize;
wire [2:0] ahbs_hburst;
wire [3:0] ahbs_hprot;
wire [31:0] ahbs_hwdata;
wire [31:0] ahbs_hrdata;
wire ahbs_hready_out;
wire [1:0] ahbs_hresp;
wire [15:2] apbs_paddr;
wire [31:0] apbs_pwdata;
wire apbs_psel0, apbs_psel1, apbs_psel2;
wire apbs_penable;
wire apbs_pwrite;
wire [31:0] apbs_prdata0, apbs_prdata1, apbs_prdata2;
// Timer
wire tm_fbenable, tm_extclk1, tm_extclk2, tm_extclk3, tm_extclk4;
wire tm_overflow2, tm_overflow3, tm_overflow4;
// MIPS
wire fb_int;
wire pm_dcachehit;
wire pm_dcachemiss;
wire pm_dtlbhit;
wire pm_dtlbmiss;
wire pm_icachehit;
wire pm_icachemiss;
wire pm_itlbhit;
wire pm_itlbmiss;
wire pm_instncomplete;
wire pm_jtlbhit;
wire pm_jtlbmiss;
wire pm_wtbmerge;
wire pm_wtbnomerge;
wire si_rp;
wire si_sleep;
// PCI Signal Setting
wire [15:0] AF_PCI_DEVID = 16'h1234;
wire [15:0] AF_PCI_VENID = 16'h11E3;
wire [23:0] AF_PCI_CLASSCODE = 24'habcdef;
wire [7:0] AF_PCI_REVID = 8'h34;
wire [15:0] AF_PCI_SUBSYSID = 16'h22;
wire [15:0] AF_PCI_SUBSYSVID = 16'h11E3;
wire [7:0] AF_PCI_MAXLAT = 8'h55;
wire [7:0] AF_PCI_MINGNT = 8'h44;
wire AF_PCI_HOST = 1'b1;
wire AF_PCI_CFGDONE = 1'b1;
// Tied to Low (Unused Signals)
assign apbs_prdata0 = 32'b0;
assign apbs_prdata1 = 32'b0;
assign apbs_prdata2 = 32'b0;
assign tm_fbenable = 1'b0;
assign tm_extclk1 = 1'b0;
assign tm_extclk2 = 1'b0;
assign tm_extclk3 = 1'b0;
assign tm_extclk4 = 1'b0;
assign ahbm_hprot = 4'b0000;
assign fb_int = 1'b0;
// Call Embedded Hard Macro
qmipsesp QuickMIPScore (
/**************/
/* ESP Pads */
/**************/
// MC Pad signals off-chip
.CS_n(CS_n),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -