Skip to content

Commit

Permalink
Improved appearance
Browse files Browse the repository at this point in the history
  • Loading branch information
oVadim committed Jan 23, 2025
1 parent 1c05971 commit f01544c
Show file tree
Hide file tree
Showing 3 changed files with 166 additions and 50 deletions.
93 changes: 64 additions & 29 deletions labs/2_graphics/2_1_rectangle_ellipse_parabola/gtkwave.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,73 @@

set all_signals [list]

lappend all_signals tb.i_display.pixel_00
lappend all_signals tb.i_display.pixel_01
lappend all_signals tb.i_display.pixel_02
lappend all_signals tb.i_display.pixel_03
lappend all_signals tb.i_display.pixel_04
lappend all_signals tb.i_display.pixel_05
lappend all_signals tb.i_display.pixel_06
lappend all_signals tb.i_display.pixel_07
lappend all_signals tb.i_display.pixel_08
lappend all_signals tb.i_display.pixel_09
lappend all_signals tb.i_display.pixel_10
lappend all_signals tb.i_display.pixel_11
lappend all_signals tb.i_display.pixel_12
lappend all_signals tb.i_display.pixel_13
lappend all_signals tb.i_display.pixel_14
lappend all_signals tb.i_display.pixel_15
lappend all_signals tb.i_display.pixel_16
lappend all_signals tb.i_display.pixel_17
lappend all_signals tb.i_display.pixel_18
lappend all_signals tb.i_display.pixel_19
lappend all_signals tb.i_display.pixel_20
lappend all_signals tb.i_display.pixel_21
lappend all_signals tb.i_display.pixel_22
lappend all_signals tb.i_display.pixel_23
lappend all_signals tb.i_display.pixel_24
lappend all_signals tb.i_display.pixel_25
lappend all_signals tb.i_display.pixel_26
lappend all_signals tb.i_display.pixel_27
lappend all_signals tb.i_display.pixel_28
lappend all_signals tb.i_display.pixel_29
lappend all_signals tb.i_display.pixel_28
lappend all_signals tb.i_display.pixel_27
lappend all_signals tb.i_display.pixel_26
lappend all_signals tb.i_display.pixel_25
lappend all_signals tb.i_display.pixel_24
lappend all_signals tb.i_display.pixel_23
lappend all_signals tb.i_display.pixel_22
lappend all_signals tb.i_display.pixel_21
lappend all_signals tb.i_display.pixel_20
lappend all_signals tb.i_display.pixel_19
lappend all_signals tb.i_display.pixel_18
lappend all_signals tb.i_display.pixel_17
lappend all_signals tb.i_display.pixel_16
lappend all_signals tb.i_display.pixel_15
lappend all_signals tb.i_display.pixel_14
lappend all_signals tb.i_display.pixel_13
lappend all_signals tb.i_display.pixel_12
lappend all_signals tb.i_display.pixel_11
lappend all_signals tb.i_display.pixel_10
lappend all_signals tb.i_display.pixel_09
lappend all_signals tb.i_display.pixel_08
lappend all_signals tb.i_display.pixel_07
lappend all_signals tb.i_display.pixel_06
lappend all_signals tb.i_display.pixel_05
lappend all_signals tb.i_display.pixel_04
lappend all_signals tb.i_display.pixel_03
lappend all_signals tb.i_display.pixel_02
lappend all_signals tb.i_display.pixel_01
lappend all_signals tb.i_display.pixel_00

lappend all_signals tb.i_lcd.LCD_DE
lappend all_signals tb.i_lcd.LCD_HSYNC
lappend all_signals tb.LCD_R
lappend all_signals tb.LCD_G
lappend all_signals tb.LCD_B
lappend all_signals tb.x
lappend all_signals tb.y

set num_added [ gtkwave::addSignalsFromList $all_signals ]

gtkwave::highlightSignalsFromList "tb.LCD_R\[4:0\]"
gtkwave::/Edit/Data_Format/Analog/Step
gtkwave::/Edit/Data_Format/Decimal

gtkwave::highlightSignalsFromList "tb.LCD_G\[5:0\]"
gtkwave::/Edit/Data_Format/Analog/Step
gtkwave::/Edit/Data_Format/Decimal

gtkwave::highlightSignalsFromList "tb.LCD_B\[4:0\]"
gtkwave::/Edit/Data_Format/Analog/Step
gtkwave::/Edit/Data_Format/Decimal

gtkwave::highlightSignalsFromList "tb.x\[8:0\]"
gtkwave::/Edit/Data_Format/Analog/Step
gtkwave::/Edit/Data_Format/Decimal

gtkwave::highlightSignalsFromList "tb.y\[8:0\]"
gtkwave::/Edit/Data_Format/Analog/Step
gtkwave::/Edit/Data_Format/Decimal

gtkwave::/Time/Zoom/Zoom_Full
gtkwave::/Time/Zoom/Zoom_In
gtkwave::/Time/Zoom/Zoom_In
gtkwave::/Time/Zoom/Zoom_In
gtkwave::/Time/Zoom/Zoom_In
gtkwave::/Time/Zoom/Zoom_In
gtkwave::/Time/Zoom/Zoom_To_End

gtkwave::/Edit/UnHighlight_All
74 changes: 73 additions & 1 deletion labs/2_graphics/2_1_rectangle_ellipse_parabola/surfer.scr
Original file line number Diff line number Diff line change
@@ -1,2 +1,74 @@
scope_add tb.i_display
variable_add tb.i_display.pixel_29
variable_add tb.i_display.pixel_28
variable_add tb.i_display.pixel_27
variable_add tb.i_display.pixel_26
variable_add tb.i_display.pixel_25
variable_add tb.i_display.pixel_24
variable_add tb.i_display.pixel_23
variable_add tb.i_display.pixel_22
variable_add tb.i_display.pixel_21
variable_add tb.i_display.pixel_20
variable_add tb.i_display.pixel_19
variable_add tb.i_display.pixel_18
variable_add tb.i_display.pixel_17
variable_add tb.i_display.pixel_16
variable_add tb.i_display.pixel_15
variable_add tb.i_display.pixel_14
variable_add tb.i_display.pixel_13
variable_add tb.i_display.pixel_12
variable_add tb.i_display.pixel_11
variable_add tb.i_display.pixel_10
variable_add tb.i_display.pixel_09
variable_add tb.i_display.pixel_08
variable_add tb.i_display.pixel_07
variable_add tb.i_display.pixel_06
variable_add tb.i_display.pixel_05
variable_add tb.i_display.pixel_04
variable_add tb.i_display.pixel_03
variable_add tb.i_display.pixel_02
variable_add tb.i_display.pixel_01
variable_add tb.i_display.pixel_00
variable_add tb.i_lcd.LCD_DE
variable_add tb.i_lcd.LCD_HSYNC
variable_add tb.LCD_R
variable_add tb.LCD_G
variable_add tb.LCD_B
variable_add tb.x
variable_add tb.y

scope_select tb.i_lcd

item_focus bo
item_set_format Unsigned
item_set_color Yellow

item_focus bp
item_set_format Unsigned
item_set_color Gray

item_focus ca
item_set_format Unsigned
item_set_color Red

item_focus cb
item_set_format Unsigned
item_set_color Green

item_focus cc
item_set_format Unsigned
item_set_color Blue

item_focus cd
item_set_format Unsigned
item_set_color Gray

item_focus ce
item_set_format Unsigned
item_set_color Gray

zoom_in
zoom_in
zoom_in
zoom_in
zoom_in
scroll_to_end
49 changes: 29 additions & 20 deletions labs/2_graphics/2_1_rectangle_ellipse_parabola/tb.sv
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
`include "config.svh"

// Shows the image on the VGA screen using signal lines in Wave Analyzer

module tb;

timeunit 1ns;
Expand Down Expand Up @@ -72,7 +74,9 @@ module tb;

);

assign pixel = |LCD_G;
// We output all the green pixels to signal lines in Wave Analyzer

assign pixel = |LCD_R; // You can try it |LCD_G or |LCD_B or a mix of them

//------------------------------------------------------------------------

Expand All @@ -89,6 +93,8 @@ module tb;

//------------------------------------------------------------------------

// We output pixels to signal lines in Wave Analyzer

tb_lcd_display i_display
(
.PixelClk ( pixel_clk ),
Expand Down Expand Up @@ -141,7 +147,7 @@ module tb;

// Based on timescale is 1 ns / 1 ps

# 0.0002s
# 0.0001740s // We simulate until the end of the first frame

`ifdef MODEL_TECH // Mentor ModelSim and Questa
$stop;
Expand All @@ -152,6 +158,8 @@ module tb;

endmodule

// Scan and Sync signal generator for VGA screen

module tb_lcd_480_272
(
input PixelClk,
Expand All @@ -163,58 +171,59 @@ module tb_lcd_480_272
output [8:0] y
);

// Horizen count to Hsync, then next Horizen line.
// Calculation of visible, invisible pixel fields and synchronization signals

parameter H_Pixel_Valid = 16'd480;
parameter H_FrontPorch = 16'd50;
parameter H_BackPorch = 16'd30;

parameter PixelForHS = H_Pixel_Valid + H_FrontPorch + H_BackPorch;

parameter V_Pixel_Valid = 16'd272;
parameter V_FrontPorch = 16'd20;
parameter V_BackPorch = 16'd5;

parameter PixelForVS = V_Pixel_Valid + V_FrontPorch + V_BackPorch;

// Horizen pixel count
// Pixel counter

reg [15:0] H_PixelCount;
reg [15:0] V_PixelCount;
logic [15:0] H_PixelCount;
logic [15:0] V_PixelCount;

always @( posedge PixelClk or posedge rst )begin
if( rst ) begin
always_ff @ ( posedge PixelClk or posedge rst )begin
if ( rst ) begin
V_PixelCount <= 16'b0;
H_PixelCount <= 16'b0;
end
else if( H_PixelCount == PixelForHS ) begin
V_PixelCount <= V_PixelCount + 4'd9;
else if ( H_PixelCount == PixelForHS ) begin // We show every 9 lines using
V_PixelCount <= V_PixelCount + 4'd9; // signal lines in Wave Analyzer
H_PixelCount <= 16'b0;
end
else if( V_PixelCount >= PixelForVS ) begin
else if ( V_PixelCount >= PixelForVS ) begin
V_PixelCount <= 16'b0;
H_PixelCount <= 16'b0;
end
else begin
V_PixelCount <= V_PixelCount ;
H_PixelCount <= H_PixelCount + 1'b1;
V_PixelCount <= V_PixelCount ;
H_PixelCount <= H_PixelCount + 1'b1;
end
end

// SYNC-DE MODE
// Synchronization signals

assign LCD_HSYNC = H_PixelCount <= ( PixelForHS - H_FrontPorch ) ? 1'b0 : 1'b1;

assign LCD_VSYNC = V_PixelCount < ( PixelForVS ) ? 1'b0 : 1'b1;
assign LCD_DE = ( H_PixelCount >= H_BackPorch ) &&
( H_PixelCount <= H_Pixel_Valid + H_BackPorch ) &&
( V_PixelCount >= V_BackPorch ) &&
( V_PixelCount <= V_Pixel_Valid + V_BackPorch ) && PixelClk;

assign LCD_DE = ( H_PixelCount >= H_BackPorch ) && ( H_PixelCount <= H_Pixel_Valid + H_BackPorch ) &&
( V_PixelCount >= V_BackPorch ) && ( V_PixelCount <= V_Pixel_Valid + V_BackPorch ) && PixelClk;
// Current pixel position

assign x = 9' (H_PixelCount - H_BackPorch);
assign y = 9' (V_PixelCount - V_BackPorch);

endmodule

// Shows the image on the VGA screen using signal lines in Wave Analyzer

module tb_lcd_display
(
input PixelClk,
Expand Down

0 comments on commit f01544c

Please sign in to comment.