南邮软件设计6 13Word格式文档下载.docx
- 文档编号:21527917
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:195.22KB
南邮软件设计6 13Word格式文档下载.docx
《南邮软件设计6 13Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南邮软件设计6 13Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
微型计算机
2:
quartusII开发软件
同组人员学号及姓名
参考文献
《VHDL开发精解与实例剖析》詹仙宁云耕编著
《VHDL数字电路及系统设计》江思敏编著
报告内容
实验目的:
1.使学生全面了解如何应用该硬件描述语言进行高速集成电路设计;
2.通过软件使用、设计与仿真环节使学生熟悉EDA-VHDL开发环境;
3.通过对基本题、综合题的设计实践,使学生掌握硬件系统设计方法(自底向上或自顶向下),熟悉VHDL语言三种设计风格,并且培养学生应用VHDL语言解决实际问题的能力。
实验设备:
微型计算机2:
实验课题:
一、实验内容:
设计一个D型触发器,输入CK(时钟信号,↑表示上升沿时刻),D(数据),Clear端(“0”时清零),输出Q,真值表如图。
CKClearD
Q
╳0╳
↑10
↑11
1
二、原理图
三、功能分析
Clear端为0时,无论D为何值,Q置0。
当Clear为1时,遇到输入时钟信号CK上升沿时,Q=D。
算法框图:
四、时序仿真图
结果分析:
当clear为0时,Q端置0;
clear为1时,Q在CK上升沿处跳至与D相等的值。
仿真结果与分析相同,结果正确。
五、调试过程与问题
这个实验是第一次使用quartusII开发软件和VHDL语言,虽然是一个简单的问题,但是也花费了不少时间。
首先顶层实体名称必须与设计顶层文件的文件名一致,与VHDL设计中的顶层实体名一致。
具体做法是Assignments中Settings里General标签中的Top-levelentity要与VHDL程序中ENTITY后面的文件名一致。
不然程序无法编译,这个问题一开始也是困扰了很久的。
成功编译程序之后,一开始不知道如何设置仿真的波形,通过网上搜索和翻阅一些参考书,花了一些时间之后终于找到了波形仿真相关按钮的位置、并掌握了波形仿真的步骤。
时序仿真成功后,通过分析时序图发现,当clear端为0时,只有遇到CK上升沿Q端才会置0,与题目要求不符。
于是重新调整语句,将clear是否为0作为第一个判断条件。
一开始信号周期选的较小,由于存在延时,不便于观察结果是否正确。
选取较大周期信号后,延时基本可以忽略。
六、VHDL源程序
见附录一
设计一种信号发生器使VGA显示器能显示出彩色条纹。
二、设计思路
需要一个时钟输入信号,根据输入信号产生水平扫描计数从而产生行同步信号HS,再根据水平扫描计数的进位产生竖直扫描计数从而产生场同步信号,完成扫描过程。
之后在根据要求将水平或竖直方向的扫描信号的显示时间分为8组,显示出8个彩条。
信号扫描时序图:
时间
垂直扫描
水平扫描
时间长度
时钟周期
等效行数
时钟周期数
Ts
16.07ms
385600
482
33.3μs
800
Tdisp
16ms
384000
480
26.67μs
640
Tpw
66.7μs
1600
2
6.67μs
160
三、算法框图
HS=0,VS=0时,水平正向扫描分为8种颜色,HS=1产生行消隐信号RGB=000
VS=1产生场消隐RGB=000,约为两个行周期。
在程序成功编译之后开始时序仿真,设定好输入波形之后开始时序仿真发现输出信号全为0,于是将中间信号加入到时序仿真中,发现波形正常,考虑到可能是仿真时长不够,输出信号还未开始变化,将仿真时长设定为1ms之后,成功看到按顺序变化的RGB信号。
之后开始对于题目中给出的时间要求,更改程序中的相关数据。
由于正向扫描过程约为26us,为640个时钟周期,需要水平扫描信号为24MHz,而输入时钟信号只有12MHz,时钟信号倍频相对困难,于是在一个时钟周期内扫描两个水平像素点来保证正向扫描约为26us,约为6us的行消隐信号约为144个时钟周期。
见附录二
实验小结:
这是第一次接触VHDL语言,通过查阅参考书,从零做起,从实际的题目中一点一点了解了VHDL语言的用法。
先理解书上一些实际的例题,然后自己去更改、编写程序,从而完成了实验课题。
只有通过自己动手实验,才能更快的掌握新的知识,才能发现纯理论学习中发现不了的问题。
这次的实验基本都是通过自学完成的,在实验过程中遇到的问题大多都是通过参考书、网络或是和同学讨论解决的,大大提高了自己的学习能力。
实验分为基本题和综合题的形式。
基本题较简单,很好得帮助我了解VHDL语言以及quartusII开发软件的使用。
之后的综合题较为复杂,帮助我进一步学习VHDL语言,以及题目相关的其他知识。
无论是基本题还是综合题在实验过程中都是遇到了各种各样的问题,困难重重,通过自己的努力完成这次实验收获还是不小的。
附录:
一、
libraryieee;
useieee.std_logic_1164.all;
entityHYis
port(D,CK,clear:
instd_logic;
Q:
outstd_logic);
end;
architectureaofHYis
signalQ_temp:
std_logic;
begin
pl:
process(CK)
begin
ifclear='
0'
then
Q_temp<
='
;
elsifclear='
1'
ifCK'
eventandCK='
Q_temp<
=D;
endif;
endif;
Q<
=Q_temp;
endprocess;
附录二:
libraryiEEE;
useIEEE.STD_LOGIC_1164.ALL;
entityB11011013is
port(Clk:
inSTD_LOGIC;
Rst:
Red:
outSTD_LOGIC;
Green:
Blue:
H_Sync:
V_Sync:
outSTD_LOGIC);
endB11011013;
architectureBchavioralofB11011013is
signalCnt_H:
integerrange0to800;
signalCnt_V:
integerrange0to482;
signalClk_H:
std_logic:
signalClk_V:
signalRGB:
std_logic_vector(0to2);
Red<
=RGB(0);
GreeN<
=RGB
(1);
Blue<
=RGB
(2);
---12MHZ作为水平扫描信号的时钟
p1:
process(Clk)
Clk_H<
=Clk;
endprocess;
--水平扫描计数,并产生竖直扫描计数的时钟
p2:
process(Clk_H,Rst)
if(Rst='
)then
Cnt_H<
=0;
Clk_V<
elsif(Clk_H'
eventandClk_H='
if(Cnt_H>
=800)then
Cnt_H<
else
=Cnt_H+2;
400)then
Clk_V<
---竖直扫描计数
p3:
process(Clk_V,Rst)
Cnt_V<
elsif(Clk_V'
eventandClk_V='
if(Cnt_V=482)then
Cnt_V<
=1;
=Cnt_V+1;
--产生水平扫描信号和竖直扫描信号
p4:
process(Clk,Rst)
H_Sync<
V_Sync<
elsif(Clk'
eventandClk='
=641)then
H_Sync<
if(Cnt_V>
480)then
V_Sync<
--输出颜色控制
p5:
process(Clk,Rst,Cnt_V)
RGB<
="
000"
elsif(Cnt_V>
caseCnt_His
when1to80=>
RGB<
when81to160=>
001"
when161to240=>
010"
when241to320=>
011"
when321to400=>
100"
when401to480=>
101"
when481to560=>
110"
when561to640=>
111"
whenothers=>
XXX"
endcase;
endBchavioral;
设计成绩评定
评分内容
具体要求
总分
评分
上机时间
上机时间是否达到要求的学时,按照实际情况给与一定的成绩。
10分
报告审阅结果
报告结构严谨,文字通顺,用语符合技术规范,图表清楚,书写格式规范,不与别人雷同。
30分
验收结果
原理
原理清楚,能较好地理解课题任务并提出实施方案。
20分
完成情况
独立完成规定设计任务,论证、分析、设计、计算、结构、建模、实验正确合理,有一定的创新。
操作
能熟练操作相关工具软件,并利用工具软件完成设计任务。
总成绩(五分制)
100分
指导教师评阅意见
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南邮软件设计6 13 软件设计
![提示](https://static.bdocx.com/images/bang_tan.gif)