<div>06.02.2015, 09:22, "Joachim Strömbergson" <joachim@secworks.se>:</div><blockquote type="cite"><p>having separate flags for read and write is excessive unless one wants<br />to do them both at the same time. Right now I don't see that we have any<br />timing issues with the mux logic.</p></blockquote><div>If we only have one single flag, say WriteEnable, then our core will write its registers when it is asserted and always read them otherwise. If we have a set of two flags, say WriteEnable and ChipSelect, or WriteEnable and ReadEnable, then our core can be idle when it is not accessed. This is generally a good practice, because it lowers power consumption a bit by not switching anything when it is not actually needed. Your cores do have cs input, which I believe is exactly for this purpose, so I added two output flags in the EIM arbiter. Having Read and Write is actually equivalent to having ChipSelect and Write, becase ChipSelect = Write | Read and Read = (ChipSelect & ~Write). You can modify EIM arbiter to output ChipSelect and Write instead of Read and Write if you want.</div><blockquote type="cite"><p><br />One thing we need to consider is how we handle the availabe address<br />space. Most cores have an 8-bit address space. With 14-bit addresses<br />going in it gives us room for 2**6=64 cores. But the TRNHG for example<br />allocates 12 bits of addresses. And the modexp core (for RSA, D-H etc)<br />requires something like 12 bits too.<br /><br />Also, if we want to not redo SW mapping we should probably decide on at<br />least a provisional FPGA address map, where the cores will be, about<br />now. There will probably be things that we want to redo later on, but a<br />first attempt now would be good.</p></blockquote><div>You are completely right, Joachim, having at least a draft memory map is vital. If you remember, I've already proposed my variant, you can use it as a starting point. I'm only dealing with FPGA-related stuff, so it would be great if someone with a bigger picture of the project in his head could create a rough version of EIM memory map and place it somewhere on the website. This person should also be responsible for keeping this table up to date in case we change something. In Novena there are three additional address lines (A16-18). We are not using them right now actually. If you are afraid that we run out of address space, we can add them to our design.</div><div> </div><div>-- <br />With best regards,</div><div>Pavel Shatov</div><div> </div>