仿真文件的构成如图 3 所示,包括 HDL 文件和动态链接库(即 C 程序)。图中 C 程序对应的 VHDL 文件要负责声明对应的动态连接库文件名及初始化函数,另外还可以给出一些调用参数。动态链接库中用到的输入输出信号也要在对应的 VHDL 文件中声明。
图3 仿真文件构成示意图
例如,假定有一个DLL文件名为sim.dll,对应的初始化函数为sim_init,有输入信号in1,in2,输出信号 out1,out2,可以这样编写对应的 VHDL 文件 (sim.vhd):
library ieee;
use ieee.std_logic_1164.all;
entity sim is
port(
in1: in std_logic;
in2: in std_logic;
out1: out std_logic;
out2: out std_logic;
);
end entity sim;
architecture dll of sim is
attribute foreign : string;
attribute foreign of dll : architecture is "sim_init sim.dll”
begin
end;