实验三常用模块电路的设计.docx

上传人:b****5 文档编号:7934337 上传时间:2023-01-27 格式:DOCX 页数:17 大小:786.29KB
下载 相关 举报
实验三常用模块电路的设计.docx_第1页
第1页 / 共17页
实验三常用模块电路的设计.docx_第2页
第2页 / 共17页
实验三常用模块电路的设计.docx_第3页
第3页 / 共17页
实验三常用模块电路的设计.docx_第4页
第4页 / 共17页
实验三常用模块电路的设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验三常用模块电路的设计.docx

《实验三常用模块电路的设计.docx》由会员分享,可在线阅读,更多相关《实验三常用模块电路的设计.docx(17页珍藏版)》请在冰豆网上搜索。

实验三常用模块电路的设计.docx

实验三常用模块电路的设计

实验三常用模块电路的设计

一、实验目的:

1、掌握QuartusII宏功能模块的设计方法。

2、掌握VHDL设计ROM和RAM的方法。

3、掌握三态总线的设计与使用方法。

4、掌握4×4键盘扫描模块设计方法。

5、掌握PS2接口电路设计方法。

6、了解640×480VGA显示控制电路的原理和设计方法。

二、实验的硬件要求:

1、EDA/SOPC实验箱。

2、计算机。

三、实验原理

1、QuartusII宏功能模块应用

Altera提供多种方法来获取AlteraMegafunctionPartnersProgram(AMPP™)和

MegaCore®宏功能模块,这些函数经严格的测试和优化,可以在Altera特定器件结构中发挥出最佳性能。

可以使用这些知识产权的参数化模块减少设计和测试的时间。

MegaCore和AMPP宏功能模块包括应用于通信、数字信号处理(DSP)、PCI和其它总线界面,以及存储器控制器中的宏功能模块。

Altera提供的宏功能模块与LPM函数有:

①算术组件:

包括累加器、加法器、乘法器和LPM算术函数;

②门电路:

包括多路复用器和LPM门函数。

③I/O组件:

包括时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位

收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。

④存储器编译器:

包括FIFOPartitioner、RAM和ROM宏功能模块。

⑤存储组件:

包括存储器、移位寄存器宏模块和LPM存储器函数。

宏功能模块应用可以通过元件库中的“Megafunctions/LPM”或“MegaWizardPlug-InManager”进行参数化设置并使用。

其操作方法请参考“QuartusII基于宏功能模块的设计”。

2、ROM和RAM存储器设计

用FPGA实现ROM和RAM存储器可以用逻辑单元,也可以用内含的EAB/ESB,一般用VHDL直接构造存储器时用的是逻辑单元,对于内含EAB/ESB的FPGA芯片,使用“MegaWizardPlug-InManager”定制存储器,可选择使用EAB/ESB,这样可以节约大量的逻辑单元。

一般较大规模的ROM和RAM使用“MegaWizardPlug-InManager”定制,而较小规模,且有特殊特性要求时用VHDL直接构造。

3、

四、实验内容:

1、QuartusII宏功能模块实现ROM存储器模块

①新建一个原理图文件。

②使用“MegaWizardPlug-InManager”向导,按图3.1的步骤定制一个32×8bit的ROM模块。

③建立内存初始化文件

QuartusII能接受的LPM_ROM中的初始化数据文件的格式有2种:

MemoryInitializationFile(.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。

内存初始化文件可以手工编写,也可以用其它软件生成。

本例数据量较小,可以在QuartusII中直接file→new→……MemoryFile→MemoryInitializationFile,然后填写每个存储单元的数据(如:

0~31依次递增)即可。

图3.1使用“MegaWizardPlug-InManager”定制ROM

④生成图3.2所示的ROM模块添加管脚,编译并仿真测试。

图3.2测试ROM模块

2、QuartusII宏功能模块实现RAM存储器模块

RAM与ROM定制方法相似,按图3.3定制一个32×8bit一端口RAM,该RAM读写共用一个地址总线,“wren”为写入信号,高电平有效。

除了一端口RAM,还有二端口、三端口RAM,也可以采用读写地址总线分开的形式。

还有一种形式,读写数据采用同一条总线,应使用三态总线,且读写控制必须分开进行。

图3.332×8bit一端口RAM

图3.4为仿真波形,注意观察哪些地址位写入了什么数据?

图3.4一端口RAM仿真波形

3、用VHDL设计ROM和RAM

用VHDL可以非常灵活地设计各种特性的存储器。

图3.5和图3.6分别是实现ROM和RAM的VHDL代码。

图3.5一端口ROM存储器VHDL代码

图3.5的ROM存储器采用组合逻辑电路方式设计,从下面的功能仿真波形可以看到,输出“d”与地址“adr”同步变化。

请改用时序逻辑电路方式实现,该怎么描述?

输出“d”与地址“adr”的时序关系是怎样的?

图3.6的RAM读写数据采用一条总线“d”,“d”应使用“inout”类型端口,注意代码中是如何描述三态总线的?

(要点:

没有数据输出的时候(只有wr=0并且cs=1时才输出数据),“d”应设置为高阻态,即释放总线,允许总线输入数据。

图3.6一端口RAM存储器VHDL代码

在仿真设置时,双向端口“d”设置的值是外部电路输入值,而“d”总线最终的值显示在d[i]~result上。

在数据输出的时候(wr=0并且cs=1),“d”应设置为高阻态(即外部电路应释放总线)。

图3.7为一端口RAM存储器仿真波形。

图中,当cs=1、wr=1时(对应地址04~11)写入数据,此时应设置“d”总线的值(如04~11依次递增),数据被写入相应地址。

其余时候“d”设置为高阻(“Z”)。

cs=1、wr=0时读出数据,后面一段显示读出的各个地址位的数据(未写入数据的地方保持初始化的“0”),数据输出“d”与地址“adr”是否有延时?

为什么?

cs=0(片选无效),无论wr的值是什么,总线都保持高阻态“Z”。

图3.7一端口RAM存储器仿真波形

4、用ROM作为流水灯数据输入,并测试

用16个LED灯可以显示出各种奇妙的显示效果,实际上是在每个时钟节拍输出16位的数据显示在LED上。

需要显示的数据预先写好存储在ROM中,设置ROM中的数据就可以显示任意的图案。

按图3.8设计一个ROM存储器和一个计数器。

ROM存储器位宽:

16bit,容量:

256个字,用LED.MIF作为初始化文件(下载LED.TXT改名为LED.MIF)。

计数器(counter)也可以用宏功能模块(在“Arithmetic”中的“LPM_COUNTER”),采用“q”为8位输出的默认设置,即可得到一个0~255的加法计数器。

计数器输出作为ROM地址输入,这样可以按时钟节拍依次输出0~255各个地址的数据。

将图3.8的原理图作为顶层文件编译后下载到实验箱。

时钟频率使用10HZ,输出端连接16个LED灯。

图3.8ROM作为流灯的输入测试电路

5、4×4键盘扫描模块设计

①图3.11是4×4键盘阵列电路原理图。

行字符ROW[3..0]表示一行的状态,COL[3..0]表示一列的状态。

使用时采用行扫描方式检测按键,即设置COL[3..0]中某一位为“0”,其余为“1”,如COL=“1011”(COL[2]=’0’)表示选择第三行(COL[2]对应一行);然后检测ROW[3..0]的值,全“1”说明没有任何键按下,为“0”一位表示该列有键按下,如ROW=“0101”表示第二和第四列(ROW[2]、ROW[4]对应列)被按下;结合COL和ROW即可确定按键值(如“8”和“C”)。

图3.114×4键盘阵列电路原理图

②图3.12是键盘扫描模块VHDL源码。

注意:

是如何判断键盘按下时刻的?

图3.12键盘扫描模块VHDL源码

图3.13键盘扫描模块仿真波形

③图3.13是键盘扫描模块仿真波形,注意:

如何设置Kr的值?

④在实验箱上测试4×4键盘扫描模块,可按图3.14连接,为便于观察,使用1Hz频率时钟信号,Kr、Kc连接FPGA引出线ROW[3..0]和COL[3..0],同时将其分别输出到4个LED显示,BCD_OUT通过译码器显示在数码管上。

图3.144×4键盘扫描模块测试电路

6、PS/2接口键盘读取模块设计

①PS2通信协议是一种双向同步串行通迅协议。

通迅的两端通过CLOCK(时钟信号端)同步,并通过DATA(数据端口)交换数据。

任何一方如果想要抑制另外一方的通迅时,只需要把CLOCK拉到低电平。

PS2控制接口仅使用到两条传输端口,一为频率端口,另一则为数据端口如图3.15所示,且此传输埠必为三态(Tri-State)并具有双向(bidirectional)特性。

PS2传输产品上,常见为鼠标与键盘,两者的驱动原理均相同,仅扫描码(scancode)不同。

因此我们以PS2键盘为例进行说明。

②PS2标准,规范每笔数据传输包含起始位(startbit)、扫描码(scancode)、奇同位检查(oddparity)、以及终止位(stopbit)共计11位,并以双向串行数据传输的方式,达到通信的目的。

且当主机端(host)或从机端(slave)并无传送或接收数据时,数据传输端口及频率均将升为高电位。

图3.16所示为每一笔数据传输所包含之内容如下:

a.起始位(“0”)

b.8位数据宽度的扫描码(scancode)。

c.奇同位检查,使扫描码与奇同位加起来1的数字为奇数个。

d.终止位(“1”)

图3.16PS/2接口时序

③键盘其实就是一个大型的按键矩阵,它们由安装在电路板上的处理器(叫做“键盘编码器”)来监视着。

虽然不同的键盘可能采用不同的处理器,但是它们完成的任务都是一样的,即监视哪些按键被按下,哪些按键被释放了,并将这些信息传送到主机。

每个键盘被分配了唯一的通码(键盘按下时发送的编码)和断码(键盘释放时发送的编码),这样主机通过查找唯一的扫描码就可以确定是哪个按键被按下或释放。

PS2键盘扫描码见“键盘扫描码表”

④图3.16是PS/2接口键盘接收模块的VHDL源码,在对其进行仿真时,可以将“keyboard_clk_filtered”信号输出查看。

图3.16PS/2接口键盘接收模块VHDL源码

⑤图3.17是PS/2接口键盘接收模块仿真波形,为便于分析,把“keyboard_clk_filtered”信号和“SHIFTIN”信号连接到端口“filtered_out”和“SHIFTIN_out”输出显示。

图3.17PS/2接口键盘接收模块

仿真波形

⑥按图3.17设计,即可在实验箱的数码管上显示键盘的扫描码。

“Sel_time2”模块用实验二中的数码管扫描模块修改一下即可(只是用2个数码管,SEL绑定到SEL[0]管脚),代码如图3.18:

图3.17PS/2接口键盘接收模块测试电路

图3.18修改后的数码管扫描模块

7、VGA显示控制

VGA显示器在显示过程中主要由五个信号来控制,分别是R、G、B、HS和VS。

其中R、G、B分别用来驱动显示器三个基色的显示,即红、绿和蓝,HS是行同步信号,VS是场同步信号。

在做本实验时,由于没有任何显示器驱动,所以显示器工作在默认状态,分辨率:

640×480,刷新率:

60Hz。

在此状态下,当VS和HS都为低电平时,VGA显示器显示亮的状态,其正向扫描过程约为26us。

当一行扫描结束后,行同步信号HS置高电平,持续约6us后,变成低电平,在HS为高电平期间,显示器产生消隐信号,这就是显示器回扫的过程。

当扫描完一场后,也就是扫描完480行以后,场同步信号VS置高电平,产生场同步,此同步信号可以使扫描线回到显示器的第一行第一列位置。

显示器显示的时序图如图3.19所示:

图3.19VGA时序

以640*480@60Hz模式为例,图中Ta为同步头信号(行同步头96像素、场同步头2行),Tb+Tc为同步后信号(行40+8像素、场25+8行),Td为图像显示时间(行640像素、场480行),Te+Tf为同步前信号(行8+8像素、场8+2行)。

总共一行800像素(约32us,其中行显示过程约为26us,行同步脉冲加上同步前后约6us);一帧图像525行(其中显示过程约为480行,场同步脉冲加上同步前后45行)。

图3.20为VGA显示控制模块VHDL代码,通过FPGA在显示器上显示一些条纹或图案,由key[1..0]两个开关的组合控制CRT显示器上能够显示横条纹、竖条纹以及棋盘格子图案。

稍微修改代码即可由本模块实现VGA扫描控制,将屏幕行列位置hcnt,vcnt输出,由外部电路计算当前颜色值,通过imag_GRB端口返回,即可显示由ROM提供或外部模块设置的图像。

图3.20VGA显示控制模块VHDL代码

五、实验步骤:

1.首先打开QuartusII软件,新建工程。

2.按照自己的想法,编写原理图或VHDL文件程序。

3.对自己的设计进行编译并仿真。

4.仿真无误后,根据附录一的引脚对照表,对实验中用到的输入输出进行管脚绑定,然后再重新编译一次。

5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。

6.观察实验结果是否与自己的预期想法相吻合。

六、实验报告要求

1.总结几种方法设计ROM和RAM的心得体会。

2.如何使用三态总线?

3.如何检测一个信号(非时钟信号)的跳变?

4.其它电路模块如何读取4×4键盘扫描模块输出的按键编码?

(注意:

按一次键只读取一个键值)

5.其它电路模块如何读取PS/2接口键盘读取模块输出的扫描码?

(注意:

按一次键只读取一个键值)

6.如何利用VGA显示控制模块显示ROM中存储的图像数据?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1