CTU CAN FD IP Core issueshttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues2021-05-16T18:22:10Zhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/307Resolve reset synchronisation in APB/AHB wrappers2021-05-16T18:22:10ZIlle, Ondrej, Ing.Resolve reset synchronisation in APB/AHB wrappersReset is defined as Asynchronous for CTU CAN FD but it is taken as reset in APB and AHB wrappers directly.
Reset synchronizer is only inside on CAN_top_level!
For AHB, protocol spec declares that reset is already synchronized (should be...Reset is defined as Asynchronous for CTU CAN FD but it is taken as reset in APB and AHB wrappers directly.
Reset synchronizer is only inside on CAN_top_level!
For AHB, protocol spec declares that reset is already synchronized (should be released synchronously), for
APB, it does not say anything. I think best approach would be to bring out synchronized reset on CAN_top_level
and use it to reset registers in APB/AHB wrapper! THis-way we dont add next reset synchronizers but still
resynchronize the reset by ourselves! Datasheet already defines that reset is asynchronous and is internally
synchronize and that other systems should not access it 2 clock cycles after it is released.
What do you think @pisa ??https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/304TX arbitrator optimization2019-10-05T07:03:31ZIlle, Ondrej, Ing.TX arbitrator optimizationTX arbitrator now loads data from TXT buffer in circular manner during TXT buffer validation process.
By this I mean that timestamp words are read, timestamp comparison is executed, frame format word is read
and loaded to capture regist...TX arbitrator now loads data from TXT buffer in circular manner during TXT buffer validation process.
By this I mean that timestamp words are read, timestamp comparison is executed, frame format word is read
and loaded to capture registers. Then, the same procedure repeats even if this does not have sense because
the same data will be selected. The procedure shall be restarted only when Selected TXT Buffer changes because
then new frame can be loaded. Power-wise reading from such a big RAM data again and again redundantly is not
very good approach (even for FPGAs)https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/301Driver sources documentation.2019-09-09T15:39:17ZPavel PisaDriver sources documentation.Driver sources documentation should conform to kernel-doc style to make sources acceptable for mainline.
It is questionable if kernel-doc format is preferable for ctu_can_fd_hw.h but change is planned to to be consistent with ctu_can_fd.c.Driver sources documentation should conform to kernel-doc style to make sources acceptable for mainline.
It is questionable if kernel-doc format is preferable for ctu_can_fd_hw.h but change is planned to to be consistent with ctu_can_fd.c.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/299Fix TXB interrupt stuck under load.2019-09-04T21:26:54ZPavel PisaFix TXB interrupt stuck under load.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/297Update Quartus CAN_Wrapper to match core after 194-protocol-control-rework.2019-08-03T12:09:51ZPavel PisaUpdate Quartus CAN_Wrapper to match core after 194-protocol-control-rework.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/296reduce log size2019-08-03T08:09:59ZIlle, Ondrej, Ing.reduce log sizehttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/295Documentation clean-up2019-09-26T21:09:47ZIlle, Ondrej, Ing.Documentation clean-upThe aim of this task is to clean documentation for CTU CAN FD after major rework.
1. [x] Finish system architecture document
2. [x] Update datasheet
3. [x] Separate verification related stuff to separate document
4. [ ] Add link to thes...The aim of this task is to clean documentation for CTU CAN FD after major rework.
1. [x] Finish system architecture document
2. [x] Update datasheet
3. [x] Separate verification related stuff to separate document
4. [ ] Add link to these documents to GITLab, auto-generate on master branch.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/292Set abort command cornercase2019-09-26T21:33:15ZIlle, Ondrej, Ing.Set abort command cornercaseIf there are multiple TXT Buffers ready, one of them is selected by TX Arbitrator, this Buffer receives set Abort
command, it stays selected for two more clock cycles, instead of dropping and becoming unavailable imediately.
Add fix for...If there are multiple TXT Buffers ready, one of them is selected by TX Arbitrator, this Buffer receives set Abort
command, it stays selected for two more clock cycles, instead of dropping and becoming unavailable imediately.
Add fix for this.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/291Remove simulation reset2019-10-30T21:24:51ZIlle, Ondrej, Ing.Remove simulation resetRAM memories should not be reset in simulation. Remove this and check TCs.RAM memories should not be reset in simulation. Remove this and check TCs.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/289functional coverage report is broken2019-04-02T10:02:05ZMartin Jeřábekfunctional coverage report is brokenLinks are to `*.vhd.html`, files are `*.html`. Likely introduced by last refactoring.Links are to `*.vhd.html`, files are `*.html`. Likely introduced by last refactoring.Martin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/287Job Failed #31277 - docker is KO2019-04-01T08:20:31ZMartin JeřábekJob Failed #31277 - docker is KOJob [#31277](https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/jobs/31277) failed for 14c91fb7291ffdb2c3aa5789079fd4ff2343b34a:Job [#31277](https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/jobs/31277) failed for 14c91fb7291ffdb2c3aa5789079fd4ff2343b34a:https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/286Synthesis failure2019-08-04T11:57:18ZMartin JeřábekSynthesis failure`ERROR: [Synth 8-1779] cannot read from 'out' object data_tx ; use 'buffer' or 'inout' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/5931/can_core/can_core.vhd:995]`, introduced by 405113fbc6f25.
Should probably use...`ERROR: [Synth 8-1779] cannot read from 'out' object data_tx ; use 'buffer' or 'inout' [/builds/canbus/zynq/zynq-can-sja1000-top/system/src/top/ipshared/5931/can_core/can_core.vhd:995]`, introduced by 405113fbc6f25.
Should probably use `data_tx_int` instead of `data_tx`. I just wonder why this is acceptable in simulation ...https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/284improve gtkwave performance2019-03-24T19:12:22ZMartin Jeřábekimprove gtkwave performanceThis is a free continuation of #281.
#### Tasks
* [x] patch gtkwave not to use linear search when loading GHW data
* [x] generate a list of signals in layout for GHDL's `--read-wave-opt`
#### Rationale
Task 1 drastically reduces load t...This is a free continuation of #281.
#### Tasks
* [x] patch gtkwave not to use linear search when loading GHW data
* [x] generate a list of signals in layout for GHDL's `--read-wave-opt`
#### Rationale
Task 1 drastically reduces load time, but still the amount of data is huge and gtkwave crashes on OOM. Task 2 aims to reduce the amount of data so that only reasonable amounts of memory are needed.Martin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/282Add register list to the reg. map2019-03-18T19:43:45ZIlle, Ondrej, Ing.Add register list to the reg. mapAdd register list to the generated register package to allow for automated testing
of register reset values.Add register list to the generated register package to allow for automated testing
of register reset values.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/281GHDL simulation performance2019-03-19T23:44:08ZIlle, Ondrej, Ing.GHDL simulation performanceResolve drastic simulation performance in GHDL with wave dumping:
1. [x] Test simulation performance with Martins Hack.
2. [x] Build GHDL with the Hack and add to Docker image.
3. [x] Create a pull request to GHDL mainline.Resolve drastic simulation performance in GHDL with wave dumping:
1. [x] Test simulation performance with Martins Hack.
2. [x] Build GHDL with the Hack and add to Docker image.
3. [x] Create a pull request to GHDL mainline.Martin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/279Receive buffer not empty (RBNEI) handling2019-10-10T05:31:39ZPavel PisaReceive buffer not empty (RBNEI) handlingI have seen proposed patch "driver: mask RBNEI instead of just disabling it".
In general, I agree that CTUCAN_FLAG_RX_SCHED is not ideal option,
but manipulating with both interrupt enable and mask registers
would result in bigger overhe...I have seen proposed patch "driver: mask RBNEI instead of just disabling it".
In general, I agree that CTUCAN_FLAG_RX_SCHED is not ideal option,
but manipulating with both interrupt enable and mask registers
would result in bigger overhead than the additional if statement.
I understand that masking helps that there is not accumulated abundant
RBNEI during NAPI processing which causes unnecessary interrupt
when it is reenabled.
I general, I would like more manipulation with RBNEI interrupt enable
only and changing core logic which changes RBNEI and TXBHCI
bits to be real level only interrupts which are negated when
all data is read/none buffer left empty.https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/277HW tests failing2019-03-10T11:50:59ZMartin JeřábekHW tests failingFirst pipeline to fail: https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top/pipelines/6560
Last good commit: 5d48a71ec164b7373f685d187b75c5cfb31047c6
First bad commit: 34e30a72bce05a45d79f3eb763741ec137b11212
The error was thu...First pipeline to fail: https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top/pipelines/6560
Last good commit: 5d48a71ec164b7373f685d187b75c5cfb31047c6
First bad commit: 34e30a72bce05a45d79f3eb763741ec137b11212
The error was thus introduced in !230. @illeondr would you look at this please?https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/276testfw: CAN protocol decoding in gtkwave2019-03-14T17:27:07ZMartin Jeřábektestfw: CAN protocol decoding in gtkwaveIt may be possible to do using gtkwave's Transaction filters. Just write a parser in whatever language. Maybe we can even use the Protocol decoder from sigrok.
Kind of Research & Wishlist issue.It may be possible to do using gtkwave's Transaction filters. Just write a parser in whatever language. Maybe we can even use the Protocol decoder from sigrok.
Kind of Research & Wishlist issue.Martin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/275testfw: support immediate test output to console2020-10-11T15:00:49ZMartin Jeřábektestfw: support immediate test output to consoleThere is VUnit `--verbose` flag, but the output still goes to file and GHDL has set block flushing, not line flushing.
Options:
* Do not capture output to file
* Force GHDL to use line buffering
* Output to PTY, connected to file
...There is VUnit `--verbose` flag, but the output still goes to file and GHDL has set block flushing, not line flushing.
Options:
* Do not capture output to file
* Force GHDL to use line buffering
* Output to PTY, connected to file
* LD_PRELOAD with patched fopen (but first check that ADA uses libc's file functions)
* Force GHDL to periodically flush the file
* via gdb, /proc/*/fds, fflush (assuming libc api)
* too bothersome, cannot gdb in dockerMartin JeřábekMartin Jeřábekhttps://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core/-/issues/274automate register map generation2019-03-07T11:56:44ZMartin Jeřábekautomate register map generationMentioned in #257Mentioned in #257Martin JeřábekMartin Jeřábek