?? t8255a.v
字號:
/*
//*************************************************************************
// Project Name: 8255A的功能設(shè)計和分析
// Module Name : T8255A
// Author: 張文濤
// Created: 2006-10-25
// Modified: 2006-10-29
// Revision: 3.0
//
//*************************************************************************
// 需要注意的地方:1.可以根據(jù)具體要求直接將總線與其它模塊相接
//*************************************************************************
*/
module T8255A (
rst,
nCS,
nRD,
nWR,
A,
Din,
PA_In,
PB_In,
PC_In,
//output
Data_En,
PortA_IO_En,
PortB_IO_En,
PortC_IO_En,
Dout,
PA_Out,
PB_Out,
PC_Out
);
//------端口聲明-----
input rst;
input nCS;
input nRD;
input nWR;
input[1:0] A;
input[7:0] Din;
input[7:0] PA_In;
input[7:0] PB_In;
input[7:0] PC_In;
output Data_En;
output PortA_IO_En;
output PortB_IO_En;
output[7:0] PortC_IO_En;
output[7:0] Dout;
output[7:0] PA_Out;
output[7:0] PB_Out;
output[7:0] PC_Out;
//-----內(nèi)部變量-----
wire reset;
wire PortA_In_Ld;
wire PortB_In_Ld;
wire PortA_Out_Ld;
wire PortB_Out_Ld;
wire[7:0] PortC_Out_Ld;
wire[6:0] Control_Data;
wire[1:0] Dout_Select;
wire[7:0] PA_In_Buf;
wire[7:0] PB_In_Buf;
wire[7:0] PortC_Status;
assign reset = (nCS)?1'b1:rst;
//-----實例化-----
Control_Logic U1 (//input
.reset(reset),
.nRD(nRD),
.nWR(nWR),
.A(A),
.Din(Din),
.nSTBA(PC_In[4]),
.nSTBB(PC_In[2]),
.nACKA(PC_In[6]),
.nACKB(PC_In[2]),
//output
.Data_En(Data_En),
.PortA_IO_En(PortA_IO_En),
.PortB_IO_En(PortB_IO_En),
.PortC_IO_En(PortC_IO_En),
.PortA_In_Ld(PortA_In_Ld),
.PortB_In_Ld(PortB_In_Ld),
.PortA_Out_Ld(PortA_Out_Ld),
.PortB_Out_Ld(PortB_Out_Ld),
.PortC_Out_Ld(PortC_Out_Ld),
.Control_Data(Control_Data),
.Dout_Select(Dout_Select)
);
Dout_Mux U2 (//input
.reset(reset),
.PA_In_Buf(PA_In_Buf),
.PB_In_Buf(PB_In_Buf),
.PortC_Status(PortC_Status),
.Dout_Select(Dout_Select),
//output
.Dout(Dout)
);
PC_IO U3 (//input
.reset(reset),
.nRD(nRD),
.nWR(nWR),
.A(A),
.Din(Din),
.PC_In(PC_In),
.Control_Data(Control_Data),
.PortC_Out_Ld(PortC_Out_Ld),
//output
.PortC_Status(PortC_Status),
.PC_Out(PC_Out)
);
PortA_In U4 (
.reset(reset),
.PA_In(PA_In),
.PortA_In_Ld(PortA_In_Ld),
.PA_In_Buf(PA_In_Buf)
);
PortA_Out U5 (
.reset(reset),
.Din(Din),
.PortA_Out_Ld(PortA_Out_Ld),
.PA_Out(PA_Out)
);
PortB_In U6 (
.reset(reset),
.PB_In(PB_In),
.PortB_In_Ld(PortB_In_Ld),
.PB_In_Buf(PB_In_Buf)
);
PortB_Out U7 (
.reset(reset),
.Din(Din),
.PortB_Out_Ld(PortB_Out_Ld),
.PB_Out(PB_Out)
);
endmodule
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -