下找到,将.
mif 文件加载到 ROM 中,实现对 ROM 的初始化。
3.2 累加控制模块
累加控制模块如图
3 所示,为了实现波形选择性输出,本设计在累加控制部分增加了
选择器,即图
3 的 sel 模块,作为系统寻址地址的高两位,实现对波形查找表的范围选择功
能。累加器
Altaccumulate0 的输出做为累加控制模块的低 32 位的输出,实现在指定范围内
对查找表进行寻址。此设计方法相当于做了一个多路数据选择器。四位拨扭开关作为
sel 模块
的输入控制,将寻址地址转换成所需波形首地址,即可实现对波形选择的控制。
Adder 模块
将
sel 和 Altaccumulate0 模块输出进行位拼接运算。其部分代码如下:
always@(posedge clk)
begin
addr<={q,32’b0}+{2’b0,result};
end
设计中为了节省
ROM 的容量而采用相位截断的方法,取累加器输出的高十位作为
ROM 的寻址地址来进行查表。
3.3 LCD 12864 口核设计
对于
Altera SOPC Builder 未提供的一些外设接口模块,用户可以通过自定义逻辑方法
在
SOPC 设计中添加自己开发的 IP 核,通过 Avalon 的读写时序对各个设备进行操作。本设
计通过构建
IP 核来直接控制 Nios
Ⅱ 和 LCD12864 的接口,按照指定的时序将波形参数显示
在
LCD 上。在 SOPC Builder 中自己定义 component,并把液晶显示模块看成外部存储器,
直接做成
Avalon 总线 Slave 设备,IP 核设计包含软件部分和硬件部分,需要写 HDL 模块,
定义控制状态、数据寄存器和控制位,描述组件与
Avalon 总线的接口以及组件与液晶屏的
接口。系统编辑器从文件中读取
I/O 信号和参数信息。其次对 LCD 模块进行初始化,由于
SOPC Builder 中的 LCD12864 控制模块已经考虑了 LCD 的读写时序,所以使用 NIOS
Ⅱ IDE