Forum Discussion
Merging altshift_taps doesn't require any more ports no matter how many you merge. At the basic level, altshift_taps is a memory with a free-running read and write counter offset by the shift register length. So let's say a shift register is 8 bits wide and 40 bits long. The write pointer would start at 40, the read pointer at 0, and they would just go. (I think the offset is a little less than 40 to account for latency, but that's the basic idea). All reads and writes are 8 bits. Now let's merge it with another shift register that is 8-bits wide and 40 long. No extra ports are needed, just the memory width is increased to 16, with half the inputs/outputs making up one shift register and the other half making up the other. But still only one read pointer and one write pointer.