OpenCores
URL https://opencores.org/ocsvn/pci/pci/trunk

Subversion Repositories pci

[/] [pci/] [tags/] [rel_3/] [rtl/] [verilog/] [pci_io_mux.v] - Diff between revs 6 and 21

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 6 Rev 21
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) ,

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.