一个串口的完整FPGA工程
源代码在线查看: top.v
/*********************************************************************************************************
** All right reserve 2008-2009(C)
** Created & maintained by http://www.edaok.net
**=======================================================================================================
** 模 块 名: top
** 描 述: 顶层连接
**
** 原 作 者: Adeko (from http://www.edaok.net)
** 参 与 者: (...welcome you join in)
**
**=======================================================================================================
********************************************************************************************************/
module top(
clk,
rst_n,
ad,
addr,
wr_n,
rd_n,
ale,
txd,
rxd,
int_o,
uart_clk
);
input clk; // 全局时钟线
input rst_n; // 全局复位线
inout [7:0] ad; // EBI的数据线,
input [7:0] addr; // 地址线
input wr_n; // 写信号线, 低有效
input rd_n; // 读信号线, 低有效
input ale; // 地址锁存信号线
input rxd;
output txd;
output int_o;
output uart_clk;
wire clk_inter;// = clk;
wire rst_n_inter = rst_n;
wire [7:0] xmc_data;
wire [7:0] xmc_data_in;
wire [7:0] xmc_data_out;
wire [15:0] xmc_addr_out;
wire [15:0] wAddr;
wire wWrNeg;
assign clk_inter = clk;
ebi U_1(
.clk (clk_inter),
.ebi_ad (ad),
.ebi_addr_h (addr),
.ebi_wr_n (wr_n),
.ebi_rd_n (rd_n),
.ebi_ale (ale),
.we (wWrNeg),
.data_in (xmc_data_in),
.data_out (xmc_data_out),
.addr_out (xmc_addr_out)
);
assign wAddr = xmc_addr_out;
uart U_2(
.clk (clk_inter),
.rst_n (rst_n_inter),
.we (wWrNeg),
.rd_n (rd_n),
.addr_base (16'h1200),
.addr (wAddr),
.data_i (xmc_data_out),
.data_o (xmc_data_in),
.rxd_xi (rxd),
.txd_xo (txd),
.int_o (int_o),
.uart_clk (uart_clk)
);
endmodule
/*********************************************************************************************************
** End Of File
********************************************************************************************************/