Talk:APU Sweep: Difference between revisions
mNo edit summary |
(Yes, within a cycle) |
||
Line 6: | Line 6: | ||
:When the target is greater than $7FF. If a sweep unit's value is $00, and the sweep value is in $400-$7FF, then as I understand it, the target period is in $400 + ($400 >> 0) through $7FF + ($7FF >> 0), which equals $800-$FFE, and the channel is silenced. | :When the target is greater than $7FF. If a sweep unit's value is $00, and the sweep value is in $400-$7FF, then as I understand it, the target period is in $400 + ($400 >> 0) through $7FF + ($7FF >> 0), which equals $800-$FFE, and the channel is silenced. | ||
::So the next target period is generated right after the channel's period gets updated? --[[User:Drag|Drag]] 02:00, 18 May 2011 (UTC) | ::So the next target period is generated right after the channel's period gets updated? --[[User:Drag|Drag]] 02:00, 18 May 2011 (UTC) | ||
:::There's something you should understand about silicon. As soon as a value is clocked into a hardware latch, all the combinational logic feeding off that latch begins to update immediately. So yes, the next target period starts to be generated right after the previous one gets written back, and this new target period is available by the next CPU cycle. --[[User:Tepples|Tepples]] 02:13, 18 May 2011 (UTC) |
Revision as of 02:13, 18 May 2011
Interesting fact: the 2 square channels are almost perfect mirror images of each other on the silicon, with one single difference: where one part of the 2nd channel's sweep unit takes as an input the (inverted) state of the Negate flag, the equivalent input in the 1st channel's sweep unit is hardwired to +5V. Said input is almost definitely the Carry Input flag, and it explains the difference in behavior. --Quietust 00:45, 10 May 2011 (UTC)
The RP2A03 may have originally been planned to permit periods as low as 4 - the current "silence on period < 8" behavior is accomplished by feeding bits 3-10 into a large NOR gate (if they're all 0, the channel is silenced), but there's another unconnected input for bit 2. It might be enlightening to test earlier versions of the chip. --Quietust 17:16, 14 May 2011 (UTC)
Does the sweep unit disable the channel when the target period is greater than 3FF or greater than 7FF? --Drag 04:00, 17 May 2011 (UTC)
- When the target is greater than $7FF. If a sweep unit's value is $00, and the sweep value is in $400-$7FF, then as I understand it, the target period is in $400 + ($400 >> 0) through $7FF + ($7FF >> 0), which equals $800-$FFE, and the channel is silenced.
- So the next target period is generated right after the channel's period gets updated? --Drag 02:00, 18 May 2011 (UTC)
- There's something you should understand about silicon. As soon as a value is clocked into a hardware latch, all the combinational logic feeding off that latch begins to update immediately. So yes, the next target period starts to be generated right after the previous one gets written back, and this new target period is available by the next CPU cycle. --Tepples 02:13, 18 May 2011 (UTC)
- So the next target period is generated right after the channel's period gets updated? --Drag 02:00, 18 May 2011 (UTC)