blu*_*ift 5 simulation fpga vhdl
我有一个VHDL组件,它实现了DRAM测试序列.它包含一个子实体,它是DRAM控制器.
我想模拟(调试)DRAM测试序列,但是为DRAM控制器使用一个简单的假存根而不是真正复杂的东西.
有没有办法我可以设置它,也许使用VHDL配置来使用简单版本的控制器实体进行模拟?我对模拟很陌生,对VHDL一般没有太大的经验.
这是使用针对Spartan-6的Xilinx ISE和ISim,如果这有所不同的话.
一种不使用配置的方法:
请记住,您可以为每个实体创建多个体系结构.
因此,您可以将测试平台中的单元实例化为
Controller_1 : entity work.DRAM_controller(simple)
port map ( ...
Run Code Online (Sandbox Code Playgroud)
要么
Controller_2 : entity work.DRAM_controller(rtl)
port map ( ...
Run Code Online (Sandbox Code Playgroud)
"简单"和"rtl"是两种架构.为此,您可能必须将实体和两个体系结构放在不同的文件中; Xilinx工具在处理不常见的情况方面不是很擅长(有一次他们告诉我配置不是设计单位!)
然后,您可以在测试平台中使用任一架构实例化DRAM控制器.
正如vermaete所说,您还必须测试简化的架构.一种方法是在其上运行单元测试,方法是在另一个测试平台中实例化两个控制器,每个架构一个,并比较每个操作的输出.
有趣的是,Ashenden的直接实体实例化示例(VHDL ch 5.4的Designer指南,我1996年版的第136页)是一个DRAM控制器!
编辑:(这是一个评论,但它太长了)
对于单元测试,两个控制器都可以在测试平台中实例化,一切都很好.
对于系统测试,我不明白DRAM控制器是在UUT内部(顶级设计) - 你想要一个用于合成和简单DRAM测试的实例化(真实的),而另一个(简单的)用于完整的DRAM测试.是的,配置是正确和最干净的方法.在顶层设计(UUT)中实例化控制器ENTITY,并在配置中选择体系结构.
然而,如果配置不起作用的后备计划,则有一个不太干净的替代方案.为顶级实体创建2个体系结构; 只在他们为控制器选择的拱门中有所不同.在实例化测试平台中的顶级实体时,可以选择任一架构.但这很痛苦,因为你必须让这两个版本保持同步.