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

Subversion Repositories pci

[/] [pci/] [tags/] [rel_5/] [bench/] [verilog/] [pci_behaviorial_target.v] - Diff between revs 35 and 45

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

Rev 35 Rev 45
Line 1... Line 1...
//===========================================================================
//===========================================================================
// $Id: pci_behaviorial_target.v,v 1.3 2002-03-21 07:35:50 mihad Exp $
// $Id: pci_behaviorial_target.v,v 1.4 2002-08-13 11:03:51 mihad Exp $
//
//
// Copyright 2001 Blue Beaver.  All Rights Reserved.
// Copyright 2001 Blue Beaver.  All Rights Reserved.
//
//
// Summary:  A PCI Behaviorial Target.  This module receives commands over
// Summary:  A PCI Behaviorial Target.  This module receives commands over
//           the PCI Bus.  The PCI Master encodes commands in the middle
//           the PCI Bus.  The PCI Master encodes commands in the middle
Line 592... Line 592...
endtask
endtask
 
 
// Drive SRAM Data onto AD bus, and increment Read Pointer
// Drive SRAM Data onto AD bus, and increment Read Pointer
task Fetch_SRAM_Data_For_Read_Onto_AD_Bus;
task Fetch_SRAM_Data_For_Read_Onto_AD_Bus;
  output [PCI_BUS_DATA_RANGE:0] target_read_data;
  output [PCI_BUS_DATA_RANGE:0] target_read_data;
 
  reg fetch_from0 ;
  begin
  begin
    Read_Test_Device_SRAM (hold_target_address[11:2], ~cbe_l_now, target_read_data[PCI_BUS_DATA_RANGE:0]);
    fetch_from0 = (hold_target_command == PCI_COMMAND_INTERRUPT_ACKNOWLEDGE) ;
 
    Read_Test_Device_SRAM (fetch_from0 ? 0 : hold_target_address[11:2], ~cbe_l_now, target_read_data[PCI_BUS_DATA_RANGE:0]);
    hold_target_address[11:2] = hold_target_address[11:2] + 10'h001;  // addr++
    hold_target_address[11:2] = hold_target_address[11:2] + 10'h001;  // addr++
  end
  end
endtask
endtask
 
 
// The target is able to execute Delayed Reads,
// The target is able to execute Delayed Reads,
Line 1435... Line 1437...
               & (ad_now[1:0]  == 2'b00) )
               & (ad_now[1:0]  == 2'b00) )
        begin
        begin
          Execute_Target_PCI_Ref (`TEST_TARGET_DOING_CONFIG_WRITE,
          Execute_Target_PCI_Ref (`TEST_TARGET_DOING_CONFIG_WRITE,
                                                 saw_fast_back_to_back);
                                                 saw_fast_back_to_back);
        end
        end
        else if (~frame_prev & frame_now & Target_En
        else if (~frame_prev & frame_now & Target_En &
`ifdef SIMULTANEOUS_MASTER_TARGET
                    (
// Don't check for reads to self
                        (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_INTERRUPT_ACKNOWLEDGE) |
`else // SIMULTANEOUS_MASTER_TARGET
                        (
// Check for, and don't respond to, reads to self
                            (
`endif //SIMULTANEOUS_MASTER_TARGET
                                  (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ)
            & (   (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ)
 
                | (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ_MULTIPLE)
                | (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ_MULTIPLE)
                | (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ_LINE) )
                                | (cbe_l_now[PCI_BUS_CBE_RANGE:0] == PCI_COMMAND_MEMORY_READ_LINE)
            & (   (ad_now[`PCI_BASE_ADDR0_MATCH_RANGE] == BAR0[`PCI_BASE_ADDR0_MATCH_RANGE])
                            )
 
                            &
 
                            (
 
                                  (ad_now[`PCI_BASE_ADDR0_MATCH_RANGE] == BAR0[`PCI_BASE_ADDR0_MATCH_RANGE])
`ifdef PCI_BASE_ADDR1_MATCH_ENABLE
`ifdef PCI_BASE_ADDR1_MATCH_ENABLE
                | (ad_now[`PCI_BASE_ADDR1_MATCH_RANGE] == BAR1[`PCI_BASE_ADDR1_MATCH_RANGE])
                | (ad_now[`PCI_BASE_ADDR1_MATCH_RANGE] == BAR1[`PCI_BASE_ADDR1_MATCH_RANGE])
`endif  // PCI_BASE_ADDR1_MATCH_ENABLE
`endif  // PCI_BASE_ADDR1_MATCH_ENABLE
              ) )
                            )
 
                        )
 
                    )
 
                )
        begin
        begin
          Execute_Target_PCI_Ref (`TEST_TARGET_DOING_SRAM_READ,
          Execute_Target_PCI_Ref (`TEST_TARGET_DOING_SRAM_READ,
                                                 saw_fast_back_to_back);
                                                 saw_fast_back_to_back);
        end
        end
        else if (~frame_prev & frame_now & (idsel_now == 1'b1)
        else if (~frame_prev & frame_now & (idsel_now == 1'b1)

powered by: WebSVN 2.1.0

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