可综合ROM实现-verilog
本文实现可以综合的ROM模块,由verilog实现,该方法可以用于芯片固化程序的存储。
1、基本单元
1.1、最基本cell
1 |
|
该模块定义了一个八位(可以通过WIDTH更改数据宽度)的存储单元。
1.2、两个存储单位
1 |
|
这个模块可以存储两个8位的数据,当地址a取0和1时候将对应输出数据d0和d1的值,即只有两个地址。
1.3、八个存储单位
1 |
|
该模块则可以存储十六个8位数据,即有十六个地址(深度为3)。
1.4、十六个存储单位
1 |
|
这个模块则存储十六个单位的8位数据,该模块由之前的mux8和mux2组合而成,由此我们可以组合出更多存储量更大的模块,如1K、2K的容量。
2、使用和测试
2.1 使用
使用时候,只需要在数据输入端口写入初始的数据,比如要存储的固化程序等,可以更改WIDTH参数以适应不同的位数;这里以存储十六个数据 1-16为例,调用模块如下:
1 |
|
当我们需要数据时候给定地址即可获取对应地址处的数据了。
2.2 仿真
编写仿真模块如下:
1 |
|
- 波形结果如下:
著作权归本网站(https://makerinchina.cn)所有,转载请注明来自 MakerInChina.