Forum Discussion
Altera_Forum
Honored Contributor
14 years ago --- Quote Start --- I agree with your philosophy 100%. Which is why, after some discussion with my colleagues, is there any inherent advantage to this "Parallel-SPI" approach over doing it like JTAG? We can still program the CPLD on the main board with advanced things later on (like checksum, etc.) This approach would eliminate the addressing, wouldn't it? We can just use two CS to select between the CPLDs intended for driving and those intended for receiving. --- Quote End --- The key to the board design is to keep as many options open as makes sense. The 'all CPLDs as one big shift-register' option is conceptually the simplest, while the 'each CPLD is individually addressable' is a little more complex, but more flexible. The difference between the two designs is a single wire (or perhaps a couple). So you layout the boards to support both options. Then implement one of them. --- Quote Start --- When I want to drive the test-vector into the driving CPLDs, I select CS1. If I want to receive the output vector, I select CS2. Essentially, I treat a chain of CPLDs as a single shift register. No need to mess with addressing (I think?) --- Quote End --- Yep, that is probably correct. Simulate it and see if it all works. --- Quote Start --- Will this work? --- Quote End --- Your block diagram does not reflect (your) reality. You said you would have two CPLDs per board, so draw it that way. Now, where do the master controls for the second board come from? Are they buffered and re-driven from the microcontroller, or from the CPLD? You show CS1 and CS2. So now they will be seen in common by the second board. Now when you do your shift sequence between the two boards, will it all work? These are the types of questions you can answer by writing a couple of CPLD designs, tying them together into a 'board' design, and then cascading a couple of those 'boards' in a testbench. You then generate shift-register shifts, and check the I/O state after each shift. Once that all works, then you go back to your board design. As far as I can tell, you should not have any trouble getting it to work. The key is not to jump into the PCB design, and then realize you've forgotten something. Get the system working in the simulator, and use that to fine tune the design. Cheers, Dave