J'écris un environnement de vérification pour une conception qui comprend un bus AXI. Quelles sont les propriétés nécessaires dans les transactions AXI en lecture/écriture?Quelles sont les propriétés nécessaires dans une transaction axi en lecture/écriture?
Ma transaction ressemble à ci-dessous. Dois-je ajouter autre chose?
typedef enum bit [3:0] { LENGTH_[1:256] } length_e;
//----------------------------------------------------------------------
//Transaction
//----------------------------------------------------------------------
class axi_transaction extends uvm_sequence_item;
bit [3:0] id;
bit [31:0] address;
length_e length;
transfer transfers[];
int unsigned delay;
endclass
class transfer extends uvm_sequence_item;
rand bit[31:0] data;
rand int unsigned delay;
// ...
endclass
Il existe de nombreuses propriétés que vous voudrez peut-être établir. Vous pouvez probablement en découvrir beaucoup en lisant attentivement la spécification AXI et en cherchant des cas où il est écrit "X doit faire Y", par exemple, vous voudrez peut-être exiger qu'un maître soit valide et que l'esclave ne soit pas prêt, le maître maintient sa demande jusqu'à ce qu'elle soit prête. Au-delà de la spécification elle-même, il peut exister d'autres propriétés spécifiques à l'application que vous souhaitez vérifier. Par exemple, les bits "utilisateur" sont des signaux définis par l'utilisateur que vous pouvez vous attendre à adopter d'une certaine manière. En tout cas, ce serait un projet. –
Voici les [spécifications AXI] (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0022b/index.html) et la [spécification AXI4] (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0051a/index.html). – AndresM