VHDL Code for Shifting Data Through a Serially Addressed Shift Register
I do not know why but the answer from @yakkling had a different way to address the same problem. I am not talking about the symbolize answer.
Serial In, Serial Out Shift Register
Most high-level languages have serial in serial out shift registers: VHDL. VHDL provides a couple of constructs to write a serial-in, serial-out shift register. The examples shown below use a 64-bit shift register.
A serial-in, serial-out shift register can be used to implement a data flow function. This means that the output of a data flow function is shifted out serially. The input of the data flow function is shifted in at the same time. The binary output of the data flow function will be a serial string of bits, one bit per clock cycle.
A simple serial-in, serial-out shift register is shown below.
The first thing to do is to derive the delay through the delay cycle. Let’s call the length of the shift register “len.” The shift register produces 1 bit per clock cycle.
This means we have 2*len-1 “ticks” (clock cycles) to shift a 64-bit input bit through the shift register. Assume that we want to do this with a shift clock of frequency f=3,000,000 Hz and a clock cycle of width t=12 pico seconds (ps). This means the shift register will produce one bit per clock cycle. The length of the register is 64 bits, so the shift will take 2*64*12 ps = 768 ps. We can calculate this using the following formula:
This means we have 2*len-1*768 ps to shift through the shift register. The input bit is shifted in at the same time. There are two main differences between the serial-in, serial-out shift register and the serial-in, parallel-out shift register.
The first difference is that in the serial-in, serial-out shift register, the shift is shifted serially, one bit at a time. The input is shifted in at the same time as the shift. This is shown in the diagrams below. The input and shift register are connected to a single bit input and output.
The second difference is that the parallel-in, serial-out shift register has a parallel input and serial output be359ba680
Related links:
Comments