mirror of
https://github.com/Klagarge/Cursor.git
synced 2025-06-26 04:12:31 +00:00
Initial commit
This commit is contained in:
188
Libs/Lcd_test/LCD_explanation.txt
Normal file
188
Libs/Lcd_test/LCD_explanation.txt
Normal 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
|
BIN
Libs/Lcd_test/dogm132-5e.pdf
Normal file
BIN
Libs/Lcd_test/dogm132-5e.pdf
Normal file
Binary file not shown.
47
Libs/Lcd_test/hdl/lcdController_tester_test.vhd
Normal file
47
Libs/Lcd_test/hdl/lcdController_tester_test.vhd
Normal 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;
|
111
Libs/Lcd_test/hdl/lcdDemo_tester_test.vhd
Normal file
111
Libs/Lcd_test/hdl/lcdDemo_tester_test.vhd
Normal 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;
|
69
Libs/Lcd_test/hdl/lcdSerializer_tester_test.vhd
Normal file
69
Libs/Lcd_test/hdl/lcdSerializer_tester_test.vhd
Normal 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;
|
@ -0,0 +1,4 @@
|
||||
INCLUDE list {
|
||||
DEFAULT atom 1
|
||||
}
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1 @@
|
||||
DIALECT atom VHDL_2008
|
@ -0,0 +1,4 @@
|
||||
INCLUDE list {
|
||||
DEFAULT atom 1
|
||||
}
|
||||
DIALECT atom VHDL_2008
|
@ -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
|
3
Libs/Lcd_test/hds/_lcdcontroller_tb._epf
Normal file
3
Libs/Lcd_test/hds/_lcdcontroller_tb._epf
Normal file
@ -0,0 +1,3 @@
|
||||
DEFAULT_FILE atom lcd@controller_tb/struct.bd
|
||||
DEFAULT_ARCHITECTURE atom struct
|
||||
TOP_MARKER atom 1
|
2
Libs/Lcd_test/hds/_lcdcontroller_tester._epf
Normal file
2
Libs/Lcd_test/hds/_lcdcontroller_tester._epf
Normal file
@ -0,0 +1,2 @@
|
||||
DEFAULT_ARCHITECTURE atom test
|
||||
DEFAULT_FILE atom lcdController_tester_test.vhd
|
3
Libs/Lcd_test/hds/_lcddemo_tb._epf
Normal file
3
Libs/Lcd_test/hds/_lcddemo_tb._epf
Normal file
@ -0,0 +1,3 @@
|
||||
DEFAULT_FILE atom lcd@demo_tb/struct.bd
|
||||
DEFAULT_ARCHITECTURE atom struct
|
||||
TOP_MARKER atom 1
|
2
Libs/Lcd_test/hds/_lcddemo_tester._epf
Normal file
2
Libs/Lcd_test/hds/_lcddemo_tester._epf
Normal file
@ -0,0 +1,2 @@
|
||||
DEFAULT_FILE atom lcdDemo_tester_test.vhd
|
||||
DEFAULT_ARCHITECTURE atom test
|
3
Libs/Lcd_test/hds/_lcdserializer_tb._epf
Normal file
3
Libs/Lcd_test/hds/_lcdserializer_tb._epf
Normal file
@ -0,0 +1,3 @@
|
||||
DEFAULT_FILE atom lcd@serializer_tb/struct.bd
|
||||
DEFAULT_ARCHITECTURE atom struct
|
||||
TOP_MARKER atom 0
|
2
Libs/Lcd_test/hds/_lcdserializer_tester._epf
Normal file
2
Libs/Lcd_test/hds/_lcdserializer_tester._epf
Normal file
@ -0,0 +1,2 @@
|
||||
DEFAULT_ARCHITECTURE atom test
|
||||
DEFAULT_FILE atom lcdSerializer_tester_test.vhd
|
3437
Libs/Lcd_test/hds/lcd@controller_tb/struct.bd
Normal file
3437
Libs/Lcd_test/hds/lcd@controller_tb/struct.bd
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
1297
Libs/Lcd_test/hds/lcd@controller_tb/symbol.sb
Normal file
1297
Libs/Lcd_test/hds/lcd@controller_tb/symbol.sb
Normal file
File diff suppressed because it is too large
Load Diff
1661
Libs/Lcd_test/hds/lcd@controller_tester/interface
Normal file
1661
Libs/Lcd_test/hds/lcd@controller_tester/interface
Normal file
File diff suppressed because it is too large
Load Diff
3526
Libs/Lcd_test/hds/lcd@demo_tb/struct.bd
Normal file
3526
Libs/Lcd_test/hds/lcd@demo_tb/struct.bd
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
1297
Libs/Lcd_test/hds/lcd@demo_tb/symbol.sb
Normal file
1297
Libs/Lcd_test/hds/lcd@demo_tb/symbol.sb
Normal file
File diff suppressed because it is too large
Load Diff
1702
Libs/Lcd_test/hds/lcd@demo_tester/interface
Normal file
1702
Libs/Lcd_test/hds/lcd@demo_tester/interface
Normal file
File diff suppressed because it is too large
Load Diff
3436
Libs/Lcd_test/hds/lcd@serializer_tb/struct.bd
Normal file
3436
Libs/Lcd_test/hds/lcd@serializer_tb/struct.bd
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
1297
Libs/Lcd_test/hds/lcd@serializer_tb/symbol.sb
Normal file
1297
Libs/Lcd_test/hds/lcd@serializer_tb/symbol.sb
Normal file
File diff suppressed because it is too large
Load Diff
1657
Libs/Lcd_test/hds/lcd@serializer_tester/interface
Normal file
1657
Libs/Lcd_test/hds/lcd@serializer_tester/interface
Normal file
File diff suppressed because it is too large
Load Diff
45
Libs/Lcd_test/sim/lcdController.do
Normal file
45
Libs/Lcd_test/sim/lcdController.do
Normal file
File diff suppressed because one or more lines are too long
71
Libs/Lcd_test/sim/lcdDemo.do
Normal file
71
Libs/Lcd_test/sim/lcdDemo.do
Normal 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}
|
128
Libs/Lcd_test/sim/lcdFont.txt
Normal file
128
Libs/Lcd_test/sim/lcdFont.txt
Normal 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
|
43
Libs/Lcd_test/sim/lcdSerializer.do
Normal file
43
Libs/Lcd_test/sim/lcdSerializer.do
Normal 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
BIN
Libs/Lcd_test/st7565r.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user