anchor.diff:  
   module mkHdmiGenerator#(Clock axi_clock, Reset axi_reset,
      SyncPulseIfc startDMA, HdmiGeneratorIndication indication)(HdmiGenerator#(Rgb888));
  +    let verbose = False;
       Clock defaultClock <- exposeCurrentClock();
       Reset defaultReset <- exposeCurrentReset();
       // 1920 * 1080
  -    Reg#(Bit#(12)) dePixelStartPorch <- mkSyncReg(   44 + 44 - 1, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(12)) dePixelEndPorch <- mkSyncReg(44 + 44 + 44 - 1, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(12)) dePixelStartVisible <- mkSyncReg(192 + 44 + 44 - 1, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(12)) dePixelEnd <- mkSyncReg(  1920 + 192 + 44 + 44 - 1, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(12)) dePixelMid <- mkSyncReg((1920/2) + 192, axi_clock, axi_reset, defaultClock);
  -
  -    Reg#(Bit#(11)) deLineStartPorch <- mkSyncReg(  3, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(11)) deLineEndPorch <- mkSyncReg(5 + 3, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(11)) deLineStartVisible <- mkSyncReg(3 + 41, axi_clock, axi_reset, defaultClock);
  -    Reg#(Bit#(11)) deLineEnd <- mkSyncReg(    1080 + 45-1, axi_clock, axi_reset, defaultClock);
  +    // horiz: frontPorch:87, sync: 44, backPorch:148, pixel:1920
  +    // vert: frontPorch:3, sync:5, backPorch:36, lines:1080
  +    Reg#(Bit#(12)) dePixelStartSync <- mkSyncReg(              87, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(12)) dePixelEndSync <- mkSyncReg(           44 + 87, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(12)) dePixelStartVisible <- mkSyncReg(148 + 44 + 87, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(12)) dePixelEnd <- mkSyncReg(  1920 + 148 + 44 + 87, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(12)) dePixelMid <- mkSyncReg((1920/2) + 148 + 44, axi_clock, axi_reset, defaultClock);
  +
  +    Reg#(Bit#(11)) deLineStartSync <- mkSyncReg(              3, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(11)) deLineEndSync <- mkSyncReg(            5 + 3, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(11)) deLineStartVisible <- mkSyncReg(  36 + 5 + 3, axi_clock, axi_reset, defaultClock);
  +    Reg#(Bit#(11)) deLineEnd <- mkSyncReg(    1080 + 36 + 5 + 3, axi_clock, axi_reset, defaultClock);
       Reg#(Bit#(11)) deLineMid <- mkSyncReg((1080/2) + 41, axi_clock, axi_reset, defaultClock);
   
       Vector#(4, Reg#(Bit#(24))) patternRegs <- replicateM(mkSyncReg(24'h00FFFFFF, axi_clock, axi_reset, defaultClock));
  
positive.code:                lineCount <= 0;
                 patternIndex1 <= 0;
                 lineVisible <= False;
                 testPatternEnabled <= shadowTestPatternEnabled;
                 if (waitingForVsync)
  	          sendVsyncIndication.send();
             end
             else begin
                 if (lineCount == deLineStartVisible)
                     lineVisible <= True;
                 lineCount <= lineCount+1;
                 if (lineCount >= deLineMid)
                     patternIndex1 <= 1;
             end
          end
          else begin
             if (lineCount == deLineStartPorch) begin
                vsync <= 1;
                if (pixelCount == 0 && testPatternEnabled == 0) begin
                    vsyncCounter <= vsyncCounter+1;
                    startDMA.send();
                end
             end
             else if (lineCount == deLineEndPorch)
                vsync <= 0;
             if (pixelCount == dePixelStartPorch)
                hsync <= 1;
             else if (pixelCount == dePixelEndPorch)
                hsync <= 0;
             if (pixelCount == dePixelStartVisible)
                 dataEnable <= lineVisible;
  
negative.code: interface HdmiGeneratorRequest;
      method Action setTestPattern(Bit#(1) v);
      method Action setPatternColor(Bit#(32) v);
      method Action setDePixel(Bit#(12) frontPorch, Bit#(12) syncWidth, Bit#(12) visible, Bit#(12) last, Bit#(12) mid);
      method Action setDeLine(Bit#(11) frontPorch, Bit#(11) syncWidth, Bit#(11) visible, Bit#(11) last, Bit#(11) mid);
      method Action waitForVsync(Bit#(32) unused);
  endinterface
  interface HdmiGeneratorIndication;
  