background image

下找到,将.

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