[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pci] task DO_REF in system.v



DO_REF seems the task that all tests use to drive PCI operations. I have
trouble understanding this simple task. Please help!

The following loop is in the beginning of this task:

// Cautiously wait for previous command to be done
    for (waiting = test_accepted_l_int; waiting != 1'b0; waiting =
waiting)
    begin
      if (~pci_reset_comb && (test_accepted_l_int == 1'b0))
      begin
        if (~pci_reset_comb)
        begin
             @ (negedge pci_ext_clk or posedge pci_reset_comb) ;
        end
        `NO_ELSE;
      end
      else
      begin
        waiting = 1'b0;  // ready to do next command
      end
    end

It does not seem to wait at all in any case. If test_accepted_l_int is 1
when entering this loop, the loop is terminated immediately after doing
waiting = 1'b0. If test_accepted_l_int is 0, the loop is simply skipped
due to the condition wait != 1'b0. Earlier in this file,
test_accepted_l_int is declared as triand and also pulled up so that its
value cannot be Z. Its value should not be X either.

Am I missing anything?
--
To unsubscribe from pci mailing list please visit http://www.opencores.org/mailinglists.shtml