Используйте сгенерированные функции DPI в SystemVerilog

Чтобы использовать сгенерированный компонент DPI в среде SystemVerilog, сначала импортируйте сгенерированные функции с объявлениями “DPI” в вашем модуле SystemVerilog. Затем вызовите и запланируйте сгенерированные функции. Когда вы компилируете код SystemVerilog, который содержит импортированные сгенерированные функции, используйте учитывающий DPI компилятор SystemVerilog и задайте имена файлов компонента.

Следующий пример демонстрирует добавление сгенерированного компонента DPI для блока DPI_blk к модулю SystemVerilog.

  1. Импортируйте сгенерированные функции:

    import "DPI" function void DPI_blk1_initialize();
    import "DPI" function void DPI_blk1_ouptut(output real blk1_Y_Out1);
    import "DPI" function void DPI_blk1_update(input real blk1_U_On1);
  2. Вызовите Initialize функция.

    DPI_blk1_initialize();
  3. Запланируйте output и update вызовы функции:

    DPI_blk1_output( blk1_Y_Out1);
    DPI_blk1_update( blk1_U_In1);

Пример

import "DPI" function void DPI_blk1_initialize();
import "DPI" function void DPI_blk1_ouptut(output real blk1_Y_Out1);
import "DPI" function void DPI_blk1_update(input real blk1_U_On1);

module test_twoblock_tb;

		initial begin
			DPI_blk1_initialization();
		end

		always@(posedge clk) begin
			#1
			DPI_blk1_output(blk1_Y_Out1);
			DPI_blk1_update(blk1_U_In1);
		end

		always@(posedge clk)
			begin
				blk1_U_In1 = blk1_U_In1 + 1.0;
			end