SUBDESIGN hfcontrollogic ( vmeds :INPUT; vmewrite :INPUT; hfload :INPUT; hfinit :INPUT; hffreeze :INPUT; bootclock :INPUT; bootmode :INPUT; boothfenable :INPUT; dsdelayout[9..0] :INPUT; vmeack :OUTPUT; dsdelayin :OUTPUT; hfds[2..0] :OUTPUT; hfwrite :OUTPUT; ) VARIABLE del80,del120,del160,del240,del280 :DFF; BEGIN del80.d = VCC; del80.clk = dsdelayout[1]; del80.clrn = dsdelayin; del120.d = VCC; del120.clk = dsdelayout[2]; del120.clrn = dsdelayin; del160.d = VCC; del160.clk = dsdelayout[3]; del160.clrn = dsdelayin; del240.d = VCC; del240.clk = dsdelayout[5]; del240.clrn = dsdelayin; del280.d = VCC; del280.clk = dsdelayout[6]; del280.clrn = dsdelayin; IF (bootmode) THEN dsdelayin = !bootclock; hfwrite = VCC; hfds[0] = del80.q & boothfenable; hfds[1] = del160.q & dsdelayin & !del240.q; hfds[2] = del120.q; END IF; IF (!bootmode) THEN dsdelayin = vmeds; hfwrite = vmewrite; hfds[0] = del80.q; hfds[1] = del160.q & dsdelayin & (!vmewrite # !del240.q); hfds[2] = del120.q; END IF; vmeack = del280.q & !bootmode; END;