【发布时间】:2016-08-23 09:06:46
【问题描述】:
我正在为包含 AXI 总线的设计编写验证环境。
读/写 AXI 事务的必要属性是什么?
我的交易如下所示。我需要添加其他内容吗?
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
【问题讨论】:
-
您可能想要建立许多属性。您可能会通过仔细阅读 AXI 规范并寻找其中说“X 必须做 Y”的情况来发现其中的许多情况,例如,您可能希望要求当主设备断言有效且从设备未准备好时,主设备保持其请求稳定,直到准备好。除了规范本身,您可能还想检查其他特定于应用程序的属性。例如,“用户”位是用户定义的信号,您可能希望以某种特定方式运行。无论如何,这将是一个相当大的项目。
标签: system-verilog uvm