1
0
mirror of https://github.com/Klagarge/Cursor.git synced 2025-06-26 04:12:31 +00:00

Initial commit

This commit is contained in:
Rémi Heredero
2021-11-24 10:50:51 +01:00
commit c7ba678fbb
961 changed files with 501515 additions and 0 deletions

View File

@ -0,0 +1,188 @@
-- filename: LCD_usage.vhd
-- kind: txt file
--------------------------------------------------------------------------------
-- History:
-- v1.0 : zas 22.08.2013 -- Initial Version
--------------------------------------------------------------------------------
-- Description:
-- Explanation about the usage and the functionalities of the LCD Driver.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Overview
--
The Lcd and Lcd_test library is intended to use with the HEB_LCD_V2_0, see
http://wiki.hevs.ch/uit/index.php5/Hardware/Parallelport/heb_lcd.
The HEB_LCD_V2_0 features a EADOGM132-5 LCD. Its a 4 Line and 132 column black-
light display. The font created for it uses 6 columns per character which allows
to have 4 lines with 22 characters each.
The connection is I2C based and some initial configuration needs to be done. The
bloc lcdController has everything needed to use the LCD. See the vague toplevel
overview below.
+--------------------------------------------------------------------------+
| +---------------------+ +----------------+ +---------------+ |
| | lcdCharacterEncoder |---->| lcdInitialiser |------>| lcdSerialiser | |
| +---------------------+ +----------------+ +---------------+ |
| ^ |
| | +-------------+ |
| +--------| bramMemory | |
| lcdController +-------------+ |
+--------------------------------------------------------------------------+
--------------------------------------------------------------------------------
-- Bloc description
--
lcdController -- Main bloc containing all needed subblocs
lcdCharacterEncoder -- This bloc receives the ASCII data to display and
and converts it to display data or display commands
bramMemory -- Contains the command for command chars (<0x20) and
the display (pixel) data for a the symbol chars
(>=0x20).
All the data of this ram are stored inthe font.txt file
lcdInitialiser -- This bloc lets send predefined commands for 2
features. One is for initialising the display in the
beginning, and the other is for clear all data from
the display
lcdSerialiser -- This bloc takes the parallised data and sends them
over the I2C bus.
--------------------------------------------------------------------------------
-- Supported Characters
--
In VHDL the characters can be written with the following command:
character'pos("VHDL")
where VHDL is inidicated in the table below.
Hex VHDL Value Description Function
-----------------------------------------------------------
0x00 "nul" Null Not supported
0x01 "soh" Start of Header Not supported
0x02 "stx" Start of Text (0,0) Goto pos line 0 character 0
0x03 "etx" End of Text (3,21) Goto pos line 3 character 21
0x04 "eot" End of Transmission Not supported
0x05 "enq" Enquiry Not supported
0x06 "ack" Acknowledgment Not supported
0x07 "bel" Bell Not supported
0x08 "bs" Backspace (y,x-1) Jump one char back
0x09 "ht" Horizontal Tab Not supported
0x0A "lf" Line Feed (y+1,x)Goto next line
0x0B "vt" Vertical Tab (y-1,x) Goto previous line
0x0C "ff" Form Feed Not supported
0x0D "cr" Carriage Return (y,0) Goto beginning of line
0x0E "so" Shift Out Not supported
0x0F "si" Shift In Not supported
0x10 "dle" Data Link Escape Not supported
0x11 "dc1" XON Device Control 1 Not supported
0x12 "dc2" Device Control 2 Not supported
0x13 "dc3" XOFFDevice Control 3 Not supported
0x14 "dc4" Device Control 4 Not supported
0x15 "nak" Negativ Acknowledgemnt Not supported
0x16 "syn" Synchronous Idle Not supported
0x17 "etb" End of Trans. Block Not supported
0x18 "can" Cancel Clear entire display
0x19 "em" End of Medium Not supported
0x1A "sub" Substitute Not supported
0x1B "esc" Escape Not supported
0x1C "fsp" File Separator Not supported
0x1D "gsp" Group Separator Not supported
0x1E "rsp" Reqst to SendRec. Sep. Not supported
0x1F "usp" Unit Separator Not supported
0x20 " " Space Print char
0x21 "!" exclamation mark Print char
0x22 """ double quote Print char
0x23 "#" number sign Print char
0x24 "$" dollar sign Print char
0x25 "%" percent Print char
0x26 "&" ampersand Print char
0x27 "'" single quote Print char
0x28 "(" left/open parenthesis Print char
0x29 ")" right/closing parenth. Print char
0x2A "*" asterisk Print char
0x2B "+" plus Print char
0x2C "," comma Print char
0x2D "-" minus or dash Print char
0x2E "." dot Print char
0x2F "/" forward slash Print char
0x30 "0" Print char
0x31 "1" Print char
0x32 "2" Print char
0x33 "3" Print char
0x34 "4" Print char
0x35 "5" Print char
0x36 "6" Print char
0x37 "7" Print char
0x38 "8" Print char
0x39 "9" Print char
0x3A ":" colon Print char
0x3B ";" semi-colon Print char
0x3C "<" less than Print char
0x3D "=" equal sign Print char
0x3E ">" greater than Print char
0x3F "?" question mark Print char
0x40 "@" AT symbol Print char
0x41 "A" Print char
0x42 "B" Print char
0x43 "C" Print char
0x44 "D" Print char
0x45 "E" Print char
0x46 "F" Print char
0x47 "G" Print char
0x48 "H" Print char
0x49 "I" Print char
0x4A "J" Print char
0x4B "K" Print char
0x4C "L" Print char
0x4D "M" Print char
0x4E "N" Print char
0x4F "O" Print char
0x50 "P" Print char
0x51 "Q" Print char
0x52 "R" Print char
0x53 "S" Print char
0x54 "T" Print char
0x55 "U" Print char
0x56 "V" Print char
0x57 "W" Print char
0x58 "X" Print char
0x59 "Y" Print char
0x5A "Z" Print char
0x5B "[" left/opening bracket Print char
0x5C "\" back slash Print char
0x5D "]" right/closing bracket Print char
0x5E "^" caret/circumflex Print char
0x5F "_" underscore Print char
0x60 "`" Print char
0x61 "a" Print char
0x62 "b" Print char
0x63 "c" Print char
0x64 "d" Print char
0x65 "e" Print char
0x66 "f" Print char
0x67 "g" Print char
0x68 "h" Print char
0x69 "i" Print char
0x6A "j" Print char
0x6B "k" Print char
0x6C "l" Print char
0x6D "m" Print char
0x6E "n" Print char
0x6F "o" Print char
0x70 "p" Print char
0x71 "q" Print char
0x72 "r" Print char
0x73 "s" Print char
0x74 "t" Print char
0x75 "u" Print char
0x76 "v" Print char
0x77 "w" Print char
0x78 "x" Print char
0x79 "y" Print char
0x7A "z" Print char
0x7B "{" left/opening brace Print char
0x7C "|" vertical bar Print char
0x7D "}" right/closing brace Print char
0x7E "~" tilde Print char
0x7F "del" arrow to the left Print char

Binary file not shown.

View File

@ -0,0 +1,47 @@
ARCHITECTURE test OF lcdController_tester IS
constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
signal clock_int: std_ulogic := '1';
constant testInterval: time := 5 us;
BEGIN
------------------------------------------------------------------------------
-- reset and clock
reset <= '1', '0' after 2*clockPeriod;
clock_int <= not clock_int after clockPeriod/2;
clock <= transport clock_int after clockPeriod*9/10;
------------------------------------------------------------------------------
-- send sequence
process
begin
ascii <= (others => '0');
send <= '0';
wait until falling_edge(busy);
wait for testInterval;
-- send single character
wait until rising_edge(clock_int);
ascii <= std_ulogic_vector(to_unsigned(character'pos('a'), ascii'length));
send <= '1', '0' after clockPeriod;
wait until rising_edge(busy);
wait until falling_edge(busy);
wait for testInterval;
-- send character stream
for index in character'pos('b') to character'pos('d') loop
ascii <= std_ulogic_vector(to_unsigned(index, ascii'length));
send <= '1', '0' after clockPeriod;
wait until rising_edge(busy);
wait until falling_edge(busy);
wait for 1 ns;
end loop;
wait for testInterval;
-- end of simulation
assert false
report "End of simulation"
severity failure;
wait;
end process;
END ARCHITECTURE test;

View File

@ -0,0 +1,111 @@
ARCHITECTURE test OF lcdDemo_tester IS
constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
signal clock_int: std_ulogic := '1';
constant testInterval:time := 0.1 ms;
constant initSequenceLength:time := 20 us;
constant helloSequenceLength:time := 1 ms;
constant rs232Frequency: real := real(baudRate);
constant rs232Period: time := (1.0/rs232Frequency) * 1 sec;
constant rs232WriteInterval: time := 10*rs232Period;
signal rs232OutString : string(1 to 32);
signal rs232SendOutString: std_uLogic;
signal rs232SendOutDone: std_uLogic;
signal rs232OutByte: character;
signal rs232SendOutByte: std_uLogic;
BEGIN
------------------------------------------------------------------------------
-- reset and clock
reset <= '1', '0' after 2*clockPeriod;
clock_int <= not clock_int after clockPeriod/2;
clock <= transport clock_int after clockPeriod*9/10;
------------------------------------------------------------------------------
-- test sequence
process
begin
rs232SendOutString <= '0';
buttons <= (others => '0');
wait for initSequenceLength + helloSequenceLength;
-- send bytes from serial port
rs232OutString <= "a ";
rs232SendOutString <= '1', '0' after 1 ns;
wait until rs232SendOutDone = '1';
wait for rs232WriteInterval;
rs232OutString <= "hello world ";
rs232SendOutString <= '1', '0' after 1 ns;
wait until rs232SendOutDone = '1';
wait for rs232WriteInterval;
wait for testInterval;
-- send hello message
wait until rising_edge(clock_int);
for index in buttons'range loop
buttons(index) <= '1';
wait until rising_edge(clock_int);
buttons(index) <= '0';
wait until rising_edge(clock_int);
end loop;
wait for helloSequenceLength;
wait for testInterval;
-- end of simulation
assert false
report "End of simulation"
severity failure;
wait;
end process;
--============================================================================
-- RS232 send
rsSendSerialString: process
constant rs232BytePeriod : time := 15*rs232Period;
variable commandRight: natural;
begin
rs232SendOutByte <= '0';
rs232SendOutDone <= '0';
wait until rising_edge(rs232SendOutString);
commandRight := rs232OutString'right;
while rs232OutString(commandRight) = ' ' loop
commandRight := commandRight-1;
end loop;
for index in rs232OutString'left to commandRight loop
rs232OutByte <= rs232OutString(index);
rs232SendOutByte <= '1', '0' after 1 ns;
wait for rs232BytePeriod;
end loop;
rs232OutByte <= cr;
rs232SendOutByte <= '1', '0' after 1 ns;
wait for rs232BytePeriod;
rs232SendOutDone <= '1';
wait for 1 ns;
end process rsSendSerialString;
-- send byte
rsSendSerialByte: process
variable txData: unsigned(7 downto 0);
begin
RxD <= '1';
wait until rising_edge(rs232SendOutByte);
txData := to_unsigned(character'pos(rs232OutByte), txData'length);
RxD <= '0';
wait for rs232Period;
for index in txData'reverse_range loop
RxD <= txData(index);
wait for rs232Period;
end loop;
end process rsSendSerialByte;
END ARCHITECTURE test;

View File

@ -0,0 +1,69 @@
ARCHITECTURE test OF lcdSerializer_tester IS
constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
signal clock_int: std_ulogic := '1';
constant initializationSequenceLength: positive := 14;
type initializtionDataType is array (1 to initializationSequenceLength)
of std_ulogic_vector(data'range);
constant initializtionData: initializtionDataType :=(
'0' & X"40", -- Display start line 0
'0' & X"A1", --
'0' & X"C0", --
'0' & X"A6", --
'0' & X"A2", --
'0' & X"2F", --
'0' & X"F8", --
'0' & X"00", --
'0' & X"23", --
'0' & X"81", --
'0' & X"1F", --
'0' & X"AC", --
'0' & X"00", --
'0' & X"AF" --
);
BEGIN
------------------------------------------------------------------------------
-- reset and clock
reset <= '1', '0' after 2*clockPeriod;
clock_int <= not clock_int after clockPeriod/2;
clock <= transport clock_int after clockPeriod*9/10;
------------------------------------------------------------------------------
-- send sequence
process
begin
data <= (others => '0');
send <= '0';
wait until falling_edge(busy);
-- send initialization codes
wait until rising_edge(clock_int);
for index in initializtionData'range loop
data <= initializtionData(index);
send <= '1', '0' after clockPeriod;
wait until rising_edge(busy);
wait until falling_edge(busy);
wait for 1 ns;
end loop;
wait for 100*clockPeriod;
-- send pixel codes
wait until rising_edge(clock_int);
for index in 1 to 8 loop
data <= std_ulogic_vector(to_unsigned(index, data'length));
data(data'high) <= '1';
send <= '1', '0' after clockPeriod;
wait until rising_edge(busy);
wait until falling_edge(busy);
wait for 1 ns;
end loop;
wait for 100*clockPeriod;
-- end of simulation
assert false
report "End of simulation"
severity failure;
wait;
end process;
END ARCHITECTURE test;

View File

@ -0,0 +1,4 @@
INCLUDE list {
DEFAULT atom 1
}
DIALECT atom VHDL_2008

View File

@ -0,0 +1 @@
DIALECT atom VHDL_2008

View File

@ -0,0 +1,4 @@
INCLUDE list {
DEFAULT atom 1
}
DIALECT atom VHDL_2008

View File

@ -0,0 +1,3 @@
# Script to replay the last simulation run
cd $SCRATCH_DIR/$DESIGN_NAME/Lcd_test/work
"C:\eda\Modelsim/win32/vsim" -f hds_args.tmp

View File

@ -0,0 +1,3 @@
DEFAULT_FILE atom lcd@controller_tb/struct.bd
DEFAULT_ARCHITECTURE atom struct
TOP_MARKER atom 1

View File

@ -0,0 +1,2 @@
DEFAULT_ARCHITECTURE atom test
DEFAULT_FILE atom lcdController_tester_test.vhd

View File

@ -0,0 +1,3 @@
DEFAULT_FILE atom lcd@demo_tb/struct.bd
DEFAULT_ARCHITECTURE atom struct
TOP_MARKER atom 1

View File

@ -0,0 +1,2 @@
DEFAULT_FILE atom lcdDemo_tester_test.vhd
DEFAULT_ARCHITECTURE atom test

View File

@ -0,0 +1,3 @@
DEFAULT_FILE atom lcd@serializer_tb/struct.bd
DEFAULT_ARCHITECTURE atom struct
TOP_MARKER atom 0

View File

@ -0,0 +1,2 @@
DEFAULT_ARCHITECTURE atom test
DEFAULT_FILE atom lcdSerializer_tester_test.vhd

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
# Script to replay the last simulation run
cd $SCRATCH_DIR/$DESIGN_NAME/Lcd_test/work
"C:\eda\Modelsim/win32/vsim" -f hds_args.tmp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
# Script to replay the last simulation run
cd $SCRATCH_DIR/$DESIGN_NAME/Lcd_test/work
"C:\eda\modeltech_6.6e/win32/vsim" -f hds_args.tmp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
# Script to replay the last simulation run
cd $SCRATCH_DIR/$DESIGN_NAME/Lcd_test/work
"C:\eda\Modelsim/win32/vsim" -f hds_args.tmp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,71 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate /lcddemo_tb/reset
add wave -noupdate /lcddemo_tb/clock
add wave -noupdate -divider Controls
add wave -noupdate -radix hexadecimal /lcddemo_tb/leds
add wave -noupdate -radix hexadecimal /lcddemo_tb/buttons
add wave -noupdate -divider UART
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/dataout
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/datavalid
add wave -noupdate -divider Test
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/send_int
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/busy_int
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/ascii_int
add wave -noupdate -divider {ASCII data}
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/ascii
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/send
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/busy
add wave -noupdate -divider Encoder
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/asciisend
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/asciibusy
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/asciidata
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/asciibitnb
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/lcdcolumnnb
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/lcddatabitnb
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/lcdpagenb
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/fontrownb
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/fontcolumnnb
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/fontdisplaystate
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/asciicolumncounter
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/columncounter
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/pagecounter
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_font/pixeloffset
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/pixeldata
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/a0
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/cleardisplay
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/lcdsend
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/lcdbusy
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/i_font/lcddata
add wave -noupdate -divider Initialization
add wave -noupdate /lcddemo_tb/i_dut/i_lcd/i_init/cleardisplay
add wave -noupdate /lcddemo_tb/i_dut/i_lcd/i_init/initsequencedone
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_init/initsequencecounter
add wave -noupdate /lcddemo_tb/i_dut/i_lcd/i_init/clearsequencedone
add wave -noupdate -radix unsigned /lcddemo_tb/i_dut/i_lcd/i_init/clearsequencecounter
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/lcdsend
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/lcdbusy
add wave -noupdate -radix hexadecimal /lcddemo_tb/i_dut/i_lcd/lcddata
add wave -noupdate -divider LCD
add wave -noupdate /lcddemo_tb/rst_n
add wave -noupdate /lcddemo_tb/a0
add wave -noupdate /lcddemo_tb/cs1_n
add wave -noupdate /lcddemo_tb/scl
add wave -noupdate /lcddemo_tb/si
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {0 ps} 0}
configure wave -namecolwidth 350
configure wave -valuecolwidth 58
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits us
update
WaveRestoreZoom {0 ps} {31265344 ps}

View File

@ -0,0 +1,128 @@
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
111000111011000000010000000000001110001111100011
000000000000000000000000000000000000000000000000
000000000000000001001111000000000000000000000000
000000000000011100000000000001110000000000000000
000101000111111100010100011111110001010000000000
001001000010101001111111001010100001001000000000
001000110001001100001000011001000110001000000000
001101100100100101010101001000100101000000000000
000000000000010100000011000000000000000000000000
000000000001110000100010010000010000000000000000
000000000100000100100010000111000000000000000000
000101000000100000111110000010000001010000000000
000010000000100000111110000010000000100000000000
000000000101000000110000000000000000000000000000
000010000000100000001000000010000000100000000000
000000000110000001100000000000000000000000000000
001000000001000000001000000001000000001000000000
001111100101000101001001010001010011111000000000
000000000100001001111111010000000000000000000000
010000100110000101010001010010010100011000000000
001000010100000101000101010010110011000100000000
000110000001010000010010011111110001000000000000
001001110100010101000101010001010011100100000000
001111000100101001001001010010010011000000000000
000000010111000100001001000001010000001100000000
001101100100100101001001010010010011011000000000
000001100100100101001001001010010001111000000000
000000000011011000110110000000000000000000000000
000000000101011000110110000000000000000000000000
000010000001010000100010010000010000000000000000
000101000001010000010100000101000001010000000000
000000000100000100100010000101000000100000000000
000000100000000101010001000010010000011000000000
001100100100100101111001010000010011111000000000
011111100001000100010001000100010111111000000000
011111110100100101001001010010010011011000000000
001111100100000101000001010000010010001000000000
011111110100000101000001001000100001110000000000
011111110100100101001001010010010100000100000000
011111110000100100001001000010010000000100000000
001111100100000101001001010010010111101000000000
011111110000100000001000000010000111111100000000
000000000100000101111111010000010000000000000000
001000000100000001000001001111110000000100000000
011111110000100000010100001000100100000100000000
011111110100000001000000010000000100000000000000
011111110000001000001100000000100111111100000000
011111110000010000001000000100000111111100000000
001111100100000101000001010000010011111000000000
011111110000100100001001000010010000011000000000
001111100100000101010001001000010101111000000000
011111110000100100011001001010010100011000000000
010001100100100101001001010010010011000100000000
000000010000000101111111000000010000000100000000
001111110100000001000000010000000011111100000000
000111110010000001000000001000000001111100000000
001111110100000000111000010000000011111100000000
011000110001010000001000000101000110001100000000
000001110000100001110000000010000000011100000000
011000010101000101001001010001010100001100000000
000000000111111101000001010000010000000000000000
000101010001011001111100000101100001010100000000
000000000100000101000001011111110000000000000000
000001000000001000000001000000100000010000000000
010000000100000001000000010000000100000000000000
000000000000000100000010000001000000000000000000
001000000101010001010100010101000111100000000000
011111110100100001000100010001000011100000000000
001110000100010001000100010001000010000000000000
001110000100010001000100010010000111111100000000
001110000101010001010100010101000001100000000000
000010000111111000001001000000010000001000000000
000011000101001001010010010100100011111000000000
011111110000100000000100000001000111100000000000
000000000100010001111101010000000000000000000000
001000000100000001000100001111010000000000000000
011111110001000000101000010001000000000000000000
000000000100000101111111010000000000000000000000
011111000000010000011000000001000111100000000000
011111000000100000000100000001000111100000000000
001110000100010001000100010001000011100000000000
011111000001010000010100000101000000100000000000
000010000001010000010100000110000111110000000000
011111000000100000000100000001000000100000000000
010010000101010001010100010101000010000000000000
000001000011111101000100010000000010000000000000
001111000100000001000000001000000111110000000000
000111000010000001000000001000000001110000000000
001111000100000000110000010000000011110000000000
010001000010100000010000001010000100010000000000
000011000101000001010000010100000011110000000000
010001000110010001010100010011000100010000000000
000000000000100000110110010000010000000000000000
000000000000000001111111000000000000000000000000
000000000100000100110110000010000000000000000000
000010000000100000101010000111000000100000000000
000010000001110000101010000010000000100000000000

View File

@ -0,0 +1,43 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -expand -group {Reset and clock} /lcddemo_tb/reset
add wave -noupdate -expand -group {Reset and clock} /lcddemo_tb/clock
add wave -noupdate -group {Buttons and LEDs} -radix hexadecimal -childformat {{/lcddemo_tb/buttons(1) -radix hexadecimal} {/lcddemo_tb/buttons(2) -radix hexadecimal} {/lcddemo_tb/buttons(3) -radix hexadecimal} {/lcddemo_tb/buttons(4) -radix hexadecimal}} -expand -subitemconfig {/lcddemo_tb/buttons(1) {-height 16 -radix hexadecimal} /lcddemo_tb/buttons(2) {-height 16 -radix hexadecimal} /lcddemo_tb/buttons(3) {-height 16 -radix hexadecimal} /lcddemo_tb/buttons(4) {-height 16 -radix hexadecimal}} /lcddemo_tb/buttons
add wave -noupdate -group {Buttons and LEDs} -radix hexadecimal -childformat {{/lcddemo_tb/leds(1) -radix hexadecimal} {/lcddemo_tb/leds(2) -radix hexadecimal} {/lcddemo_tb/leds(3) -radix hexadecimal} {/lcddemo_tb/leds(4) -radix hexadecimal} {/lcddemo_tb/leds(5) -radix hexadecimal} {/lcddemo_tb/leds(6) -radix hexadecimal} {/lcddemo_tb/leds(7) -radix hexadecimal} {/lcddemo_tb/leds(8) -radix hexadecimal}} -expand -subitemconfig {/lcddemo_tb/leds(1) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(2) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(3) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(4) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(5) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(6) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(7) {-height 16 -radix hexadecimal} /lcddemo_tb/leds(8) {-height 16 -radix hexadecimal}} /lcddemo_tb/leds
add wave -noupdate -expand -group {Hello message} /lcddemo_tb/I_dut/I_hello/buttonRising
add wave -noupdate -expand -group {Hello message} -radix unsigned -radixshowbase 0 /lcddemo_tb/I_dut/I_hello/sequenceCounter
add wave -noupdate -expand -group {Hello message} /lcddemo_tb/I_dut/I_hello/sequenceDone
add wave -noupdate -expand -group {Hello message} /lcddemo_tb/I_dut/helloSend
add wave -noupdate -expand -group {Hello message} -radix hexadecimal -radixshowbase 0 /lcddemo_tb/I_dut/helloData
add wave -noupdate -expand -group {Hello message} -radix ascii -radixshowbase 0 /lcddemo_tb/I_dut/helloData
add wave -noupdate -expand -group {Hello message} /lcddemo_tb/I_dut/helloBusy
add wave -noupdate -expand -group UART /lcddemo_tb/I_tester/rs232OutByte
add wave -noupdate -expand -group UART /lcddemo_tb/I_tester/rs232SendOutByte
add wave -noupdate -expand -group UART /lcddemo_tb/I_dut/RxD
add wave -noupdate -group {LCD controller interface} -radix hexadecimal -radixshowbase 0 /lcddemo_tb/I_dut/ascii
add wave -noupdate -group {LCD controller interface} -radix ascii -radixshowbase 0 /lcddemo_tb/I_dut/ascii
add wave -noupdate -group {LCD controller interface} -radix hexadecimal /lcddemo_tb/I_dut/send
add wave -noupdate -group {LCD controller interface} -radix hexadecimal /lcddemo_tb/I_dut/busy
add wave -noupdate -expand -group {LCD interface} /lcddemo_tb/RST_n
add wave -noupdate -expand -group {LCD interface} /lcddemo_tb/A0
add wave -noupdate -expand -group {LCD interface} /lcddemo_tb/CS1_n
add wave -noupdate -expand -group {LCD interface} /lcddemo_tb/SCL
add wave -noupdate -expand -group {LCD interface} /lcddemo_tb/SI
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {0 ps} 0}
quietly wave cursor active 1
configure wave -namecolwidth 350
configure wave -valuecolwidth 58
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits us
update
WaveRestoreZoom {0 ps} {2527664378 ps}

BIN
Libs/Lcd_test/st7565r.pdf Normal file

Binary file not shown.