It has been done with more contribution of [denizpelen] (https://www.github.com/denizpelen).
Bresenham's line algorithm is a line drawing algorithm that determines the points of an n-dimensional raster that should be selected in order to form a close approximation to a straight line between two points. It is commonly used to draw line primitives.
Design output Cross Line on Monitor
Video Graphics Array is a video display contoller, first introduced with the IBM PS/2 line of computers and became ubiquitous in the PC industry. 640x480 graphics mode: As the VGA began to be cloned in great quantites by manufacturers, its 640x480, 16 color mode became the de facto lowest common denominator of graphic cards. By the mid 90s, a 640x480x16 graphics mode was expected by operating systems such as Windows 95 and OS/2 Warp 3.0. Even into the 2000s, the “VGA” graphics mode remained compable for PC operating systems.
Bit Plane: A bit plane of a digital discrete signal (such as image and sound ) is a set of bits corresponding to a given bit position in each of the binary numbers representing the signal. 8 bit-planes of a gray scale image, on the left, is seperated as each 1 bit-planes of image. Upper left image is the most significant bit and the bottom right is the least significant bit. As seen, MSB has the much more effect on the image.
Color depth: Color depth is the number of bits used for each color component of a single pixel.
###Vga Timing and Physical Layer Timing is provided by two signal, one is HSYNC other one is the VSYNC. While HSYNC scans per line horizontally, VSYNC scans per frame vertically. The VGA connector also consists of three anolog signals to send the color info. One for each color, red R, green G and blue B.
Vector graphics are computer graphics images that are defined in terms of points on a cartesian coordinate, which are connected by lines and curves then. Vector graphics have adventage over Raster graphics in that the points, lines and curves may be scaled up or down to any resolution without alising. The points determine the direction of the vector, each may have various properties including color, thickness , shape, curve and fill.
Rasterization is the task of taking an image described in a vector graphics format(shapes) and converting it into a raster image. Rasterized image may then be displayed on a computer display, video display or printer, or it can be stored in a bitmap format.
In computer graphics, a raster graphic is a dot matrix data structure that represents a generally rectangular grid of pixels (points of color), viewable via a computer display, paper, or other display medium.
Pixel Coordination: Since image is stored as rectangular array of pixels, to identify any pixel give them their row and column number in the array. Rows are numbered from top to bottom and columns are numbered from left to right, so any pixel can be identified by the its coordinate (x,y) where x is column number and the y is the row number.
This algorithm is commonly used to draw line primitives in a bitmap image (e.g. on a computer screen), as it uses only integer addition, subtraction and bit shifting, all of which are very cheap operations in standard computer architectures. It is an incremental error algorithm.It is one of the earliest algorithms developed in the field of computer graphics.
The aim is to implement the Bressenham line algorithm that serves in the process of the rasterization. Bressenham’s line drawing algorithm is a line drawing algorithm that determines the points of an n-dimensional raster that should be selected in order to form a close approximation to a straight line between two points.
Can be found detailed information in here: https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm
A module has been developed which is called as line_drawer.sv in project folder.
drawing_line_top(*drawing_line_top.sv*)
->vga_clk_mod(*clock_div.sv*)
->vgatxt(*vga_controller.sv*)
->line_drawer(*line_drawer.sv*)
vga_clk_mod: This module is a clock divider that supplies 25MHz as a vga clock.
vga_txt: The clock signal that provides 60Hz refresh rate for 640*480 VGA format and reset pins are the input of the module. Module drives the horizontal and vertical synchronization pins of the VGA. Horizontal, vertical counters and display enable pins are provided for allowing the top module to send the display. The coordinates are parametrized.
line_drawer: v_cntr and h_cntr are provided by VGA controller. “y” and “x” are generated by the line_drawer module. As it can be seen, when a new line is started, line_drawer starts to generate x and y. If the current x-y and horizontal-vertical counter matches, my_color is set to (R, G, B).
drawing_line_top: In a top module clock divider that supplies 25MHz and vga controller are instantiated. When the display enable pin is low, RGB pins must be all set to zero. By using the supplied vertical and horizontal counters, meaningfull datas can be displayed on the screen’s active region.
Verification is the process of ensuring that a given hardware design works as expected. Chip design is a very extensive and time consuming process and costs millions to fabricate. Functional defects in the design if caught at an earlier stage in the design process will help save costs. If a bug is found later on in the design flow, then all of the design steps have to be repeated again which will use up more resources, money and time. If the entire design flow has to be repeated, then its called a respin of the chip.
A hardware design mostly consist of several Verilog (.v), or systemverilog, files with one top module, in which all other sub-modules are instantiated to achive the desired behaviour and functionality. An enviroment called testbench is required for verification of a given design and is usually written in SystemVerilog. The idea is to drive the design with different inputs and cases to observe its outÄźut and compare it with expected values to see if the design is behaving the way it should. A testbench allows us to verify the functionality of a design through simulations. It is a container where the design is placed and driven with different input stimulus.
Steps of the verification and corresponding modules:
- Generate different types of input stimulus (generator)
- Drive the design inputs with the generated stimulus (driver,monitor)
- Allow the design to process input and provide an output (interface)
- Check the output with expected behavior to find functional defects (scoreboard)
- If a functional bug is found, then change the design to fix the bug
- Perform the above steps until there are no more functional defect
Component | Description |
---|---|
Generator | Generates the different input stimulus to be driven to DUT |
Interface | Contains design signals that can be driven or monitored |
Driver | Drives the generated stimulus to the design |
Monitor | Monitor the design input-output ports to capture design activity |
Scoreboard | Checks output from the design with expected behaviour |
Enviroment | Contains all the verification components mentioned ebove |
Test | Contains the enviroment that can be used with different configuration settings |
Testbench Structure : from *https://www.chipverify.com/systemverilog/systemverilog-tutorial*
What is DUT? Design Under Test is abbreviated as DUT, it is the hardware design written in Hardware Design Languages.
What is interface? Designs may contain hundreds of port signals, to connect, maintain and re-use these signals, interface is created. Place all the design input-output ports into a the interface. Interface connects just Driver to DUT and DUT to Monitor. It is not used internal communication of the components inside the Test.
What is driver and generator? >Driver is the verification component that does the pin management of the DUT. The generator is a verification component that can create valid data transactions and send them to the driver. The driver then drives the data to DUT through the interface.
What is Transaction Object? >Data transactions are implemented as class objects, it is used within the communications of the components inside the enviroment.
What does the monitor do? >The DUT processes input data and sends the result to the outÄźut pins. The monitor picks up the processed dat, converts it to a transaction object and sends it to the scoreboard.
Scoreboard >The Scoreboard can have a referance model that behaves the same way as the DUT. This model reflects the expected behaviour of the DUT. Input sent to DUT is also sent to this reference model inside the scoreboard. So the comparison in the scoreboard between the result of DUT and reference model tells us whether there is functional defect in the design.
Enviroment >It makes the verification more flexible and scalable because more components can be plugged into the same enviroment for a future project.
Test >The test will instantiate an object of the environment and configure it the way the test wants to. Remember that we will most probably have thousands of tests and it is not feasbile to make direct changes to the environment for each test. Instead we want certain knobs/parameters in the environment that can be tweaked for each test. That way, the test will have a higher control over stimulus generation and will be more effective.
The Systemverilog testbench is designed to verify the Bressenham’s line drawing algorithm that is implemented with vga interface.
The verification enviroment contains a generator, a driver, a monitor and a scoreboard. In the scoreboard, there is a referance model of the Bressenham’s line algorithm and scoreboard compares the result of this model and DUT. Driver sends the input data to DUT by using interface at every positive edge of the vertical synchronization signal, it also sends to scoreboard to run the reference via TLM port. Positive edge of the vertial synchronization indicates that the scan of the screen starts so at this time new data is sent and this whole screen is captured by monitor then sent to scoreboard.
Design Codes : Design
Simulation Codes : Sim
Important Note: BASYS3 board does not contain ADC (anolog to digital converter) for the VGA connecter. It drives vga pins through digital pins and with the help of voltage divider circuits.Each color pin is represented by four bits so it is able to create 16 different tones for each color. In total 4096 (2^(12) ) colors can be generated.
The design is verified on Questa simulator. The correct compilation order of design and simulation files can be seen below:
Compile Order
The simulation result of the transcipt can be seen :
# Loading work.vga_interface(fast)
# Loading work.testbench_pkg(fast)
# Loading work.tb_top_sv_unit(fast)
# Loading work.tb_top(fast)
# Loading work.vga_interface(fast)
# Loading work.drawing_line_top_sv_unit(fast)
# Loading work.drawing_line_top(fast)
# Loading work.clock_div(fast)
# Loading work.vga_controller_sv_unit(fast)
# Loading work.vga_controller(fast)
# Loading work.line_drawer(fast)
# Loading work.glbl(fast)
run -all
# TEST_STARTING
# T=200000 new test
# T=200000 [Driver] starting..
# T=200000 [Monitor] starting
# T=200000 [Generator]waits the driver event
# T=205000 [Generator] send the line coordinate
# T=205000 [Generator]waits the driver event
# T= 210000 [Driver] waiting for m_item
# T= 210000 [Driver] m_item arrived, x0:0x0 y0:0x0 x1:0x9 y1:0x9
# T=210000 [Monitor] starting to send pixel data
# T=215000 [Generator] send the line coordinate
# T=215000 [Generator]waits the driver event
# T=136930000 [Monitor] all pixel data send
# T=138200000 [Scoreboard] crdnt from driver via transaction x0:0x0 y0:0x0 x1:0x9 y1:0x9
# alg v_cntr: 0x0, h_cntr:0x0
# alg v_cntr: 0x1, h_cntr:0x1
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x4
# alg v_cntr: 0x5, h_cntr:0x5
# alg v_cntr: 0x6, h_cntr:0x6
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x8
# alg v_cntr: 0x9, h_cntr:0x9
# T=139130000 [Monitor] starting to send pixel data
# T= 139130000 [Driver] waiting for m_item
# T= 139130000 [Driver] m_item arrived, x0:0xa y0:0x2 x1:0x2 y1:0x14
# T=139130000 [Scoreboard] crdnt from driver via transaction x0:0xa y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0xa
# alg v_cntr: 0x3, h_cntr:0xa
# alg v_cntr: 0x4, h_cntr:0x9
# alg v_cntr: 0x5, h_cntr:0x9
# alg v_cntr: 0x6, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x8, h_cntr:0x7
# alg v_cntr: 0x9, h_cntr:0x7
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x6
# alg v_cntr: 0xd, h_cntr:0x5
# alg v_cntr: 0xe, h_cntr:0x5
# alg v_cntr: 0xf, h_cntr:0x4
# alg v_cntr: 0x10, h_cntr:0x4
# alg v_cntr: 0x11, h_cntr:0x3
# alg v_cntr: 0x12, h_cntr:0x3
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=139135000 [Generator] send the line coordinate
# T=139135000 [Generator]waits the driver event
# T=278050000 [Monitor] all pixel data send
# T=278050000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0xa size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0xa size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x9 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x9 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x8 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x7 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x7 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x6 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x5 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x5 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x4 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x10, h_cntr: 0x4 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x11, h_cntr: 0x3 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x12, h_cntr: 0x3 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x13, h_cntr: 0x2 size of 0x13 0x13
# T=278050000 [Scoreboard] ----v_cntr: 0x14, h_cntr: 0x2 size of 0x13 0x13
# T = 278050000 [SCOREBOARD] PASS! ,line of x0: 0xa, y0: 0x2, x1: 0x2, y1: 0x14
#
# T=280250000 [Monitor] starting to send pixel data
# T= 280250000 [Driver] waiting for m_item
# T= 280250000 [Driver] m_item arrived, x0:0x14 y0:0x2 x1:0x1 y1:0xa
# T=280250000 [Scoreboard] crdnt from driver via transaction x0:0x14 y0:0x2 x1:0x1 y1:0xa
# alg v_cntr: 0x2, h_cntr:0x14
# alg v_cntr: 0x2, h_cntr:0x13
# alg v_cntr: 0x3, h_cntr:0x12
# alg v_cntr: 0x3, h_cntr:0x11
# alg v_cntr: 0x4, h_cntr:0x10
# alg v_cntr: 0x4, h_cntr:0xf
# alg v_cntr: 0x5, h_cntr:0xe
# alg v_cntr: 0x5, h_cntr:0xd
# alg v_cntr: 0x5, h_cntr:0xc
# alg v_cntr: 0x6, h_cntr:0xb
# alg v_cntr: 0x6, h_cntr:0xa
# alg v_cntr: 0x7, h_cntr:0x9
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x6
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x4
# alg v_cntr: 0x9, h_cntr:0x3
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x1
# T=280255000 [Generator] send the line coordinate
# T=280255000 [Generator]waits the driver event
# T=419170000 [Monitor] all pixel data send
# T=419170000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x13 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x14 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x11 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x12 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0xf size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x10 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xc size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xd size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xe size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xa size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xb size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x7 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x9 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x6 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x3 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x4 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x1 size of 0x14 0x14
# T=419170000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x2 size of 0x14 0x14
# T = 419170000 [SCOREBOARD] PASS! ,line of x0: 0x14, y0: 0x2, x1: 0x1, y1: 0xa
#
# T=421370000 [Monitor] starting to send pixel data
# T= 421370000 [Driver] waiting for m_item
# T= 421370000 [Driver] m_item arrived, x0:0x3 y0:0x3 x1:0x8 y1:0xf
# T=421370000 [Scoreboard] crdnt from driver via transaction x0:0x3 y0:0x3 x1:0x8 y1:0xf
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x3
# alg v_cntr: 0x5, h_cntr:0x4
# alg v_cntr: 0x6, h_cntr:0x4
# alg v_cntr: 0x7, h_cntr:0x5
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x5
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x7
# alg v_cntr: 0xd, h_cntr:0x7
# alg v_cntr: 0xe, h_cntr:0x8
# alg v_cntr: 0xf, h_cntr:0x8
# T=421375000 [Generator] send the line coordinate
# T=421375000 [Generator]waits the driver event
# T=560290000 [Monitor] all pixel data send
# T=560290000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x3 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x3 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x4 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x4 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x5 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x5 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x7 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x7 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x8 size of 0xd 0xd
# T=560290000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x8 size of 0xd 0xd
# T = 560290000 [SCOREBOARD] PASS! ,line of x0: 0x3, y0: 0x3, x1: 0x8, y1: 0xf
#
# T=562490000 [Monitor] starting to send pixel data
# T= 562490000 [Driver] waiting for m_item
# T= 562490000 [Driver] m_item arrived, x0:0x2 y0:0x2 x1:0x2 y1:0x14
# T=562490000 [Scoreboard] crdnt from driver via transaction x0:0x2 y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x2
# alg v_cntr: 0x4, h_cntr:0x2
# alg v_cntr: 0x5, h_cntr:0x2
# alg v_cntr: 0x6, h_cntr:0x2
# alg v_cntr: 0x7, h_cntr:0x2
# alg v_cntr: 0x8, h_cntr:0x2
# alg v_cntr: 0x9, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xb, h_cntr:0x2
# alg v_cntr: 0xc, h_cntr:0x2
# alg v_cntr: 0xd, h_cntr:0x2
# alg v_cntr: 0xe, h_cntr:0x2
# alg v_cntr: 0xf, h_cntr:0x2
# alg v_cntr: 0x10, h_cntr:0x2
# alg v_cntr: 0x11, h_cntr:0x2
# alg v_cntr: 0x12, h_cntr:0x2
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=562495000 [Generator] send the line coordinate
# T=562495000 [Generator]waits the driver event
# T=701410000 [Monitor] all pixel data send
# T=701410000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x10, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x11, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x12, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x13, h_cntr: 0x2 size of 0x13 0x13
# T=701410000 [Scoreboard] ----v_cntr: 0x14, h_cntr: 0x2 size of 0x13 0x13
# T = 701410000 [SCOREBOARD] PASS! ,line of x0: 0x2, y0: 0x2, x1: 0x2, y1: 0x14
#
# T=703610000 [Monitor] starting to send pixel data
# T= 703610000 [Driver] waiting for m_item
# T= 703610000 [Driver] m_item arrived, x0:0x0 y0:0x0 x1:0x9 y1:0x9
# T=703610000 [Scoreboard] crdnt from driver via transaction x0:0x0 y0:0x0 x1:0x9 y1:0x9
# alg v_cntr: 0x0, h_cntr:0x0
# alg v_cntr: 0x1, h_cntr:0x1
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x4
# alg v_cntr: 0x5, h_cntr:0x5
# alg v_cntr: 0x6, h_cntr:0x6
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x8
# alg v_cntr: 0x9, h_cntr:0x9
# T=703615000 [Generator] send the line coordinate
# T=703615000 [Generator]waits the driver event
# T=842530000 [Monitor] all pixel data send
# T=842530000 [Scoreboard] ----v_cntr: 0x0, h_cntr: 0x0 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x1, h_cntr: 0x1 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x2 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x3 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x4 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x5 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x6 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x7 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x8 size of 0xa 0xa
# T=842530000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x9 size of 0xa 0xa
# T = 842530000 [SCOREBOARD] PASS! ,line of x0: 0x0, y0: 0x0, x1: 0x9, y1: 0x9
#
# T=844730000 [Monitor] starting to send pixel data
# T= 844730000 [Driver] waiting for m_item
# T= 844730000 [Driver] m_item arrived, x0:0xa y0:0x2 x1:0x2 y1:0x14
# T=844730000 [Scoreboard] crdnt from driver via transaction x0:0xa y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0xa
# alg v_cntr: 0x3, h_cntr:0xa
# alg v_cntr: 0x4, h_cntr:0x9
# alg v_cntr: 0x5, h_cntr:0x9
# alg v_cntr: 0x6, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x8, h_cntr:0x7
# alg v_cntr: 0x9, h_cntr:0x7
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x6
# alg v_cntr: 0xd, h_cntr:0x5
# alg v_cntr: 0xe, h_cntr:0x5
# alg v_cntr: 0xf, h_cntr:0x4
# alg v_cntr: 0x10, h_cntr:0x4
# alg v_cntr: 0x11, h_cntr:0x3
# alg v_cntr: 0x12, h_cntr:0x3
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=844735000 [Generator] send the line coordinate
# T=844735000 [Generator]waits the driver event
# T=983650000 [Monitor] all pixel data send
# T=983650000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0xa size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0xa size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x9 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x9 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x8 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x7 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x7 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x6 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x5 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x5 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x4 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x10, h_cntr: 0x4 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x11, h_cntr: 0x3 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x12, h_cntr: 0x3 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x13, h_cntr: 0x2 size of 0x13 0x13
# T=983650000 [Scoreboard] ----v_cntr: 0x14, h_cntr: 0x2 size of 0x13 0x13
# T = 983650000 [SCOREBOARD] PASS! ,line of x0: 0xa, y0: 0x2, x1: 0x2, y1: 0x14
#
# T=985850000 [Monitor] starting to send pixel data
# T= 985850000 [Driver] waiting for m_item
# T= 985850000 [Driver] m_item arrived, x0:0x14 y0:0x2 x1:0x1 y1:0xa
# T=985850000 [Scoreboard] crdnt from driver via transaction x0:0x14 y0:0x2 x1:0x1 y1:0xa
# alg v_cntr: 0x2, h_cntr:0x14
# alg v_cntr: 0x2, h_cntr:0x13
# alg v_cntr: 0x3, h_cntr:0x12
# alg v_cntr: 0x3, h_cntr:0x11
# alg v_cntr: 0x4, h_cntr:0x10
# alg v_cntr: 0x4, h_cntr:0xf
# alg v_cntr: 0x5, h_cntr:0xe
# alg v_cntr: 0x5, h_cntr:0xd
# alg v_cntr: 0x5, h_cntr:0xc
# alg v_cntr: 0x6, h_cntr:0xb
# alg v_cntr: 0x6, h_cntr:0xa
# alg v_cntr: 0x7, h_cntr:0x9
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x6
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x4
# alg v_cntr: 0x9, h_cntr:0x3
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x1
# T=985855000 [Generator] send the line coordinate
# T=985855000 [Generator]waits the driver event
# T=1124770000 [Monitor] all pixel data send
# T=1124770000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x13 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x14 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x11 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x12 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0xf size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x10 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xc size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xd size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xe size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xa size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xb size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x7 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x9 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x6 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x3 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x4 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x1 size of 0x14 0x14
# T=1124770000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x2 size of 0x14 0x14
# T = 1124770000 [SCOREBOARD] PASS! ,line of x0: 0x14, y0: 0x2, x1: 0x1, y1: 0xa
#
# T=1126970000 [Monitor] starting to send pixel data
# T= 1126970000 [Driver] waiting for m_item
# T= 1126970000 [Driver] m_item arrived, x0:0x3 y0:0x3 x1:0x8 y1:0xf
# T=1126970000 [Scoreboard] crdnt from driver via transaction x0:0x3 y0:0x3 x1:0x8 y1:0xf
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x3
# alg v_cntr: 0x5, h_cntr:0x4
# alg v_cntr: 0x6, h_cntr:0x4
# alg v_cntr: 0x7, h_cntr:0x5
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x5
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x7
# alg v_cntr: 0xd, h_cntr:0x7
# alg v_cntr: 0xe, h_cntr:0x8
# alg v_cntr: 0xf, h_cntr:0x8
# T=1126975000 [Generator] send the line coordinate
# T=1126975000 [Generator]waits the driver event
# T=1265890000 [Monitor] all pixel data send
# T=1265890000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x3 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x3 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x4 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x4 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x5 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x5 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x7 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x7 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x8 size of 0xd 0xd
# T=1265890000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x8 size of 0xd 0xd
# T = 1265890000 [SCOREBOARD] PASS! ,line of x0: 0x3, y0: 0x3, x1: 0x8, y1: 0xf
#
# T=1268090000 [Monitor] starting to send pixel data
# T= 1268090000 [Driver] waiting for m_item
# T= 1268090000 [Driver] m_item arrived, x0:0x2 y0:0x2 x1:0x2 y1:0x14
# T=1268090000 [Scoreboard] crdnt from driver via transaction x0:0x2 y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x2
# alg v_cntr: 0x4, h_cntr:0x2
# alg v_cntr: 0x5, h_cntr:0x2
# alg v_cntr: 0x6, h_cntr:0x2
# alg v_cntr: 0x7, h_cntr:0x2
# alg v_cntr: 0x8, h_cntr:0x2
# alg v_cntr: 0x9, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xb, h_cntr:0x2
# alg v_cntr: 0xc, h_cntr:0x2
# alg v_cntr: 0xd, h_cntr:0x2
# alg v_cntr: 0xe, h_cntr:0x2
# alg v_cntr: 0xf, h_cntr:0x2
# alg v_cntr: 0x10, h_cntr:0x2
# alg v_cntr: 0x11, h_cntr:0x2
# alg v_cntr: 0x12, h_cntr:0x2
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=1268095000 [Generator] send the line coordinate
# T=1268095000 [Generator]waits the driver event
# T=1407010000 [Monitor] all pixel data send
# T=1407010000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x10, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x11, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x12, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x13, h_cntr: 0x2 size of 0x13 0x13
# T=1407010000 [Scoreboard] ----v_cntr: 0x14, h_cntr: 0x2 size of 0x13 0x13
# T = 1407010000 [SCOREBOARD] PASS! ,line of x0: 0x2, y0: 0x2, x1: 0x2, y1: 0x14
#
# T=1409210000 [Monitor] starting to send pixel data
# T= 1409210000 [Driver] waiting for m_item
# T= 1409210000 [Driver] m_item arrived, x0:0x0 y0:0x0 x1:0x9 y1:0x9
# T=1409210000 [Scoreboard] crdnt from driver via transaction x0:0x0 y0:0x0 x1:0x9 y1:0x9
# alg v_cntr: 0x0, h_cntr:0x0
# alg v_cntr: 0x1, h_cntr:0x1
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x4
# alg v_cntr: 0x5, h_cntr:0x5
# alg v_cntr: 0x6, h_cntr:0x6
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x8
# alg v_cntr: 0x9, h_cntr:0x9
# T=1409215000 [Generator] send the line coordinate
# T=1409215000 [Generator]waits the driver event
# T=1548130000 [Monitor] all pixel data send
# T=1548130000 [Scoreboard] ----v_cntr: 0x0, h_cntr: 0x0 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x1, h_cntr: 0x1 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x2 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x3 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x4 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x5 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x6 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x7 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x8 size of 0xa 0xa
# T=1548130000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x9 size of 0xa 0xa
# T = 1548130000 [SCOREBOARD] PASS! ,line of x0: 0x0, y0: 0x0, x1: 0x9, y1: 0x9
#
# T=1550330000 [Monitor] starting to send pixel data
# T= 1550330000 [Driver] waiting for m_item
# T= 1550330000 [Driver] m_item arrived, x0:0xa y0:0x2 x1:0x2 y1:0x14
# T=1550330000 [Scoreboard] crdnt from driver via transaction x0:0xa y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0xa
# alg v_cntr: 0x3, h_cntr:0xa
# alg v_cntr: 0x4, h_cntr:0x9
# alg v_cntr: 0x5, h_cntr:0x9
# alg v_cntr: 0x6, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x8, h_cntr:0x7
# alg v_cntr: 0x9, h_cntr:0x7
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x6
# alg v_cntr: 0xd, h_cntr:0x5
# alg v_cntr: 0xe, h_cntr:0x5
# alg v_cntr: 0xf, h_cntr:0x4
# alg v_cntr: 0x10, h_cntr:0x4
# alg v_cntr: 0x11, h_cntr:0x3
# alg v_cntr: 0x12, h_cntr:0x3
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=1550335000 [Generator] send the line coordinate
# T=1550335000 [Generator]waits the driver event
# T=1689250000 [Monitor] all pixel data send
# T=1689250000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0xa size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0xa size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x9 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x9 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x8 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x7 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x7 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x6 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x5 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x5 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x4 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x10, h_cntr: 0x4 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x11, h_cntr: 0x3 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x12, h_cntr: 0x3 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x13, h_cntr: 0x2 size of 0x13 0x13
# T=1689250000 [Scoreboard] ----v_cntr: 0x14, h_cntr: 0x2 size of 0x13 0x13
# T = 1689250000 [SCOREBOARD] PASS! ,line of x0: 0xa, y0: 0x2, x1: 0x2, y1: 0x14
#
# T=1691450000 [Monitor] starting to send pixel data
# T= 1691450000 [Driver] waiting for m_item
# T= 1691450000 [Driver] m_item arrived, x0:0x14 y0:0x2 x1:0x1 y1:0xa
# T=1691450000 [Scoreboard] crdnt from driver via transaction x0:0x14 y0:0x2 x1:0x1 y1:0xa
# alg v_cntr: 0x2, h_cntr:0x14
# alg v_cntr: 0x2, h_cntr:0x13
# alg v_cntr: 0x3, h_cntr:0x12
# alg v_cntr: 0x3, h_cntr:0x11
# alg v_cntr: 0x4, h_cntr:0x10
# alg v_cntr: 0x4, h_cntr:0xf
# alg v_cntr: 0x5, h_cntr:0xe
# alg v_cntr: 0x5, h_cntr:0xd
# alg v_cntr: 0x5, h_cntr:0xc
# alg v_cntr: 0x6, h_cntr:0xb
# alg v_cntr: 0x6, h_cntr:0xa
# alg v_cntr: 0x7, h_cntr:0x9
# alg v_cntr: 0x7, h_cntr:0x8
# alg v_cntr: 0x7, h_cntr:0x7
# alg v_cntr: 0x8, h_cntr:0x6
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x4
# alg v_cntr: 0x9, h_cntr:0x3
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x1
# T=1691455000 [Generator] send the line coordinate
# T=1691455000 [Generator]waits the driver event
# T=1830370000 [Monitor] all pixel data send
# T=1830370000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x13 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x2, h_cntr: 0x14 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x11 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x12 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0xf size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x10 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xc size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xd size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0xe size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xa size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0xb size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x7 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x8 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x9 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x6 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x3 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x4 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x1 size of 0x14 0x14
# T=1830370000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x2 size of 0x14 0x14
# T = 1830370000 [SCOREBOARD] PASS! ,line of x0: 0x14, y0: 0x2, x1: 0x1, y1: 0xa
#
# T=1832570000 [Monitor] starting to send pixel data
# T= 1832570000 [Driver] waiting for m_item
# T= 1832570000 [Driver] m_item arrived, x0:0x3 y0:0x3 x1:0x8 y1:0xf
# T=1832570000 [Scoreboard] crdnt from driver via transaction x0:0x3 y0:0x3 x1:0x8 y1:0xf
# alg v_cntr: 0x3, h_cntr:0x3
# alg v_cntr: 0x4, h_cntr:0x3
# alg v_cntr: 0x5, h_cntr:0x4
# alg v_cntr: 0x6, h_cntr:0x4
# alg v_cntr: 0x7, h_cntr:0x5
# alg v_cntr: 0x8, h_cntr:0x5
# alg v_cntr: 0x9, h_cntr:0x5
# alg v_cntr: 0xa, h_cntr:0x6
# alg v_cntr: 0xb, h_cntr:0x6
# alg v_cntr: 0xc, h_cntr:0x7
# alg v_cntr: 0xd, h_cntr:0x7
# alg v_cntr: 0xe, h_cntr:0x8
# alg v_cntr: 0xf, h_cntr:0x8
# T=1832575000 [Generator] send the line coordinate
# T=1832575000 [Generator]waits the driver event
# T=1971490000 [Monitor] all pixel data send
# T=1971490000 [Scoreboard] ----v_cntr: 0x3, h_cntr: 0x3 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x4, h_cntr: 0x3 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x5, h_cntr: 0x4 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x6, h_cntr: 0x4 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x7, h_cntr: 0x5 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x8, h_cntr: 0x5 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0x9, h_cntr: 0x5 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xa, h_cntr: 0x6 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xb, h_cntr: 0x6 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xc, h_cntr: 0x7 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xd, h_cntr: 0x7 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xe, h_cntr: 0x8 size of 0xd 0xd
# T=1971490000 [Scoreboard] ----v_cntr: 0xf, h_cntr: 0x8 size of 0xd 0xd
# T = 1971490000 [SCOREBOARD] PASS! ,line of x0: 0x3, y0: 0x3, x1: 0x8, y1: 0xf
#
# T=1973690000 [Monitor] starting to send pixel data
# T= 1973690000 [Driver] waiting for m_item
# T= 1973690000 [Driver] m_item arrived, x0:0x2 y0:0x2 x1:0x2 y1:0x14
# T=1973690000 [Scoreboard] crdnt from driver via transaction x0:0x2 y0:0x2 x1:0x2 y1:0x14
# alg v_cntr: 0x2, h_cntr:0x2
# alg v_cntr: 0x3, h_cntr:0x2
# alg v_cntr: 0x4, h_cntr:0x2
# alg v_cntr: 0x5, h_cntr:0x2
# alg v_cntr: 0x6, h_cntr:0x2
# alg v_cntr: 0x7, h_cntr:0x2
# alg v_cntr: 0x8, h_cntr:0x2
# alg v_cntr: 0x9, h_cntr:0x2
# alg v_cntr: 0xa, h_cntr:0x2
# alg v_cntr: 0xb, h_cntr:0x2
# alg v_cntr: 0xc, h_cntr:0x2
# alg v_cntr: 0xd, h_cntr:0x2
# alg v_cntr: 0xe, h_cntr:0x2
# alg v_cntr: 0xf, h_cntr:0x2
# alg v_cntr: 0x10, h_cntr:0x2
# alg v_cntr: 0x11, h_cntr:0x2
# alg v_cntr: 0x12, h_cntr:0x2
# alg v_cntr: 0x13, h_cntr:0x2
# alg v_cntr: 0x14, h_cntr:0x2
# T=1973695000 [Generator] send the line coordinate
# T=1973695000 [Generator]waits the driver event
# TEST_FINISHED
# ** Note: $finish : ../../../../drawing_line.srcs/sim_1/new/tb_top.sv(89)
# Time: 2000200 ns Iteration: 0 Instance: /tb_top
The simulation output of the our design:
sim wave output
Additional Design Demonstration on Monitor: Drawing CROSSLINES with Lines
Additional Design Demonstration on Monitor: Drawing TRIANGLE with Lines
Additional Design Demonstration on Monitor: Drawing STAR with Lines