Line 40... |
Line 40... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.2 2001/10/05 08:14:29 mihad
|
|
// Updated all files with inclusion of timescale file for simulation purposes.
|
|
//
|
// Revision 1.1.1.1 2001/10/02 15:33:46 mihad
|
// Revision 1.1.1.1 2001/10/02 15:33:46 mihad
|
// New project directory structure
|
// New project directory structure
|
//
|
//
|
//
|
//
|
|
|
// this module instantiates output flip flops for PCI interface and
|
// this module instantiates output flip flops for PCI interface and
|
// some fanout downsizing logic because of heavily constrained PCI signals
|
// some fanout downsizing logic because of heavily constrained PCI signals
|
`include "constants.v"
|
|
|
// synopsys translate_off
|
`include "timescale.v"
|
`include "timescale.v"
|
|
// synopsys translate_on
|
|
|
module PCI_IO_MUX
|
module PCI_IO_MUX
|
(
|
(
|
reset_in,
|
reset_in,
|
clk_in,
|
clk_in,
|
Line 66... |
Line 71... |
trdy_in,
|
trdy_in,
|
trdy_en_in,
|
trdy_en_in,
|
stop_in,
|
stop_in,
|
stop_en_in,
|
stop_en_in,
|
master_load_in,
|
master_load_in,
|
|
master_load_on_transfer_in,
|
target_load_in,
|
target_load_in,
|
|
target_load_on_transfer_in,
|
cbe_in,
|
cbe_in,
|
cbe_en_in,
|
cbe_en_in,
|
mas_ad_in,
|
mas_ad_in,
|
tar_ad_in,
|
tar_ad_in,
|
|
|
Line 100... |
Line 107... |
devsel_out,
|
devsel_out,
|
trdy_out,
|
trdy_out,
|
stop_out,
|
stop_out,
|
cbe_out,
|
cbe_out,
|
ad_out,
|
ad_out,
|
|
ad_load_out,
|
|
ad_en_unregistered_out,
|
|
|
par_out,
|
par_out,
|
par_en_out,
|
par_en_out,
|
perr_out,
|
perr_out,
|
perr_en_out,
|
perr_en_out,
|
serr_out,
|
serr_out,
|
serr_en_out,
|
serr_en_out,
|
|
|
req_out,
|
req_out,
|
req_en_out
|
req_en_out,
|
|
pci_trdy_in,
|
|
pci_irdy_in,
|
|
pci_frame_in,
|
|
pci_stop_in
|
);
|
);
|
|
|
input reset_in, clk_in ;
|
input reset_in, clk_in ;
|
|
|
input frame_in ;
|
input frame_in ;
|
Line 160... |
Line 172... |
output devsel_out ;
|
output devsel_out ;
|
output trdy_out ;
|
output trdy_out ;
|
output stop_out ;
|
output stop_out ;
|
output [3:0] cbe_out ;
|
output [3:0] cbe_out ;
|
output [31:0] ad_out ;
|
output [31:0] ad_out ;
|
|
output ad_load_out ;
|
|
output ad_en_unregistered_out ;
|
|
|
output par_out ;
|
output par_out ;
|
output par_en_out ;
|
output par_en_out ;
|
output perr_out ;
|
output perr_out ;
|
output perr_en_out ;
|
output perr_en_out ;
|
Line 173... |
Line 187... |
input req_in ;
|
input req_in ;
|
|
|
output req_out ;
|
output req_out ;
|
output req_en_out ;
|
output req_en_out ;
|
|
|
|
input pci_trdy_in,
|
|
pci_irdy_in,
|
|
pci_frame_in,
|
|
pci_stop_in ;
|
|
|
|
input master_load_on_transfer_in ;
|
|
input target_load_on_transfer_in ;
|
|
|
wire [31:0] temp_ad = tar_ad_en_reg_in ? tar_ad_in : mas_ad_in ;
|
wire [31:0] temp_ad = tar_ad_en_reg_in ? tar_ad_in : mas_ad_in ;
|
|
|
wire ad_en_ctrl_low ;
|
wire ad_en_ctrl_low ;
|
IO_MUX_EN_MULT ad_en_low_gen(.mas_ad_en_in(mas_ad_en_in), .tar_ad_en_in(tar_ad_en_in), .ad_en_out(ad_en_ctrl_low)) ;
|
|
|
|
wire ad_en_ctrl_mlow ;
|
wire ad_en_ctrl_mlow ;
|
IO_MUX_EN_MULT ad_en_mlow_gen(.mas_ad_en_in(mas_ad_en_in), .tar_ad_en_in(tar_ad_en_in), .ad_en_out(ad_en_ctrl_mlow)) ;
|
|
|
|
wire ad_en_ctrl_mhigh ;
|
wire ad_en_ctrl_mhigh ;
|
IO_MUX_EN_MULT ad_en_mhigh_gen(.mas_ad_en_in(mas_ad_en_in), .tar_ad_en_in(tar_ad_en_in), .ad_en_out(ad_en_ctrl_mhigh)) ;
|
|
|
|
wire ad_en_ctrl_high ;
|
wire ad_en_ctrl_high ;
|
IO_MUX_EN_MULT ad_en_high_gen(.mas_ad_en_in(mas_ad_en_in), .tar_ad_en_in(tar_ad_en_in), .ad_en_out(ad_en_ctrl_high)) ;
|
|
|
|
wire ad_load_ctrl_low ;
|
wire ad_enable_internal = mas_ad_en_in || tar_ad_en_in ;
|
IO_MUX_LOAD_MUX ad_load_low_gen(.tar_ad_en_reg_in(tar_ad_en_reg_in), .mas_ad_load_in(master_load_in), .tar_ad_load_in(target_load_in), .ad_load_out(ad_load_ctrl_low));
|
|
|
|
wire ad_load_ctrl_mlow ;
|
PCI_IO_MUX_AD_EN_CRIT ad_en_low_gen
|
IO_MUX_LOAD_MUX ad_load_mlow_gen(.tar_ad_en_reg_in(tar_ad_en_reg_in), .mas_ad_load_in(master_load_in), .tar_ad_load_in(target_load_in), .ad_load_out(ad_load_ctrl_mlow));
|
(
|
|
.ad_en_in (ad_enable_internal),
|
|
.pci_frame_in (pci_frame_in),
|
|
.pci_trdy_in (pci_trdy_in),
|
|
.pci_stop_in (pci_stop_in),
|
|
.ad_en_out (ad_en_ctrl_low)
|
|
);
|
|
|
wire ad_load_ctrl_mhigh ;
|
PCI_IO_MUX_AD_EN_CRIT ad_en_mlow_gen
|
IO_MUX_LOAD_MUX ad_load_mhigh_gen(.tar_ad_en_reg_in(tar_ad_en_reg_in), .mas_ad_load_in(master_load_in), .tar_ad_load_in(target_load_in), .ad_load_out(ad_load_ctrl_mhigh));
|
(
|
|
.ad_en_in (ad_enable_internal),
|
|
.pci_frame_in (pci_frame_in),
|
|
.pci_trdy_in (pci_trdy_in),
|
|
.pci_stop_in (pci_stop_in),
|
|
.ad_en_out (ad_en_ctrl_mlow)
|
|
);
|
|
|
|
PCI_IO_MUX_AD_EN_CRIT ad_en_mhigh_gen
|
|
(
|
|
.ad_en_in (ad_enable_internal),
|
|
.pci_frame_in (pci_frame_in),
|
|
.pci_trdy_in (pci_trdy_in),
|
|
.pci_stop_in (pci_stop_in),
|
|
.ad_en_out (ad_en_ctrl_mhigh)
|
|
);
|
|
|
|
PCI_IO_MUX_AD_EN_CRIT ad_en_high_gen
|
|
(
|
|
.ad_en_in (ad_enable_internal),
|
|
.pci_frame_in (pci_frame_in),
|
|
.pci_trdy_in (pci_trdy_in),
|
|
.pci_stop_in (pci_stop_in),
|
|
.ad_en_out (ad_en_ctrl_high)
|
|
);
|
|
|
|
assign ad_en_unregistered_out = ad_en_ctrl_high ;
|
|
|
|
wire load = master_load_in || target_load_in ;
|
|
wire load_on_transfer = master_load_on_transfer_in || target_load_on_transfer_in ;
|
|
|
|
wire ad_load_ctrl_low ;
|
|
wire ad_load_ctrl_mlow ;
|
|
wire ad_load_ctrl_mhigh ;
|
wire ad_load_ctrl_high ;
|
wire ad_load_ctrl_high ;
|
IO_MUX_LOAD_MUX ad_load_high_gen(.tar_ad_en_reg_in(tar_ad_en_reg_in), .mas_ad_load_in(master_load_in), .tar_ad_load_in(target_load_in), .ad_load_out(ad_load_ctrl_high)) ;
|
|
|
assign ad_load_out = ad_load_ctrl_high ;
|
|
|
|
PCI_IO_MUX_AD_LOAD_CRIT ad_load_low_gen
|
|
(
|
|
.load_in(load),
|
|
.load_on_transfer_in(load_on_transfer),
|
|
.pci_irdy_in(pci_irdy_in),
|
|
.pci_trdy_in(pci_trdy_in),
|
|
.load_out(ad_load_ctrl_low)
|
|
);
|
|
|
|
PCI_IO_MUX_AD_LOAD_CRIT ad_load_mlow_gen
|
|
(
|
|
.load_in(load),
|
|
.load_on_transfer_in(load_on_transfer),
|
|
.pci_irdy_in(pci_irdy_in),
|
|
.pci_trdy_in(pci_trdy_in),
|
|
.load_out(ad_load_ctrl_mlow)
|
|
);
|
|
|
|
PCI_IO_MUX_AD_LOAD_CRIT ad_load_mhigh_gen
|
|
(
|
|
.load_in(load),
|
|
.load_on_transfer_in(load_on_transfer),
|
|
.pci_irdy_in(pci_irdy_in),
|
|
.pci_trdy_in(pci_trdy_in),
|
|
.load_out(ad_load_ctrl_mhigh)
|
|
);
|
|
|
|
PCI_IO_MUX_AD_LOAD_CRIT ad_load_high_gen
|
|
(
|
|
.load_in(load),
|
|
.load_on_transfer_in(load_on_transfer),
|
|
.pci_irdy_in(pci_irdy_in),
|
|
.pci_trdy_in(pci_trdy_in),
|
|
.load_out(ad_load_ctrl_high)
|
|
);
|
|
|
OUT_REG ad_iob0
|
OUT_REG ad_iob0
|
(
|
(
|
.reset_in ( reset_in ),
|
.reset_in ( reset_in ),
|
.clk_in ( clk_in) ,
|
.clk_in ( clk_in) ,
|