FPGA中EMIO接口的模块引出
1. 问题描述
我在用Xilinx的ZYNQ7020开发程序,现在遇到一个问题,EMIO有6位 我只想引出高四位怎么做,因为EMIO的低两位我在PS和PL的交互的时候用了,应该怎么把高四位的EMIO引出去给外部的IO使用?(其中EMIO[0]用于从PS输出控制信号,EMIO[1]用于从PS检测PL端信号)
2. 程序实现
`timescale 1ns / 1ps
module emio_div(
output [5:0]emio_o,
input [5:0]emio_i,
input [5:0]emio_t,
input prog_empty,
output flag_burst,
inout [3:0]emio_pl
);
assign emio_o[0] = 1'bz;
assign emio_o[1] = prog_empty;
assign emio_o[2] = emio_t[2] == 1'b1 ? emio_pl[0]:1'bz;
assign emio_o[3] = emio_t[3] == 1'b1 ? emio_pl[1]:1'bz;
assign emio_o[4] = emio_t[4] == 1'b1 ? emio_pl[2]:1'bz;
assign emio_o[5] = emio_t[5] == 1'b1 ? emio_pl[3]:1'bz;
assign flag_burst = emio_i[0];
assign emio_pl[0] = emio_t[2] == 1'b0 ? emio_i[2]:1'bz;
assign emio_pl[1] = emio_t[3] == 1'b0 ? emio_i[3]:1'bz;
assign emio_pl[2] = emio_t[4] == 1'b0 ? emio_i[4]:1'bz;
assign emio_pl[3] = emio_t[5] == 1'b0 ? emio_i[5]:1'bz;
endmodule
注意点:
- 只有在Top能够出现inout,其他的例化的子模块只能分input和output
- emio_t为高代表的是输入,这一点和传统的1为输出的理解不一样,恰好相反,这一点要特别注意