FPGA的编程思想是用软件来描述硬件数字电路,也就是说要用设计硬件数字电路的思维方式来思考软件编程。
在FPGA中,模块之间的数据传输就是数字电路元件之间进行数据传输,数字电路元件通过导线把两引脚连接在一起而进行信号传输。在FPGA中通过例化方式来封装元件,例化语句中的参数就是元件的引脚名称。
如下通过实例来说明:
模块定义如下所示:
module ethernet_test(
input sys_clk,
input key,
input rst_n,
output [3:0] led,
output e_mdc,
inout e_mdio,
output e_reset,
input e_rxc,
input e_rxdv,
input e_rxer,
input [7:0] e_rxd,
input e_txc,
output e_gtxc,
output e_txen,
output e_txer,
output[7:0]
e_txd
);
与ethernet_test对应的电路元件如下图所示:(特别说明:以下显示的引脚名称为与之相连的其他元件的引脚名称。)
如果需要和ethernet_test电路进行通讯需要把这个元件例化,例化方式如下所示:
ethernet_test ethernet_test_0
(
.sys_clk (pll_clk_50),
.key (key),
.rst_n (rst_n),
.