My design is having controller to serialize out the data, one end is APB interface, another end is serial_clk_out and serial_data_out signal. I’m having difficulty design a monitor to capture the serial output data for just detecting serial_clk_out and serial_data_out.
The maximum data allowed for shifting out the data is 128 bits (through APB register configuration), but the monitor should smart enough to know how many bits of data that the controller is shifting out regardless of knowing the data length that set in the APB register inside the controller, and it should not care of that, since its responsibility is just monitor the bus, once collected the data, writing into the analysis_port and done. The Monitor will never know how many bits that user wanted to shift out.
I’m running out of idea doing this, any suggestion?
The purpose of the monitor is to convert a physical layer interface into a transaction. What is the hardware on the other end of the serial bus supposed to do with the data? What do you think you need to check? If you do not know the answers, you need to ask more questions to the designers.
I understand the purpose of monitor. The hardware on the other end is bunch of shift registers, assuming more than 10K. The IP is responsible to shift out the data serially to the shift registers. I need to verify the IP as whenever the IP is configured to shift out the data, I need to make sure that the data length is correct and the data from the APB master is matching with whatever that is shifted out by the IP. Any suggestion to check this?
So if the only protocol on your serial bus is a valid bit or not (i.e. no framing bits), the only thing your monitor can send out through the analysis port is a single bit transaction. Then your scoreboard will have to re-assemble the bits and compare the data. You’ll probably need some sort of timeout that predicts how long after the APB master sends a command that the last serial bit should have been sent.
OK, meaning that the comparison will be bit by bit instead of comparing it after finish sending all data. I think this way is doable. Let me try to implement it. Thanks for your help Dave!