-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Status of the project + a few questions #3
Comments
For a classical interface where module i2c_slave (scl, sda);
input scl;
inout sda;
endmodule should the cocotb
or just
? |
The intention was to support that as
But, unfortunately there are bugs in some combination of cocotb, the verilog PLI, and various simulators that seem to prevent that from working. Or, at least I have not yet found a solution that works, nor have I had the time to expolore this in great detail. So, I think at least for the time being, an HDL "shim" implementing tristate buffers will be required to interface with HDL code that uses inout pins. As an aside, generally I2C components should not use inout pins in the first place, as this makes it impossible to interconnect them internally, and potentially makes testing more complicated. Instead, input and output pins should be used, with tristate buffers instantiated at the edge of the chip. |
Also, it should work for any I2C components, although I'm not sure if multi-master works properly. Clock stretching should also work. Not sure about nacks; I don't think that will generate an exception, but I think it should be recorded somewhere. |
@alexforencich as far as I understand a Verilog wrapper of an I2C slave should have some extra logic besides the tristate buffers. I think I should (or may have to) keep 2 SDA ports ( |
hi Alex,
what is the status of the project? are there known issues/limitations, for example
Thanks,
G.
The text was updated successfully, but these errors were encountered: