mirror of https://github.com/efabless/caravel.git
Revert "Implemented fix from early issue #16. Finally decided to pull the"
This reverts commit 577cc12fe0
.
Reverting the change from issue #16. After some discussion, it has
been decided that it is up to the user to implement the pull-up and
pull-down modes correctly by setting the output enable and driving
the output to the appropriate value. Note that this should be well
documented, if by nothing else than a validation testbench that
excercises a user pull-up and pull-down input mode.
This commit is contained in:
parent
6a10542552
commit
f5a9d4677e
2
manifest
2
manifest
|
@ -13,7 +13,7 @@ d0c5cf9260783b1a88c0b772c2e3cee3dcd0cf76 verilog/rtl/chip_io.v
|
||||||
126aff02aa229dc346301c552d785dec76a4d68e verilog/rtl/clock_div.v
|
126aff02aa229dc346301c552d785dec76a4d68e verilog/rtl/clock_div.v
|
||||||
36af0303a0e84ce4a40a854ef1481f8a56bc9989 verilog/rtl/digital_pll.v
|
36af0303a0e84ce4a40a854ef1481f8a56bc9989 verilog/rtl/digital_pll.v
|
||||||
ce49f9af199b5f16d2c39c417d58e5890bc7bab2 verilog/rtl/digital_pll_controller.v
|
ce49f9af199b5f16d2c39c417d58e5890bc7bab2 verilog/rtl/digital_pll_controller.v
|
||||||
72c1bce09886b89608403aa517ddd74010627211 verilog/rtl/gpio_control_block.v
|
1f894f1c43d42017c157d8dd7d2e4674c1a43303 verilog/rtl/gpio_control_block.v
|
||||||
9c92ddf1391fa75ee906e452e168ca2cdd23bd18 verilog/rtl/gpio_defaults_block.v
|
9c92ddf1391fa75ee906e452e168ca2cdd23bd18 verilog/rtl/gpio_defaults_block.v
|
||||||
32d395d5936632f3c92a0de4867d6dd7cd4af1bb verilog/rtl/gpio_logic_high.v
|
32d395d5936632f3c92a0de4867d6dd7cd4af1bb verilog/rtl/gpio_logic_high.v
|
||||||
b890e19f294294ee4aad4136b95c46e17d6f91dd verilog/rtl/housekeeping.v
|
b890e19f294294ee4aad4136b95c46e17d6f91dd verilog/rtl/housekeeping.v
|
||||||
|
|
|
@ -45,18 +45,7 @@
|
||||||
* the clock half cycle. This avoids the need to fine-tune the clock
|
* the clock half cycle. This avoids the need to fine-tune the clock
|
||||||
* skew between GPIO blocks.
|
* skew between GPIO blocks.
|
||||||
*
|
*
|
||||||
* Modified 10/4/2022 by Tim Edwards
|
* Modified 10/05/2022 by Tim Edwards
|
||||||
* Replaces the tri-state output with a zero-value output when the
|
|
||||||
* user project is powered down (same modification as was made to the
|
|
||||||
* management protect module). This allows all outputs to be buffered
|
|
||||||
* and sized by the synthesis tools.
|
|
||||||
*
|
|
||||||
* Modified 10/5/2022 by Tim Edwards
|
|
||||||
* Changed the behavior of the logic for the pad "out" and "oeb"
|
|
||||||
* pins for the user so that they match the logic used for the
|
|
||||||
* management SoC, which is to automatically control these values
|
|
||||||
* when the configuration is set to either input pull-up or input
|
|
||||||
* pull-down modes.
|
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------
|
*---------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -246,18 +235,16 @@ module gpio_control_block #(
|
||||||
/* the control block. In this case, the output enable state is */
|
/* the control block. In this case, the output enable state is */
|
||||||
/* determined by the OEB configuration bit. */
|
/* determined by the OEB configuration bit. */
|
||||||
|
|
||||||
assign pad_gpio_outenb =
|
assign pad_gpio_outenb = (mgmt_ena) ? ((mgmt_gpio_oeb == 1'b1) ?
|
||||||
(gpio_dm[2:1] == 2'b01) ? 1'b0 :
|
gpio_outenb : 1'b0) : user_gpio_oeb;
|
||||||
((mgmt_ena) ? ((mgmt_gpio_oeb == 1'b1) ? gpio_outenb : 1'b0) :
|
|
||||||
user_gpio_oeb);
|
|
||||||
|
|
||||||
/* For 2-wire interfaces, if the pad is configured for pull-up or */
|
/* For 2-wire interfaces, if the pad is configured for pull-up or */
|
||||||
/* pull-down, drive the output value locally to achieve the */
|
/* pull-down, drive the output value locally to achieve the */
|
||||||
/* expected pull. */
|
/* expected pull. */
|
||||||
|
|
||||||
assign pad_gpio_out =
|
assign pad_gpio_out = (mgmt_ena) ? ((mgmt_gpio_oeb == 1'b1) ?
|
||||||
(gpio_dm[2:1] == 2'b01) ? ~gpio_dm[0] :
|
((gpio_dm[2:1] == 2'b01) ? ~gpio_dm[0] : mgmt_gpio_out) :
|
||||||
((mgmt_ena) ? mgmt_gpio_out : user_gpio_out);
|
mgmt_gpio_out) : user_gpio_out;
|
||||||
|
|
||||||
/* Buffer user_gpio_in with an enable that is set by the user domain vccd */
|
/* Buffer user_gpio_in with an enable that is set by the user domain vccd */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue