anchor.diff:              shadowTestPatternEnabled <= v;
           endmethod
           method Action setDePixel(Bit#(12) porch, Bit#(12) width, Bit#(12) visible, Bit#(12) last, Bit#(12) mid);
  -            dePixelWidth <= width;
  -            dePixelPorch <= porch;
  -            dePixelVisible <= visible;
  +            dePixelStartPorch <= porch;
  +            dePixelEndPorch <= width;
  +            dePixelStartVisible <= visible;
               dePixelEnd <= last;
  -            pixelMidpoint <= mid;
  +            dePixelMid <= mid;
           endmethod
           method Action setDeLine(Bit#(11) porch, Bit#(11) width, Bit#(11) visible, Bit#(11) last, Bit#(11) mid);
  -            deLineWidth <= width;
  -            deLinePorch <= porch;
  -            deLineVisible <= visible;
  +            deLineStartPorch <= porch;
  +            deLineEndPorch <= width;
  +            deLineStartVisible <= visible;
               deLineEnd <= last;
  -            lineMidpoint <= mid;
  +            deLineMid <= mid;
           endmethod
           method Action waitForVsync(Bit#(32) unused);
               waitingForVsync <= True;
  
positive.code:     Clock defaultClock <- exposeCurrentClock();
      Reset defaultReset <- exposeCurrentReset();
      // 1920 * 1080
      Reg#(Bit#(12)) dePixelEnd <- mkSyncReg(1920 + 192 + 44 + 44-1, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(12)) dePixelWidth <- mkSyncReg(44 + 44 - 1 + 44, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(12)) dePixelPorch <- mkSyncReg(44 + 44 - 1, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(12)) dePixelVisible <- mkSyncReg(44 + 44 - 1 + 192, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(12)) pixelMidpoint <- mkSyncReg((1920/2) + 192, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(11)) deLineEnd <- mkSyncReg(1080 + 45-1, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(11)) deLineWidth <- mkSyncReg(3 + 5, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(11)) deLinePorch <- mkSyncReg(3, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(11)) deLineVisible <- mkSyncReg(3 + 41, axi_clock, axi_reset, defaultClock);
      Reg#(Bit#(11)) lineMidpoint <- mkSyncReg((1080/2) + 41, axi_clock, axi_reset, defaultClock);
      Vector#(4, Reg#(Bit#(24))) patternRegs <- replicateM(mkSyncReg(24'h00FFFFFF, axi_clock, axi_reset, defaultClock));
      Reg#(Bit#(1)) shadowTestPatternEnabled <- mkSyncReg(1, axi_clock, axi_reset, defaultClock);
      Reg#(Bool) waitingForVsync <- mkSyncReg(False, axi_clock, axi_reset, defaultClock);
  
negative.code:     interface Put pdata;
          method Action put(Bit#(32) v) if (testPatternEnabled == 0 && dataEnable);
             rgb888StageReg <= VideoData {de: 1, vsync: 0, hsync: 0, pixel: unpack(v[23:0])};
             $display("HDMI::pdata         [%d:%d] = %x", lineCount, pixelCount, v);
          endmethod
      endinterface
  
  