1. Breve descripción
Utilice vivado para personalizar el paquete axi-full master IP, y también empaquetar una IP esclava para facilitar la simulación de la señal.
2. IP del paquete
1) Abra vivado y realice las siguientes operaciones
2) Seleccione la opción axi
3) Cambie el nombre
4) Seleccione el tipo completo, seleccione Master y haga clic en siguiente
5) Finalmente, la opción predeterminada es agregar la IP a la biblioteca de IP, y no es necesario editarlo ahora.
6) El esclavo tiene el mismo proceso que el anterior, recuerde cambiar el nombre y finalmente establecer el predeterminado como se muestra en la figura.
3. Cree un proyecto bd
No hablaré del proceso, todos deberían saberlo.
4. Incentivos de simulación
Recuerde generar el contenedor y luego crear una instancia del puerto del contenedor en el incentivo.
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/03/01 18:28:32
// Design Name:
// Module Name: tb_sim
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module tb_sim();
reg axi_ACLK; // AXI 总线时钟
reg axi_ARESETn; // 系统复位信号,低电平有效
reg r_in_key; // 模拟按键,正脉冲
wire w_err; // 状态指示,异常
wire axi_txn_done;
AXI_TEST_wrapper AXI_TEST_wrapper_inst(
.axi_error (w_err ),
.axi_init_axi_txn (r_in_key ),
.axi_txn_done (axi_txn_done ),
.clk_100M (axi_ACLK ),
.rst_n (axi_ARESETn )
);
parameter PERIOD = 2;
always begin
#(PERIOD/2);
axi_ACLK = ~axi_ACLK;
end
initial
begin
axi_ACLK = 1'b0;
axi_ARESETn = 1'b1;
r_in_key = 1'b0;
#(10*PERIOD);
axi_ARESETn = 1'b0;
#(2*PERIOD);
axi_ARESETn = 1'b1;
#(4*PERIOD);
r_in_key = 1'b1;
#(2*PERIOD);
r_in_key = 1'b0;
end
endmodule
5. Inicie la simulación
Utilizo la co-simulación de modelsim y vivado. Miramos directamente la forma de onda de simulación.
1) Se puede ver directamente que el lado maestro escribe directamente los datos primero y luego lee los datos.
2) Como se muestra en la figura, el valor predeterminado de IP es 16 ráfagas, así que escriba la dirección primero y luego escriba 16 datos.
3) Observe la lectura. Igual que escribir, primero escriba la dirección y luego lea 16 ráfagas de datos, pero estos datos no son continuos y hay un intervalo de ciclo de reloj.
6. Resumen
Axi-full está aquí, está muy claro, el siguiente paso es transformar.