英特尔Agilex® 7嵌入式存储器用户指南

ID 683241
日期 4/10/2023
Public
文档目录

3.3.2. Mixed-Port Read-During-Write模式

mixed-port read-during-write模式应用于simple dual-port RAM模式,true dual-port和simple quad-port RAM。 两个端口使用同一时钟对同一存储器地址执行读写操作:一个端口从该地址读取数据,另一个端口对该地址写入数据。
表 15.  Mixed-Port Read-During-Write模式中RAM的输出模式
输出模式 存储器类型 描述 支持的操作模式
New Data MLAB

对不同端口的read-during-write操作会导致MLAB被寄存的输出显示为在数据写入MLAB存储器后,下一个时钟上升沿上的New Data

仅当输出被寄存时才可使用此模式。

  • Simple Dual-port RAM
Old Data M20K, MLAB

对不同端口的read-during-write操作会导致RAM输出显示特定地址上的Old Data值。

对于MLAB,仅当输出被寄存时才可使用此模式。

  • Simple Dual-port RAM
Don't Care M20K, MLAB

RAM产生Don't CareUnknown值。

  • 对于M20K,英特尔 Quartus Prime软件不分析读写操作之间的时序。
  • 对于MLAB,要使能该功能,就必须在编译嵌入式存储器仿真模型和运行仿真时,将RDW_DONT_CARE_IS_X定义标志(define flag)包含于仿真命令中。
    下面是将定义标志添加到仿真命令的示例:
    vlog -sv -timescale 1ps/1ps +define+RDW_DONT_CARE_IS_X -work msim_precompile $env(QUARTUS_DIR)/eda/sim_lib/altera_lnsim.sv
  • 简单双端口模式
  • True Dual-port RAM (仅适用于M20K)
New_a_old_b M20K 对不同端口的read-during-write操作会导致RAM输出在端口A反映新数据,在端口B反映旧数据。
  • Quad-port RAM
表 16.  Mixed Port Read-During-Write输出行为此表列出并描述了mixed-port read-during-write模式的输出行为。这些行为仅适用于MLAB模块。
RAM: 2-PORT Intel® FPGA IP设置 输出行为
参数 使能的参数选项 altera_syncram参数

(read_during_write_mode_mixed_ ports)

Read-During-Write时的输出数据 MLAB Atom (在Chip Planner中可见)
Mixed Port Read-During-Write for Single Input Clock RAM

How should the q_a and q_b outputs behave when reading a memory location that is being written from the other ports?(读取从其他端口写入的存储器位置时,q_a和q_b应该的行为)

Old Data old_data Old data 4 New Data
New Data new_data New data New Data
Don't Care dont_care Don't care 5 Don't Care
图 24. Mixed-Port Read-During-Write: New Data模式此图显示了New Data模式的mixed-port read- during-write行为的采样功能波形。


图 25. Mixed-Port Read-During-Write: Old Data模式此图显示为Old Data模式的mixed-port read- during-write行为的功能波形示例。


图 26. Mixed-Port Read-During-Write: Don't Care模式此图显示为Don't Care模式的mixed-port read-during-write行为的功能波形示例。此行为仅适用于M20K模块。


图 27. Mixed-Port Read-During-Write: New_a_old_b模式此图显示为New_a_old_b模式的mixed-port read-during-write行为的功能波形示例。
4 Old data是通过外部软核逻辑实现的,因为MLAB模块自身仅支持new data。
5 输出数据是don't care,因为IP不能保证在read-during-write时输出数据的亚稳定性。