mirror of https://github.com/YosysHQ/icestorm.git
I³C IO reverse engineered and documented
This commit is contained in:
parent
7e587c9b6b
commit
4b16c3735c
|
|
@ -290,6 +290,19 @@ can be used as an open-drain IO using the standard IO cell.</p>
|
|||
|
||||
</table>
|
||||
|
||||
<h3>I<sup>3</sup>C capable IO</h3>
|
||||
<p>The UltraPlus devices have two IO pins designed for the new MIPI I<sup>3</sup>C standard (pins 23 and 25 in the SG48 package),
|
||||
compared to normal IO pins they have two switchable pullups each. One of these pullups, the weak pullup, is fixed at 100k and the
|
||||
other can be set to 3.3k, 6.8k or 10k using the mechanism above. The pullup control signals do not
|
||||
connect directly to the IO tile, but instead connect through an IPConnect tile.</p>
|
||||
|
||||
<p>The connections are listed below:</p>
|
||||
<table class="ctab">
|
||||
<tr><th>Signal</th><th>Pin 23<br/>(19, 31, 0)</th><th>Pin 25<br/>(19, 31, 1)</th></tr>
|
||||
<tr><td>PU_ENB</td><td>(25, 27, lutff_6/in_0)</td><td>(25, 27, lutff_7/in_0)</td></tr>
|
||||
<tr><td>WEAK_PU_ENB</td><td>(25, 27, lutff_4/in_0)</td><td>(25, 27, lutff_5/in_0)</td></tr>
|
||||
</table>
|
||||
|
||||
<h2>Hard IP</h2>
|
||||
|
||||
<p>The UltraPlus devices contain three types of Hard IP: I<sup>2</sup>C (<span style="font-family:monospace">SB_I2C</span>), SPI (<span style="font-family:monospace">SB_SPI</span>), and LED PWM generation
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
set_io pin_23 23
|
||||
set_io pin_25 25
|
||||
|
||||
set_io pin_23_puen 2
|
||||
set_io pin_23_wkpuen 3
|
||||
|
||||
set_io pin_25_puen 4
|
||||
set_io pin_25_wkpuen 6
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
module top (
|
||||
inout pin_23,
|
||||
inout pin_25,
|
||||
input pin_23_puen,
|
||||
input pin_23_wkpuen,
|
||||
input pin_25_puen,
|
||||
input pin_25_wkpuen);
|
||||
|
||||
(* PULLUP_RESISTOR = "3P3K" *)
|
||||
SB_IO_I3C #(
|
||||
.PIN_TYPE(6'b000001),
|
||||
.PULLUP(1'b1),
|
||||
.WEAK_PULLUP(1'b1),
|
||||
|
||||
.NEG_TRIGGER(1'b0)
|
||||
) IO_PIN_0 (
|
||||
.PACKAGE_PIN(pin_23),
|
||||
.PU_ENB(pin_23_puen),
|
||||
.WEAK_PU_ENB(pin_23_wkpuen)
|
||||
) ;
|
||||
|
||||
(* PULLUP_RESISTOR = "3P3K" *)
|
||||
SB_IO_I3C #(
|
||||
.PIN_TYPE(6'b000001),
|
||||
.PULLUP(1'b1),
|
||||
.WEAK_PULLUP(1'b1),
|
||||
|
||||
.NEG_TRIGGER(1'b0)
|
||||
) IO_PIN_1 (
|
||||
.PACKAGE_PIN(pin_25),
|
||||
.PU_ENB(pin_25_puen),
|
||||
.WEAK_PU_ENB(pin_25_wkpuen)
|
||||
);
|
||||
endmodule
|
||||
Loading…
Reference in New Issue