CTU CAN FD IP Core issueshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues2018-06-20T08:59:08Zhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/106Simple driver in userspace2018-06-20T08:59:08ZMartin JeřábekSimple driver in userspaceCreate a simple userspace app to access the IP, using the low-level driver.Create a simple userspace app to access the IP, using the low-level driver.Martin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/105Direct transmission of metadata from TXT Buffer2018-04-06T16:04:00ZIlle, Ondrej, Ing.Direct transmission of metadata from TXT BufferIn the actual implementation, the TX Arbitrator loads the metadata during two clock cycles into internal registers
and stores it to the output. At the start of Frame, CAN Core will lock the buffer, and tranBuffer will store metadata.
Si...In the actual implementation, the TX Arbitrator loads the metadata during two clock cycles into internal registers
and stores it to the output. At the start of Frame, CAN Core will lock the buffer, and tranBuffer will store metadata.
Since now, the whole TXT Buffer is implemented as single RAM memory. Data part of CAN Frame is already loaded from the
TXT Buffer via pointer. Metadata + Identifier are still stored in the internal TX Arbitrator registers, on TX arbitrator
outputs and also in tranBuffer.
The aim of this task is to:
1. Implement storing of metadata during SOF by access to TXT Buffer via pointer, instead of taking data from tranBuffer.
2. Implement loading of Identifier shift registers by access to TXT Buffer via pointer, instead of taking data from the registers.
3. If 1 an 2 are implemented, tranBuffer will be obsolete as well as loading Frame format word and identifier word by
TX Arbitrator (Timestamp still must be loaded though). This will simplify TX Arbitrator implementation and also save
some amount of logic!Wishlisthttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/104Test run from command line2018-06-08T14:18:12ZIlle, Ondrej, Ing.Test run from command lineCreate a simple script which would start Modelsim from Linux command line (e.g. in Python),
and run the CAN Test framework completely in command line.Create a simple script which would start Modelsim from Linux command line (e.g. in Python),
and run the CAN Test framework completely in command line.Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/103Identifier comparison in Testlib2018-06-06T13:04:20ZIlle, Ondrej, Ing.Identifier comparison in TestlibCAN Test library used in sanity tests is missing comparison of identifier decimal values!CAN Test library used in sanity tests is missing comparison of identifier decimal values!Test maintenancehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/102Transceiver delay2018-04-20T13:16:01ZIlle, Ondrej, Ing.Transceiver delayTransceiver delay measurement is available directly from the register that is used for measurement.
This means that if user reads the value during the measurement an intermediate value of measuring counter
will be returned. This should b...Transceiver delay measurement is available directly from the register that is used for measurement.
This means that if user reads the value during the measurement an intermediate value of measuring counter
will be returned. This should be fixed. Additional register should be added. This register will be updated once the transceiver delay measurement is finished! Thus it will never happend that user would read random value between
0 and ACTUAL_DELAY.Bug fixinghttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/101Add TXT Buffer protection2018-05-08T21:47:39ZIlle, Ondrej, Ing.Add TXT Buffer protectionIt might be beneficial to completely ignore any kind of acccess to TXT Buffers once the buffers are locked (in TX Ready or TX In progress)...It might be beneficial to completely ignore any kind of acccess to TXT Buffers once the buffers are locked (in TX Ready or TX In progress)...Bug fixinghttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/100Fix the DLC reception2018-07-10T10:49:27ZIlle, Ondrej, Ing.Fix the DLC receptionAccording to the CAN FD specification, if CAN Frame (not CAN FD Frame) is received with DLC of 8 or higher (1000,1001,1010 ...)
it should be interpreted only as 8 bytes !
The actual implementation alllows to accept CAN frame and interpt...According to the CAN FD specification, if CAN Frame (not CAN FD Frame) is received with DLC of 8 or higher (1000,1001,1010 ...)
it should be interpreted only as 8 bytes !
The actual implementation alllows to accept CAN frame and interptret the DLC in the same way as CAN FD Frames.Bug fixingIlle, Ondrej, Ing.Ille, Ondrej, Ing.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/99Event logger BRS bugfix2018-06-05T17:07:28ZIlle, Ondrej, Ing.Event logger BRS bugfixFix temporary logging of BRS event which is always logging bit-rate shift from NOMINAL to DATA.Fix temporary logging of BRS event which is always logging bit-rate shift from NOMINAL to DATA.Bug fixinghttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/98Logger separation2018-04-05T10:48:23ZIlle, Ondrej, Ing.Logger separationSeparate event logger into stand-alone memory location in IP-XACT to make room for Interrupt registers extension.Separate event logger into stand-alone memory location in IP-XACT to make room for Interrupt registers extension.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/97Add driver prefix2018-04-05T10:48:23ZIlle, Ondrej, Ing.Add driver prefixSocket CAN driver should have prefix generated in all constantsSocket CAN driver should have prefix generated in all constantsSocket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/96RX Buffer timestamp bug2018-02-22T15:26:24ZIlle, Ondrej, Ing.RX Buffer timestamp bugIn the actual logic of RX Buffer timestamp is stored in two consecutive clock cycles.
Image following situation:
Timestamp value :0x00000000FFFFFFFF, is reached at the same time as lower word is stored. 0xFFFFFFFF will be stored.
If the...In the actual logic of RX Buffer timestamp is stored in two consecutive clock cycles.
Image following situation:
Timestamp value :0x00000000FFFFFFFF, is reached at the same time as lower word is stored. 0xFFFFFFFF will be stored.
If the timestamp tick is 1 clock cycle, in the next clock cycle 0x0000000100000000 will the value of external timestamp-
Upper word 0x00000001 will be stored resulting in invalid timestamp of frame arrival: 0x00000001FFFFFFFF.
This should be fixed. The question is whether we can assume that timestamp will be always incremented by 1. In that case we can
monitor only the change in LSB of Upper word.Bug fixinghttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/95Extend sanity test with Interrupts2019-03-14T19:59:51ZIlle, Ondrej, Ing.Extend sanity test with InterruptsIn the actual implementation of sanity test, polling is used on the RX Buffer status and TXT Buffer status. This involves
repetitive execution of accesses with the same informations returned.
To optimize sanity test, interrupts must be ...In the actual implementation of sanity test, polling is used on the RX Buffer status and TXT Buffer status. This involves
repetitive execution of accesses with the same informations returned.
To optimize sanity test, interrupts must be used both on RX as well as TX side.Test improvementshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/94Generate VHDL files documentation2019-09-26T21:23:46ZIlle, Ondrej, Ing.Generate VHDL files documentationActual documentation in Chapter "System architecture" contains tables with inputs and outputs which are hard to maintain manually.
These tables will be moved to appendix.
Extend the IP-XACT generator, or create a separate VHDL code docu...Actual documentation in Chapter "System architecture" contains tables with inputs and outputs which are hard to maintain manually.
These tables will be moved to appendix.
Extend the IP-XACT generator, or create a separate VHDL code documentator, which will fetch all VHDL source code files and generate these
tables for us!
There are some obscure things however! Every file then must have equal format of description in the file header. Every signal in the port would need to have exact description format, which is little bit more problematic.Wishlisthttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/93System architecture Documentation update2018-03-12T14:35:16ZIlle, Ondrej, Ing.System architecture Documentation updateAfter finishing all the features necessary for the Socket CAN release (namely those which involve register map changes),
extend the "System architecture" Chapter with description of new architecture of TXT Buffers. Namely FSM of TXT Buff...After finishing all the features necessary for the Socket CAN release (namely those which involve register map changes),
extend the "System architecture" Chapter with description of new architecture of TXT Buffers. Namely FSM of TXT Buffer and
priority decoder description.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/92Documentation split2018-04-05T10:48:23ZIlle, Ondrej, Ing.Documentation splitSplit the system architecture Chapter into the general part with block diagrams and written description.
The other chapter will be with Tables describing each circuit. Consider putting the second chapter to Appendix.Split the system architecture Chapter into the general part with block diagrams and written description.
The other chapter will be with Tables describing each circuit. Consider putting the second chapter to Appendix.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/91Stabilize register map2018-04-05T10:48:23ZIlle, Ondrej, Ing.Stabilize register mapAfter all updates in the register map, go through every register and decide whether its location is final.
Discuss this with Martin and mr. Píša.After all updates in the register map, go through every register and decide whether its location is final.
Discuss this with Martin and mr. Píša.Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/90Retransmitt counter fix2018-02-17T15:06:48ZIlle, Ondrej, Ing.Retransmitt counter fixAdd increment of rettransmitt counter when arbitration is lost.Add increment of rettransmitt counter when arbitration is lost.Socket CAN release featuresIlle, Ondrej, Ing.Ille, Ondrej, Ing.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/89Frame unification2018-07-23T23:09:08ZIlle, Ondrej, Ing.Frame unificationAll CAN frame metadata (DLC, RTR, ...) are defined in separate signals in synthesizable design. In CAN test lib record type is used
for this purpose.
It would be good to define record for HW CAN frame (in CANConstants.vhd), and use it t...All CAN frame metadata (DLC, RTR, ...) are defined in separate signals in synthesizable design. In CAN test lib record type is used
for this purpose.
It would be good to define record for HW CAN frame (in CANConstants.vhd), and use it troughout the design for synthesis.
This would reduce the number of signals in the design and make the design more organized.Wishlisthttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/88Unwrap the TX Buffers2018-02-19T12:57:24ZIlle, Ondrej, Ing.Unwrap the TX BuffersRemove BUF_DIR bit and create separate memory location for each TXT buffer in the
Memory map. This is needed for different threads filling more buffers at the same time!Remove BUF_DIR bit and create separate memory location for each TXT buffer in the
Memory map. This is needed for different threads filling more buffers at the same time!Socket CAN release featureshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/87test: frame generation: inconsistent position of CAN ID in base frames2018-02-23T23:09:30ZMartin Jeřábektest: frame generation: inconsistent position of CAN ID in base framesThe functions `correct_identifiers`, `CAN_send_frame`, and `CAN_generate_frame` handle basic frame IDs differently. Somewhere the ID is stored in high bits, somewhere in low bits.
GHDL then complains that "NUMERIC_STD.TO_UNSIGNED: vect...The functions `correct_identifiers`, `CAN_send_frame`, and `CAN_generate_frame` handle basic frame IDs differently. Somewhere the ID is stored in high bits, somewhere in low bits.
GHDL then complains that "NUMERIC_STD.TO_UNSIGNED: vector truncated" in `CAN_send_frame`, which is how I found it.Bug fixingMartin JeřábekMartin Jeřábek