- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I have just ported a project that's been working for years with a Nios2-gen1 processor to the new Nios2-gen2. Everything seems to be working fine except for one strange problem, I'm finding my interrupts are getting spontaneously disabled for some reason.
In debugging this, I've found that occasionally when an interrupt occurs (from the internal interrupt controller) the estatus register is zero. estatus should have a copy of the status register at the time of the interrupt, and since the interrupt can't occur if bit 0 of the status register is clear, then I would never expect estatus to be zero on entry to an interrupt. I've checked the exception register and it indicates that the cause of the interrupt is the IIC, so it's definitely a hardware interrupt causing the exception. Does anyone know if this is a known errata on the Nios2-gen2 processor? For the moment I'm just forcing estatus to 1 in my interrupt handler, but I'd love to know what the root cause of this issue is. Thanks, Steve링크가 복사됨
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Are you by any chance using Tightly-Coupled data master?
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Yes, I'm using both tightly coupled data and instruction masters.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I have seen some kind of similar issue. But reverted to use normal data master.
Can you try with data master?- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
OK, I got a reply to the service request I submitted to Altera on this. Turns out it's a known bug with the Nios2-gen2 processor as of Quartus 15.0. They have a patch which is supposed to fix it, and will have it fixed in a future Quartus release. I'm still waiting on the patch file, so can't confirm if it fixes the problem
And yes, it appears that the tightly coupled data master port is part of the problem. I don't have much more detail then that though.- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
--- Quote Start --- OK, I got a reply to the service request I submitted to Altera on this. Turns out it's a known bug with the Nios2-gen2 processor as of Quartus 15.0. They have a patch which is supposed to fix it, and will have it fixed in a future Quartus release. I'm still waiting on the patch file, so can't confirm if it fixes the problem And yes, it appears that the tightly coupled data master port is part of the problem. I don't have much more detail then that though. --- Quote End --- so this only happen in gen2 processor only?
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
As far as I know this problem only occurs in the gen2 processor.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
quite interesting, the interrupt should not just disable by it self for normal usage, as it was not happening my side. Do you have any other component or item that in usage that may trigger that special disable event?
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
I think it's just a bug in the Nios2 processor generator shipped with Quartus 15.0. It seems to have something to do with the tightly coupled data master port.
Altera support was able to quickly provide a patch when I put in my service request, so they appear to know about it. I asked for a list of know bugs in the Nios processor, but they were not able/willing to provide one. Quartus 15.1 has now been released, so I would expect that this bug has now been fixed in the software.- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
and i also wondering why the 15.1 and 15.0 version is quite close in term of release date. just a few months in between.. maybe too much bugssSSSSSS :D
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
This is interesting that you are having this issue as well.
About a month ago, I was working on a design where the IRQ was not being recieved by the NIOS. If I implemented the NIOS as a sub Qsys system, it would not work. If I implemeted the NIOS as a stand alone Qsys system, it would work. ienable and the status register were always 0 and could not be written to in the "sub-system case". The issue was solved by using an IRQ bridge. Sounds like there are a few Nios IRQ issues out there.- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi maurimj,
your issue happen in nios II or the gen 2 nios?- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
--- Quote Start --- Hi maurimj, your issue happen in nios II or the gen 2 nios? --- Quote End --- Nios II Gen 2. We also submitted an Altera SR. Their reply was to use the IRQ bridge. I am surprised they did not recommend the patch that they gave you as I am sure it is a related issue. It was an interesting problem and I am not sure how or why the IRQ bridge fixed the issue. I could go into debug mode and step over lines where I would write to the control registers (status, ienable, etc.). None of them would "accept" their writes.
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
--- Quote Start --- I think it's just a bug in the Nios2 processor generator shipped with Quartus 15.0. It seems to have something to do with the tightly coupled data master port. Altera support was able to quickly provide a patch when I put in my service request, so they appear to know about it. I asked for a list of know bugs in the Nios processor, but they were not able/willing to provide one. Quartus 15.1 has now been released, so I would expect that this bug has now been fixed in the software. --- Quote End --- Would be possible to get a patch from you or link to the Altera web site?
