anchor.diff:  
           if (!testPatternEnabled)
               stageData.pixel = unpack(d[23:0]);
  -        hdmioutput.rgb(Rgb888VideoData{active_video: pack(stageData.de),
  +        hdmioutput.rgb(Rgb888VideoData{active_video: stageData.de,
               vsync: stageData.vsync, hsync: stageData.hsync,
               r: stageData.pixel.r, g: stageData.pixel.g, b: stageData.pixel.b });
       endrule
  
positive.code:             pixelCount <= pixelCount + 1;
      endrule
  
      rule data if (testPatternEnabled);
          Bit#(2) index = {pack(lineCount >= lineMidpoint), pack(pixelCount >= pixelMidpoint)};
          bramOutStageFifo.enq(Rgb888Stage { vsync: vsync, hsync: hsync, de: dataEnable,
              pixel: unpack(truncate(patternRegs[index]))});
          lineBuffer.readAddr(0);
      endrule
  
      rule fbRule if (!testPatternEnabled);
          if (hsync == 1)
              dataCount <= 0;
          else if (dataEnable)
              dataCount <= dataCount + 1;
          bramOutStageFifo.enq(Rgb888Stage { vsync: vsync, hsync: hsync, de: dataEnable,
              pixel: Rgb888{r:0,g:0,b:0}});
          lineBuffer.readAddr(dataCount);
      endrule
  
  
negative.code:     Reset defaultReset <- exposeCurrentReset();
      Reg#(Rgb888Stage) rgb888StageReg <- mkReg(unpack(0));
      Reg#(Yuv444IntermediatesStage) yuv444IntermediatesStageReg <- mkReg(
          Yuv444IntermediatesStage { vsync: 0, hsync: 0, de: 0, data: unpack(0) });
      Reg#(Yuv444Stage) yuv444StageReg <- mkReg(
          Yuv444Stage { vsync: 0, hsync: 0, de: 0, data: unpack(0) });
      Reg#(Yuv422Stage) yuv422StageReg <- mkReg(
          Yuv422Stage { vsync: 0, hsync: 0, de: 0, data: unpack(0) });
      Reg#(Bool) evenOddPixelReg <- mkReg(False);
  
      rule yuv444IntermediatesStage;
  