CTU CAN FD IP Core issueshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues2018-04-05T10:48:23Zhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/65RX Buffer memory valid vector2018-04-05T10:48:23ZIlle, Ondrej, Ing.RX Buffer memory valid vectorRemove memory valid vector on RX Buffer. It is not neccessary and it will save some logic.
When the RX Buffer is empty (read_pointer = write_pointer) all zeroes should be returned on the output.Remove memory valid vector on RX Buffer. It is not neccessary and it will save some logic.
When the RX Buffer is empty (read_pointer = write_pointer) all zeroes should be returned on the output.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/64Version register2018-02-07T18:51:42ZIlle, Ondrej, Ing.Version registerAdd version register into the Core register map to distinguish between various versions of the CAN controller.
The most appropriate register for this would be uppest 16 bits of the DEVICE_ID registerAdd version register into the Core register map to distinguish between various versions of the CAN controller.
The most appropriate register for this would be uppest 16 bits of the DEVICE_ID registerSocket CAN release featuresIlle, Ondrej, Ing.Ille, Ondrej, Ing.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/63Identifier restructuring2018-04-05T10:48:23ZIlle, Ondrej, Ing.Identifier restructuringIt is more beneficial to swap the BASE and EXTENDED part of the identifier in the registers. BASE identifier should
be at the lowest bits while the EXTENDED should be at the highest bitsIt is more beneficial to swap the BASE and EXTENDED part of the identifier in the registers. BASE identifier should
be at the lowest bits while the EXTENDED should be at the highest bitsSocket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/58Interrupt register restructuring2018-04-05T10:48:23ZIlle, Ondrej, Ing.Interrupt register restructuringExtend the interrupt register according to discussions with doc. Pavel Píša. Probably the best will be to move it to separate memory location.Extend the interrupt register according to discussions with doc. Pavel Píša. Probably the best will be to move it to separate memory location.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/48Retransmitt limit to frame swapping accustomization2018-02-17T14:48:39ZIlle, Ondrej, Ing.Retransmitt limit to frame swapping accustomizationProvide additional signal from TX arbitrator which forces erasing of the retransmitt counter in ProtocolControl when another frame was selected due to occurence of frame swapp after error frame or arbitration lost.Provide additional signal from TX arbitrator which forces erasing of the retransmitt counter in ProtocolControl when another frame was selected due to occurence of frame swapp after error frame or arbitration lost.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/82Make canfd_registers fully duplex for AXI compatibility2018-05-02T19:36:14ZMartin JeřábekMake canfd_registers fully duplex for AXI compatibility`data_in` and `data_out` are already there, `srd` and `swr` too.
However, `address` and `sbe` are shared. In AXI-Lite they are separate for read and write, so they should be separate here too.
After that, (a modification of) can_ifc_axi...`data_in` and `data_out` are already there, `srd` and `swr` too.
However, `address` and `sbe` are shared. In AXI-Lite they are separate for read and write, so they should be separate here too.
After that, (a modification of) can_ifc_axi_duplex from sja1000-fdtol may be used to wrap this interface into AXI-Lite. It is a template generated from Vivado with modified parts, so similar procedure may be used (with different number of registers and in VHDL).Xilinx AXI wrapperMartin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/30Wrapper creation2018-04-24T16:56:49ZIlle, Ondrej, Ing.Wrapper creationAdd wrappers which would create different version of the core,
based on the Xilinx/AXI usage.Add wrappers which would create different version of the core,
based on the Xilinx/AXI usage.Xilinx AXI wrapperMartin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/29Xilinx AXI research2018-04-24T16:56:49ZIlle, Ondrej, Ing.Xilinx AXI researchPerform research on which Xilinx interface should be used.
AXI 4/ AXI-4 lite or AXI-Stream.Perform research on which Xilinx interface should be used.
AXI 4/ AXI-4 lite or AXI-Stream.Xilinx AXI wrapperMartin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/179Feature test clock tolerance2018-08-30T21:14:53ZIlle, Ondrej, Ing.Feature test clock toleranceAt the moment, both nodes of CTU CAN FD in Feature test environment are feeded with the
same clock tolerance:
`clk_gen_proc: clock_gen_proc(period => f100_Mhz, duty => 50, epsilon_ppm => 0, out_clk => p(i).clk_sys);`
This is not very g...At the moment, both nodes of CTU CAN FD in Feature test environment are feeded with the
same clock tolerance:
`clk_gen_proc: clock_gen_proc(period => f100_Mhz, duty => 50, epsilon_ppm => 0, out_clk => p(i).clk_sys);`
This is not very good, since both nodes will be totally synchronous, and thus errors due
to possible malfunction of resynchronisation might not be caught. At this point of design
two CTU CAN FD should fully work with asynchronous clocks (as in Sanity test).
This should be fixed and e.g. second node should have clock tolerance of 100 ppm. Even more beneficical
would be to calculate maximal clock tolerance from CTU CAN FD standard for Bit Timing settings of
Feature test.Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/173Bus Start Test2018-09-02T11:23:42ZIlle, Ondrej, Ing.Bus Start TestDuring documentation updated and Protocol Control review, it was discovered that after 11 recessive bits PC_Control switches
to "inteframe" state, intermission part. This might cause the fact that directly after this switch, SOF will be ...During documentation updated and Protocol Control review, it was discovered that after 11 recessive bits PC_Control switches
to "inteframe" state, intermission part. This might cause the fact that directly after this switch, SOF will be interpreted as Overload condition.
IMO interframe state should go directly to "intermission idle" state.
It might be good to examine this possible issue and add test in which one node will join active communication. This can be done in feature tests where only one frame will be sending frames with STM mode and other node will be Enabled when frame is
in progress!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/172Code coverage improvements2018-07-21T17:02:07ZIlle, Ondrej, Ing.Code coverage improvementsActual implementation of test logic is using standard "if" clause which is no very good since,
in case of error multiple lines are not executed and code coverage gets into red numbers.
The aim of this task is to use "assert" statement w...Actual implementation of test logic is using standard "if" clause which is no very good since,
in case of error multiple lines are not executed and code coverage gets into red numbers.
The aim of this task is to use "assert" statement where possible for implementation of tests.
This would cause (in case of feature tests) loss of generality since "o.outcome" can not be
asserted by assert statement! Possible solution for this problem might be rewriting the
tests to assume that test will fail by default and that when condition is satisfied, outcome
is set to desired value!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/169Message filter feature test2018-09-21T17:28:07ZIlle, Ondrej, Ing.Message filter feature testAdd feature test which will verify usage of each message filter (A,B,C and Range). Simple
implementation with 4 * 2 frames (one passing, one failing frame for each filter) in single
iteration.
Thisway, code coverage for Memory registers...Add feature test which will verify usage of each message filter (A,B,C and Range). Simple
implementation with 4 * 2 frames (one passing, one failing frame for each filter) in single
iteration.
Thisway, code coverage for Memory registers will improve + new mechanism of ANDed RX Buffer
commands will be verified.Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/167Data length code test2018-07-14T21:43:23ZIlle, Ondrej, Ing.Data length code testAdd feature test, which will generate CAN 2.0 Frames with DLC < 8 and verify that all 8 bytes
of Data are sent! Then generate CAN Frame with DLC > 8, send it, and verify that only 8 bytes
were sent and received!Add feature test, which will generate CAN 2.0 Frames with DLC < 8 and verify that all 8 bytes
of Data are sent! Then generate CAN Frame with DLC > 8, send it, and verify that only 8 bytes
were sent and received!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/166Suspend transmission feature test2018-09-03T17:59:28ZIlle, Ondrej, Ing.Suspend transmission feature testTest maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/156tx_arb_unit_test fails on 205th iteration2018-09-05T17:56:10ZMartin Jeřábektx_arb_unit_test fails on 205th iterationWhen TX arbitration unit test is run with high number of iterations, it eventually fails on "DUT and Model Frame valid not matching!".When TX arbitration unit test is run with high number of iterations, it eventually fails on "DUT and Model Frame valid not matching!".Test maintenanceIlle, Ondrej, Ing.Ille, Ondrej, Ing.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/154Extend basic unit test run2018-06-13T15:33:31ZIlle, Ondrej, Ing.Extend basic unit test runTest maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/149CAN Test randomization2018-06-09T11:38:22ZIlle, Ondrej, Ing.CAN Test randomizationAdd randomize input to
CAN Test entity (and possibly also to CAN Test wrapper).
During test initialization random index should be selected for each rand_ctr, if this input is true.
This will allow for automated runs of tests with diffe...Add randomize input to
CAN Test entity (and possibly also to CAN Test wrapper).
During test initialization random index should be selected for each rand_ctr, if this input is true.
This will allow for automated runs of tests with different data!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/148GHDL 2008 support2018-06-23T04:46:18ZIlle, Ondrej, Ing.GHDL 2008 supportCheck GHDL 2008 support for possible use with feature tests and internal signals.Check GHDL 2008 support for possible use with feature tests and internal signals.Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/147Timestamp options feature test2018-06-29T11:50:52ZIlle, Ondrej, Ing.Timestamp options feature testImplement feature test which will configure timestamp capturing from both, end and beginning of
frames and verify that timestamp is captured properly!Implement feature test which will configure timestamp capturing from both, end and beginning of
frames and verify that timestamp is captured properly!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/144Event logger unit test2018-06-06T13:04:20ZIlle, Ondrej, Ing.Event logger unit testFinish event logger unit test. Make sure that it covers expected functionality of
event logger. Debug event logger module if necessary.Finish event logger unit test. Make sure that it covers expected functionality of
event logger. Debug event logger module if necessary.Test maintenance