问题描述
实现类型I / O空间的BAR的设计将无法正确仿真,因为当NETGEN生成核心的仿真模型时会出现问题。 PIO示例设计默认启用I / O BAR。
这个问题将如何影响示例设计?
此问题将在9.1i软件版本中修复,该软件版本计划于2007年初发布。这仅在仿真中存在问题,不会影响硬件操作。
解决/修复方法
目前,PIO设计的默认CORE Generator配置支持BAR 0(IO),BAR 1(Mem32),BAR2 / 3(Mem64)和BAR 6(Mem32)。如果运行仿真,则测试平台BAR配置任务将读取BAR 0并将其错误地识别为Mem32 BAR,因为位0未正确清除。 BAR初始化将继续并正确确定BAR 1是Mem32空间,但由于PIO限制仅支持2个Mem32 BAR(其中一个是EROM),因此将标记此BAR不受PIO设计的支持。因此,BAR 1将对测试程序显示为禁用。
当测试程序将Mem32 TLP发送到BAR 0时,内核将不响应Mem32 TLP,因为它认为BAR 0是I / O空间。输出中将显示一条错误消息,指示发送了不受支持的请求。测试程序将超时,因为它期望从核心接收CplD。不会生成UR完成。
但是,默认仿真脚本仅允许执行不执行BAR 0读写的简单类型0配置读取测试。但是,只要运行位于pio_tests.v中的任何测试,就会遇到此问题。在CORE Generator GUI中禁用I / O空间将允许客户解决此问题,直到修复NETGEN。
没有回复内容