在网上看到关于Altera的SCFIFO核的介绍中,都提到了它可以支持同时读写的功能,但未看到具体的仿真情况。Altera官方的ug中,也未看到关于此的明确描述(也可能是我读文档不仔细)。因此,对该问题进行modelsim仿真,将仿真情况记录于此,大家一起探讨。
首先生成一个256B的SCFIFO核,其主要参数如下:
defparam
scfifo_component.add_ram_output_register = "ON",
scfifo_component.almost_empty_value = 64,
scfifo_component.almost_full_value = 128,
scfifo_component.intended_device_family = "Cyclone III",
scfifo_component.lpm_numwords = 256,
scfifo_component.lpm_showahead = "OFF",
scfifo_component.lpm_type = "scfifo",
scfifo_component.lpm_width = 8,
scfifo_component.lpm_widthu = 8,
scfifo_component.overflow_checking = "ON",
scfifo_component.underflow_checking = "ON",
scfifo_component.use_eab = "ON";
生成的模块外形如下图所示。