Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CTU CAN FD IP Core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
16
Issues
16
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
canbus
CTU CAN FD IP Core
Commits
70e30da2
Commit
70e30da2
authored
Jan 19, 2019
by
Ille, Ondrej, Ing.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test: Replace report with Vunit logger functions
parent
da253ce5
Pipeline
#5965
passed with stages
in 11 minutes and 59 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
169 additions
and
209 deletions
+169
-209
test/feature/arbitration_feature_tb.vhd
test/feature/arbitration_feature_tb.vhd
+4
-4
test/lib/CANtestLib.vhd
test/lib/CANtestLib.vhd
+159
-199
test/reference/tb_reference.vhd
test/reference/tb_reference.vhd
+2
-2
test/sanity/sanity_test.vhd
test/sanity/sanity_test.vhd
+2
-2
test/unit/Protocol_Control/Protocol_Control_tb.vhd
test/unit/Protocol_Control/Protocol_Control_tb.vhd
+2
-2
No files found.
test/feature/arbitration_feature_tb.vhd
View file @
70e30da2
...
...
@@ -308,9 +308,9 @@ package body Arbitration_feature is
-- Print Frame info
------------------------------------------------------------------------
info
(
"Frame 1:"
);
CAN_print_frame
(
frame_1
,
info_l
);
CAN_print_frame
(
frame_1
);
info
(
"Frame 2:"
);
CAN_print_frame
(
frame_2
,
info_l
);
CAN_print_frame
(
frame_2
);
------------------------------------------------------------------------
-- Check whether expected winner is the unit which lost the arbitration
...
...
@@ -343,9 +343,9 @@ package body Arbitration_feature is
-- Print Frame info
------------------------------------------------------------------------
info
(
"Frame 1:"
);
CAN_print_frame
(
frame_1
,
info_l
);
CAN_print_frame
(
frame_1
);
info
(
"Frame 2:"
);
CAN_print_frame
(
frame_2
,
info_l
);
CAN_print_frame
(
frame_2
);
------------------------------------------------------------------------
-- If error frame is transmitted and collision not have appeared
...
...
test/lib/CANtestLib.vhd
View file @
70e30da2
...
...
@@ -571,6 +571,37 @@ package CANtestLib is
);
----------------------------------------------------------------------------
-- Set highest loglevel that should be shown.
-- Log levels are connected to CAN_test as input signals and driven by
-- VUnit from configuration.
--
-- Log levels are bound to Vunit Logging library:
-- info_l - All logs are shown
-- warning_l - warning(), error(), failure() are shown
-- error_l - error(), failure() are shown
--
-- Default VUnit logger is used.
--
-- Arguments:
-- log_level Severity level which is set in current test.
----------------------------------------------------------------------------
procedure
set_log_level
(
constant
log_level
:
in
log_lvl_type
);
---------------------------------------------------------------------------
-- Configure error behaviour (Quit / Go On) of Vunit.
--
-- Arguments:
-- log_level Severity level which is set in current test.
----------------------------------------------------------------------------
procedure
set_error_beh
(
constant
error_beh
:
in
err_beh_type
);
----------------------------------------------------------------------------
-- Generates clock signal for the test with custom period, duty cycle and
-- clock jitter.
...
...
@@ -640,22 +671,6 @@ package CANtestLib is
)
return
generate_clock_precomputed_t
;
----------------------------------------------------------------------------
-- Reports message when severity level is lower or equal than severity
-- of message.
--
-- Arguments:
-- message String to be reported.
-- log_severity Severity level which is set in current test.
-- log_level Severity of message
----------------------------------------------------------------------------
procedure
log
(
constant
message
:
in
String
;
constant
log_severity
:
in
log_lvl_type
;
constant
log_level
:
in
log_lvl_type
);
----------------------------------------------------------------------------
-- Asserts reset signal to restart the operated circuit. Then waits until
-- run condition signal becomes "true" and sets test status to "running" and
...
...
@@ -727,7 +742,7 @@ package CANtestLib is
-- variation of above, only returns the seed value
function
apply_rand_seed
(
impure
function
apply_rand_seed
(
constant
seed
:
in
natural
;
constant
offset
:
in
natural
)
return
natural
;
...
...
@@ -1159,8 +1174,7 @@ package CANtestLib is
-- severity Severity level that should be used to print the frame.
----------------------------------------------------------------------------
procedure
CAN_print_frame
(
constant
frame
:
in
SW_CAN_frame_type
;
constant
log_level
:
in
log_lvl_type
constant
frame
:
in
SW_CAN_frame_type
);
...
...
@@ -1712,7 +1726,7 @@ package CANtestLib is
function
str_equal
(
a
:
string
;
b
:
string
)
return
boolean
;
-- Pad string with spaces.
function
strtolen
(
n
:
natural
;
src
:
string
)
return
string
;
impure
function
strtolen
(
n
:
natural
;
src
:
string
)
return
string
;
----------------------------------------------------------------------------
...
...
@@ -1836,20 +1850,16 @@ package body CANtestLib is
-- Evaluate the test result
if
(
errors
<
error_th
or
errors
=
error_th
)
then
status
<=
passed
;
report
"Test result: SUCCESS"
severity
note
;
info
(
"Test result: SUCCES"
)
;
wait
for
200
ns
;
--std.env.stop(0);
else
status
<=
failed
;
report
"Test result: FAILURE"
severity
error
;
error
(
"Test result: FAILURE"
)
;
wait
for
200
ns
;
--std.env.stop(1);
end
if
;
-- Finish the test
--wait for 200 ns;
--report "Test END" severity failure;
end
procedure
;
...
...
@@ -1948,46 +1958,6 @@ package body CANtestLib is
end
function
;
procedure
log
(
constant
Message
:
in
String
;
constant
log_severity
:
in
log_lvl_type
;
constant
log_level
:
in
log_lvl_type
)
is
begin
if
(
log_level
=
info_l
)
then
if
(
log_severity
=
info_l
)
then
report
Message
severity
NOTE
;
elsif
(
log_severity
=
warning_l
)
then
report
Message
severity
WARNING
;
elsif
(
log_severity
=
error_l
)
then
report
Message
severity
ERROR
;
else
report
"Unsupported log severity type in 'log' function"
severity
failure
;
end
if
;
elsif
(
log_level
=
warning_l
)
then
if
(
log_severity
=
warning_l
)
then
report
Message
severity
WARNING
;
elsif
(
log_severity
=
error_l
)
then
report
Message
severity
ERROR
;
end
if
;
elsif
(
log_level
=
error_l
)
then
if
(
log_severity
=
error_l
)
then
report
Message
severity
ERROR
;
end
if
;
else
report
"Unsupported severity type in 'log' function"
severity
failure
;
end
if
;
end
procedure
;
procedure
reset_test
(
signal
res_n
:
out
std_logic
;
signal
status
:
out
test_status_type
;
...
...
@@ -2028,6 +1998,41 @@ package body CANtestLib is
wait
for
0
ns
;
end
procedure
;
procedure
set_log_level
(
constant
log_level
:
in
log_lvl_type
)
is
begin
case
log_level
is
when
error_l
=>
show_all
(
display_handler
);
hide
(
display_handler
,
debug
);
hide
(
display_handler
,
info
);
hide
(
display_handler
,
warning
);
when
warning_l
=>
show_all
(
display_handler
);
hide
(
display_handler
,
debug
);
hide
(
display_handler
,
info
);
when
info_l
=>
show_all
(
display_handler
);
--hide(logger, display_handler, debug);
when
others
=>
failure
(
"Unknwon log level."
);
end
case
;
end
procedure
;
procedure
set_error_beh
(
constant
error_beh
:
in
err_beh_type
)
is
begin
if
(
error_beh
=
quit
)
then
set_stop_level
(
error
);
else
set_stop_level
(
failure
);
end
if
;
end
procedure
;
procedure
print_test_info
(
...
...
@@ -2037,35 +2042,37 @@ package body CANtestLib is
constant
error_tol
:
in
natural
)
is
begin
report
"Test info:"
;
report
"Number of iterations: "
&
integer
'image
(
iterations
);
info
(
"Test info:"
)
;
info
(
"Number of iterations: "
&
integer
'image
(
iterations
)
);
if
(
log_level
=
info_l
)
then
report
"Log level: INFO,WARNING,ERROR logs are shown!"
;
info
(
"Log level: INFO,WARNING,ERROR logs are shown!"
)
;
elsif
(
log_level
=
warning_l
)
then
report
"Log level: WARNING,ERROR logs are shown!"
;
info
(
"Log level: WARNING,ERROR logs are shown!"
)
;
else
report
"Log level: ERROR logs are shown!"
;
info
(
"Log level: ERROR logs are shown!"
)
;
end
if
;
set_log_level
(
log_level
);
if
(
error_beh
=
go_on
)
then
report
"When error is detected test runs on"
;
info
(
"When error is detected test runs on"
)
;
else
report
"When error is detected test quits"
;
info
(
"When error is detected test quits"
)
;
end
if
;
set_error_beh
(
error_beh
);
report
"Error tolerance: "
&
integer
'image
(
error_tol
);
info
(
"Error tolerance: "
&
integer
'image
(
error_tol
)
);
end
;
function
apply_rand_seed
(
impure
function
apply_rand_seed
(
constant
seed
:
in
natural
;
constant
offset
:
in
natural
)
return
natural
is
variable
tmp
:
natural
;
begin
tmp
:
=
seed
+
offset
;
report
"Random initialized with seed "
&
natural
'image
(
seed
);
info
(
"Random initialized with seed "
&
natural
'image
(
seed
)
);
return
tmp
mod
RAND_POOL_SIZE
;
end
function
;
...
...
@@ -2104,7 +2111,7 @@ package body CANtestLib is
when
48
=>
dlc
:
=
"1110"
;
when
64
=>
dlc
:
=
"1111"
;
when
others
=>
report
"Invalid data length"
severity
error
;
error
(
"Invalid data length"
)
;
dlc
:
=
"0000"
;
end
case
;
end
procedure
;
...
...
@@ -2220,10 +2227,8 @@ package body CANtestLib is
variable
id_vect
:
std_logic_vector
(
28
downto
0
);
begin
if
(
id_type
=
EXTENDED
)
then
if
(
id_in
>
536870911
)
then
report
"Extended Identifier Exceeds the maximal value!"
severity
error
;
end
if
;
check
(
id_in
<
536870912
,
"Extended Identifier Exceeds the maximal value!"
);
id_vect
:
=
std_logic_vector
(
to_unsigned
(
id_in
,
29
));
id_out
(
IDENTIFIER_BASE_H
downto
IDENTIFIER_BASE_L
)
:
=
...
...
@@ -2231,10 +2236,8 @@ package body CANtestLib is
id_out
(
IDENTIFIER_EXT_H
downto
IDENTIFIER_EXT_L
)
:
=
id_vect
(
17
downto
0
);
else
if
(
id_in
>
2047
)
then
report
"Base Identifier Exceeds the maximal value!"
severity
error
;
end
if
;
check
(
id_in
<
2048
,
"Base Identifier Exceeds the maximal value!"
);
id_vect
:
=
"000000000000000000"
&
std_logic_vector
(
to_unsigned
(
id_in
,
11
));
id_out
(
IDENTIFIER_BASE_H
downto
IDENTIFIER_BASE_L
)
:
=
...
...
@@ -2370,16 +2373,12 @@ package body CANtestLib is
constant
w_size
:
in
aval_access_size
;
signal
mem_bus
:
inout
Avalon_mem_type
)
is
variable
msg
:
line
;
begin
-- Check for access alignment
if
(
not
aval_is_aligned
(
w_address
,
w_size
))
then
write
(
msg
,
string
'
(
"Unaligned Avalon write, Adress :"
));
hwrite
(
msg
,
w_address
);
write
(
msg
,
string
'
(
" Size: "
));
write
(
msg
,
aval_access_size
'image
(
w_size
));
writeline
(
output
,
msg
);
warning
(
"Unaligned Avalon write, Adress :"
&
to_hstring
(
w_address
)
&
" Size: "
&
aval_access_size
'image
(
w_size
));
else
wait
until
falling_edge
(
mem_bus
.
clk_sys
);
mem_bus
.
scs
<=
'1'
;
...
...
@@ -2412,11 +2411,8 @@ package body CANtestLib is
-- Check for access alignment
if
(
not
aval_is_aligned
(
r_address
,
r_size
))
then
write
(
msg
,
string
'
(
"Unaligned Avalon Read, Adress :"
));
hwrite
(
msg
,
r_address
);
write
(
msg
,
string
'
(
" Size: "
));
write
(
msg
,
aval_access_size
'image
(
r_size
));
writeline
(
output
,
msg
);
warning
(
"Unaligned Avalon Read, Adress :"
&
to_hstring
(
r_address
)
&
" Size: "
&
aval_access_size
'image
(
r_size
));
else
wait
until
falling_edge
(
mem_bus
.
clk_sys
);
mem_bus
.
scs
<=
'1'
;
...
...
@@ -2437,25 +2433,23 @@ package body CANtestLib is
end
procedure
;
function
aval_is_invalid_burst_size
(
impure
function
aval_is_invalid_burst_size
(
constant
data_length
:
natural
)
return
boolean
is
begin
if
((
data_length
mod
4
)
=
0
)
then
return
false
;
report
"Invalid Avalon Burst size: "
warning
(
"Invalid Avalon Burst size: "
&
integer
'image
(
data_length
)
&
" Burst size should be 32 bit aligned!"
severity
warning
;
" Burst size should be 32 bit aligned!"
);
return
false
;
end
if
;
if
((
data_length
/
4
)
>
64
)
then
report
"Invalid Avalon Burst size: "
warning
(
"Invalid Avalon Burst size: "
&
integer
'image
(
data_length
)
&
" Burst size should not be larger than 64 words! "
&
" (Vector of 64 * 32 = 2048 bits)"
severity
warning
;
" Burst size should not be larger than 64 words! "
&
" (Vector of 64 * 32 = 2048 bits)"
);
return
false
;
end
if
;
...
...
@@ -2475,9 +2469,8 @@ package body CANtestLib is
variable
msg
:
line
;
begin
if
(
not
aval_is_aligned
(
w_address
,
BIT_32
))
then
write
(
msg
,
string
'
(
"Unaligned Avalon Write Burst, Adress:"
));
hwrite
(
msg
,
w_address
);
writeline
(
output
,
msg
);
warning
(
"Unaligned Avalon Write Burst, Adress:"
&
to_hstring
(
w_address
));
return
;
end
if
;
...
...
@@ -2529,9 +2522,8 @@ package body CANtestLib is
variable
msg
:
line
;
begin
if
(
not
aval_is_aligned
(
r_address
,
BIT_32
))
then
write
(
msg
,
string
'
(
"Unaligned Avalon Read Burst, Adress:"
));
hwrite
(
msg
,
r_address
);
writeline
(
output
,
msg
);
warning
(
"Unaligned Avalon Read Burst, Adress:"
&
to_hstring
(
r_address
));
return
;
end
if
;
...
...
@@ -2719,57 +2711,37 @@ package body CANtestLib is
)
is
variable
msg
:
line
;
begin
write
(
msg
,
string
'
(
"Nominal Bit timing: "
));
-- Baud Rate Prescaler
write
(
msg
,
string
'
(
"BRP: "
&
integer
'image
(
bus_timing
.
tq_nbt
)
&
" "
));
-- Propagation segment
write
(
msg
,
string
'
(
"PROP: "
&
integer
'image
(
bus_timing
.
prop_nbt
)
&
" "
));
-- Phase 1 segment
write
(
msg
,
string
'
(
"PH1: "
&
integer
'image
(
bus_timing
.
ph1_nbt
)
&
" "
));
-- Phase 2 segment
write
(
msg
,
string
'
(
"PH2: "
&
integer
'image
(
bus_timing
.
ph2_nbt
)
&
" "
));
-- SJW
write
(
msg
,
string
'
(
"SJW: "
&
integer
'image
(
bus_timing
.
sjw_nbt
)
&
" "
));
write
(
msg
,
string
'
(
"Data Bit timing: "
));
-- Baud Rate Prescaler - FD
write
(
msg
,
string
'
(
"BRP: "
&
integer
'image
(
bus_timing
.
tq_dbt
)
&
" "
));
-- Propagation segment - FD
write
(
msg
,
string
'
(
"PROP: "
&
integer
'image
(
bus_timing
.
prop_dbt
)
&
" "
));
-- Phase 1 segment - FD
write
(
msg
,
string
'
(
"PH1: "
&
integer
'image
(
bus_timing
.
ph1_dbt
)
&
" "
));
-- Phase 2 segment - FD
write
(
msg
,
string
'
(
"PH2: "
&
integer
'image
(
bus_timing
.
ph2_dbt
)
&
" "
));
-- SJW - FD
write
(
msg
,
string
'
(
"SJW: "
&
integer
'image
(
bus_timing
.
sjw_dbt
)
&
" "
));
writeline
(
output
,
msg
);
info
(
"Nominal Bit timing: "
&
"BRP: "
&
integer
'image
(
bus_timing
.
tq_nbt
)
&
" "
&
"PROP: "
&
integer
'image
(
bus_timing
.
prop_nbt
)
&
" "
&
"PH1: "
&
integer
'image
(
bus_timing
.
ph1_nbt
)
&
" "
&
"PH2: "
&
integer
'image
(
bus_timing
.
ph2_nbt
)
&
" "
&
"SJW: "
&
integer
'image
(
bus_timing
.
sjw_nbt
));
info
(
"Data Bit timing: "
&
"BRP: "
&
integer
'image
(
bus_timing
.
tq_dbt
)
&
"PROP: "
&
integer
'image
(
bus_timing
.
prop_dbt
)
&
"PH1: "
&
integer
'image
(
bus_timing
.
ph1_dbt
)
&
"PH2: "
&
integer
'image
(
bus_timing
.
ph2_dbt
)
&
"SJW: "
&
integer
'image
(
bus_timing
.
sjw_dbt
));
end
procedure
;
procedure
CAN_print_bus_matrix
(
constant
bus_matrix
:
in
bus_matrix_type
)
is
variable
msg
:
line
;
variable
x
:
integer
;
variable
y
:
integer
;
begin
write
(
msg
,
string
'
(
"Bus matrix: "
));
writeline
(
output
,
msg
);
info
(
"Bus matrix: "
);
for
i
in
1
to
NODE_COUNT
loop
for
j
in
1
to
NODE_COUNT
loop
write
(
msg
,
string
'
(
real
'image
(
bus_matrix
(
i
,
j
))
&
" "
));
x
:
=
i
;
y
:
=
j
;
info
(
"Index: "
&
integer
'image
(
x
)
&
","
&
integer
'image
(
y
)
&
" Value: "
&
real
'image
(
bus_matrix
(
i
,
j
)));
end
loop
;
writeline
(
output
,
msg
);
end
loop
;
end
procedure
;
...
...
@@ -2847,8 +2819,7 @@ package body CANtestLib is
cfg
(
3
)
:
=
'0'
;
end
if
;
else
report
"Unsupported CAN frame type"
severity
error
;
error
(
"Unsupported CAN frame type"
);
end
if
;
end
procedure
;
...
...
@@ -2883,7 +2854,7 @@ package body CANtestLib is
value_offset
:
=
FILTER_C_VAL_ADR
;
ctrl_offset
:
=
FCNB_IND
;
else
report
"Unsupported mask filter!"
severity
error
;
error
(
"Unsupported mask filter!"
)
;
end
if
;
-- Configure filter mask
...
...
@@ -2923,8 +2894,7 @@ package body CANtestLib is
-- Check High threshold aint lower than Low threshold
if
(
config
.
ID_th_low
>
config
.
ID_th_high
)
then
report
"High threshold of Range filter Lower than Low threshold!"
severity
warning
;
warning
(
"High threshold of Range filter Lower than Low threshold!"
);
end
if
;
id_sw_to_hw
(
config
.
ID_th_high
,
config
.
ident_type
,
ident_hth_vect
);
...
...
@@ -3030,62 +3000,54 @@ package body CANtestLib is
procedure
CAN_print_frame
(
constant
frame
:
in
SW_CAN_frame_type
;
constant
log_level
:
in
log_lvl_type
constant
frame
:
in
SW_CAN_frame_type
)
is
variable
msg
:
line
;
variable
data_byte
:
std_logic_vector
(
7
downto
0
);
variable
str_msg
:
string
(
1
to
512
)
:
=
(
OTHERS
=>
' '
);
begin
write
(
msg
,
string
'
(
"CAN Frame:"
))
;
str_msg
(
1
to
10
)
:
=
"CAN Frame:"
;
-- Identifier
write
(
msg
,
string
'
(
" ID : 0x"
))
;
hwrite
(
msg
,
std_logic_vector
(
to_unsigned
(
frame
.
identifier
,
32
)),
RIGHT
,
8
);
str_msg
(
11
to
18
)
:
=
" ID : 0x"
;
str_msg
(
19
to
26
)
:
=
to_hstring
(
std_logic_vector
(
to_unsigned
(
frame
.
identifier
,
32
))
);
-- Metadata
write
(
msg
,
string
'
(
" DLC: "
));
hwrite
(
msg
,
frame
.
dlc
);
str_msg
(
27
to
35
)
:
=
" DLC: "
;
if
(
frame
.
rtr
=
RTR_FRAME
)
then
write
(
msg
,
string
'
(
" RTR Frame"
))
;
str_msg
(
36
to
48
)
:
=
" RTR Frame"
;
else
write
(
msg
,
string
'
(
" "
))
;
str_msg
(
36
to
48
)
:
=
" "
;
end
if
;
if
(
frame
.
ident_type
=
BASE
)
then
write
(
msg
,
string
'
(
" BASE identifier "
))
;
str_msg
(
49
to
71
)
:
=
" BASE identifier "
;
else
write
(
msg
,
string
'
(
" EXTENDED identifier"
))
;
str_msg
(
49
to
71
)
:
=
" EXTENDED identifier"
;
end
if
;
if
(
frame
.
frame_format
=
NORMAL_CAN
)
then
write
(
msg
,
string
'
(
" CAN 2.0 frame"
))
;
str_msg
(
72
to
88
)
:
=
" CAN 2.0 frame"
;
else
write
(
msg
,
string
'
(
" CAN FD frame "
))
;
str_msg
(
72
to
88
)
:
=
" CAN FD frame "
;
end
if
;
write
(
msg
,
string
'
(
" RWCNT (read word count): "
));
write
(
msg
,
Integer
'image
(
frame
.
rwcnt
));
str_msg
(
89
to
117
)
:
=
" RWCNT (read word count): "
;
str_msg
(
118
to
127
)
:
=
to_string
(
std_logic_vector
(
to_unsigned
(
frame
.
rwcnt
,
10
)));
-- Data words
if
(
frame
.
rtr
=
NO_RTR_FRAME
and
frame
.
data_length
>
0
)
then
write
(
msg
,
string
'
(
" Data: "
))
;
str_msg
(
128
to
137
)
:
=
" Data: "
;
for
i
in
0
to
frame
.
data_length
-
1
loop
data_byte
:
=
frame
.
data
(
i
);
write
(
msg
,
string
'
(
"0x"
));
hwrite
(
msg
,
frame
.
data
(
i
));
write
(
msg
,
string
'
(
" "
));
str_msg
(
138
+
i
*
5
to
142
+
i
*
5
)
:
=
"0x"
&
to_hstring
(
frame
.
data
(
i
))
&
" "
;
end
loop
;
end
if
;
writeline
(
output
,
msg
);
-- info_l,
-- warning_l,
-- error_l
info
(
str_msg
);
end
procedure
;
...
...
@@ -3177,12 +3139,12 @@ package body CANtestLib is
-- Identifier
if
(
frame
.
ident_type
=
BASE
and
frame
.
identifier
>
2047
)
then
report
"Incorrect BASE Identifier length"
severity
error
;
error
(
"Incorrect BASE Identifier length"
)
;
elsif
(
frame
.
ident_type
=
EXTENDED
and
frame
.
identifier
>
536870911
)
then
report
"Incorrect EXTENDED Identifier length"
severity
error
;
error
(
"Incorrect EXTENDED Identifier length"
)
;
end
if
;
ident_vect
:
=
std_logic_vector
(
to_unsigned
(
frame
.
identifier
,
29
));
...
...
@@ -3201,7 +3163,7 @@ package body CANtestLib is
memory
(
pointer
+
1
)(
IDENTIFIER_BASE_H
downto
IDENTIFIER_BASE_L
)
<=
ident_vect
(
28
downto
18
);
else
report
"Unsupported Identifier type"
severity
error
;
error
(
"Unsupported Identifier type"
)
;
end
if
;
-- Timestamp
...
...
@@ -3263,7 +3225,7 @@ package body CANtestLib is
memory
(
pointer
)
(
IDENTIFIER_EXT_H
downto
IDENTIFIER_EXT_L
);
else
report
"Unsupported Identifier type"
severity
error
;
error
(
"Unsupported Identifier type"
)
;
end
if
;
frame
.
identifier
:
=
to_integer
(
unsigned
(
aux_vect
));
...
...
@@ -3317,7 +3279,7 @@ package body CANtestLib is
when
3
=>
buf_offset
:
=
TXTB3_DATA_1_ADR
;
when
4
=>
buf_offset
:
=
TXTB4_DATA_1_ADR
;
when
others
=>
report
"Unsupported TX buffer number"
severity
error
;