你真的需要同一主题的三个主题吗?
我认为最简单的方法是将奇偶校验数据存储在一个“正常”字节中。
因此,不是在9位模式下使用Block RAM(8位数据加1位奇偶校验),而是将其置于18位模式,在另一个字节中存储8位数据和1位奇偶校验。
由于字节具有单独的写使能信号,因此可以使用奇偶校验位的第二个写使能。
如果你有足够的RAM可以使用,这应该很好用。
另一种选择可能是将数据保存在块RAM中,并将(小得多)奇偶校验保存在分布式RAM中。
如果你在1K * 18模式下使用RAM,那么它应该只需要几片即可为你提供1K * 2的奇偶校验RAM。
当然,对于小型RAM,您可以在分布式RAM中完成所有工作。
对于非常大的RAM,您可能正在以64K * 1模式运行Block RAM,并且八个并排获取一个字节的数据。
添加奇偶校验(使用写入启用)就像添加第九个RAM一样简单。
或者你可以使用最“高效”(在空间方面)的方法,即从RAM中读取数据(包括奇偶校验),更新你需要的任何位,然后将其写回。
“奇偶校验写使能”位仅选择是否更新奇偶校验位。
尽管如此,我真的不得不质疑你为什么要在奇偶校验位上进行写使能。
如果在更新数据时不更新它,奇偶校验并不是非常有用...
你真的需要同一主题的三个主题吗?
我认为最简单的方法是将奇偶校验数据存储在一个“正常”字节中。
因此,不是在9位模式下使用Block RAM(8位数据加1位奇偶校验),而是将其置于18位模式,在另一个字节中存储8位数据和1位奇偶校验。
由于字节具有单独的写使能信号,因此可以使用奇偶校验位的第二个写使能。
如果你有足够的RAM可以使用,这应该很好用。
另一种选择可能是将数据保存在块RAM中,并将(小得多)奇偶校验保存在分布式RAM中。
如果你在1K * 18模式下使用RAM,那么它应该只需要几片即可为你提供1K * 2的奇偶校验RAM。
当然,对于小型RAM,您可以在分布式RAM中完成所有工作。
对于非常大的RAM,您可能正在以64K * 1模式运行Block RAM,并且八个并排获取一个字节的数据。
添加奇偶校验(使用写入启用)就像添加第九个RAM一样简单。
或者你可以使用最“高效”(在空间方面)的方法,即从RAM中读取数据(包括奇偶校验),更新你需要的任何位,然后将其写回。
“奇偶校验写使能”位仅选择是否更新奇偶校验位。
尽管如此,我真的不得不质疑你为什么要在奇偶校验位上进行写使能。
如果在更新数据时不更新它,奇偶校验并不是非常有用...
举报