|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本人正在学习蜂鸟e203,最近一直在看github上的源码,现在被它的顶层模块封装搞的越来越糊涂了,我主要是想实现将蜂鸟e203作为一个verilog黑匣子或者说做完一个ip,可以移植到任意FPGA芯片上(也就是说修改一下ip,时钟,管教,编译下载)整个顶层封装应该是system.org文件中的写的,其中主要有以下几个部分:第一个部分是时钟和复位,这里主要涉及两个ip mmcm ip_mmcm,reset_sys ip_reset_sys复位信号和两个时钟16MHz、32.768kHz
第二个部分是例化e200_soc_top dut,没啥可说的
第三个部分是IOBUF ,例如
wire iobuf_gpio_28_o;
IOBUF
#(
.DRIVE(12),
.IBUF_LOW_PWR("TRUE"),
.IOSTANDARD("DEFAULT"),
.SLEW("SLOW")
)
IOBUF_gpio_28
(
.O(iobuf_gpio_28_o),
.IO(gpio_28),
.I(dut_io_pads_gpio_28_o_oval),
.T(~dut_io_pads_gpio_28_o_oe)
);
assign dut_io_pads_gpio_28_i_ival = iobuf_gpio_28_o & dut_io_pads_gpio_28_o_ie;
这里其实就是inout端口的用法,其实本来也没什么好说的,可是为啥:
assign dut_io_pads_gpio_6_i_ival = 1'b0;
assign dut_io_pads_gpio_7_i_ival = 1'b0;
assign dut_io_pads_gpio_8_i_ival = 1'b0;
这三个就不用IOBUF,也不连到管脚上?
第四部分就是将信号分配到最终最终的顶层input、output、inout端口上
想请问一下,我以上的说法有没有什么不对的地方。
|
|