10实验报告Word下载.docx
- 文档编号:7741117
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:16
- 大小:44.13KB
10实验报告Word下载.docx
《10实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《10实验报告Word下载.docx(16页珍藏版)》请在冰点文库上搜索。
2、认真阅读显示出八行八列的黑白相间的图案的verilog代码(640*480的分辨率),掌握编写类似代码的思路。
3、修改给定的分辨率为1280*1024的代码,显示出实验要求的黑白格团。
主要修改三点:
a、x和y的位数,由于分辨率要达到1280,所以x和y的位数至少要有11位。
b、修改输入频率,把25MHZ改为108MHZ(通过宏模块)。
c、always显示输出模块内有一些问题,需要作相应修改。
代码如下:
modulelab10_VGA_Controller_640480_v
(//--VGASide
outputBLANK,//:
outstd_logic;
--像素空白控制,0不输出像素点,1输出像素点
outputSYNC,//:
--同步信号
outputVGA_CLK,//:
--像素时钟
outputreghs,//
outputregvs,//:
--行同步、场同步信号
outputreg[9:
0]oRed,//:
outstd_logic_vector(9downto0);
--10位红色
0]oGreen,//:
---
0]oBlue,//:
inputreset,//:
instd_logic;
--SW[0]
inputCLK_0//:
instd_logic);
--50M时钟输入
);
//--VGA
regCLK;
//:
std_logic;
reg[9:
0]rt;
0]gt;
0]bt;
//:
std_logic_vector(9downto0);
reghst;
regvst;
reg[11:
0]x;
//--X坐标
0]y;
//--Y坐标
assignBLANK=1'
b1;
assignSYNC=1'
assignVGA_CLK=CLK;
altpll3altpll2_inst(
.inclk0(CLK_0),
.c0(CLK)
);
/*always@(posedgeCLK_0)//--二分频电路
begin
CLK=~CLK;
end*/
always@(posedgeCLKornegedgereset)//--行区间像素数(含消隐区)
if(!
reset)
x=0;
else
begin
if(x==1687)
x=0;
else
x=x+1;
end
end
always@(posedgeCLKornegedgereset)//--场区间行数(含消隐区)
y=0;
begin
if(y==1065)
y=0;
else
y=y+1;
end
end
always@(posedgeCLKornegedgereset)//--行同步信号产生(同步宽度96,前沿16)
reset)hst=1'
elsehst=(x>
=1328&
&
x<
1440)?
1'
b0:
always@(posedgeCLKornegedgereset)//--场同步信号产生(同步宽度2,前沿10)
begin
reset)vst=1'
elsevst=(y>
=1025&
y<
1028)?
always@(posedgeCLKornegedgereset)//--行同步信号输出
if(!
reset)hs=1'
b0;
elsehs=hst;
always@(posedgeCLKornegedgereset)//--场同步信号输出
reset)vs=1'
elsevs=vst;
/*always@(posedgeCLKornegedgereset)//--XY坐标定位控制
begin
reset)
rt=10'
b0000000000;
gt=10'
bt=10'
end
if(x<
640&
480)
if(x>
0&
x<
213)//--X方向控制,分为3列,
begin
bt=10'
gt=10'
end
if(x>
=213&
426)
b1111111111;
gt=10'
else
rt=10'
gt=10'
end
if(y<
240)
gt=10'
//--Y方向控制,分为2行
end
rt=10'
bt=10'
*/
always@(posedgeCLKornegedgereset)
if(!
1280&
1024)
if((x>
160)||(x>
=320&
480)||(x>
=640&
800)||(x>
=960&
1120))
begin//then--X方向控制,分为3列,
if(y<
128)//then--Y方向控制,分为2行
begin
rt=10'
end
else
begin
if(y>
=128&
y<
256)//then
rt=10'
gt=10'
bt=10'
end
=256&
384)//then
rt=10'
gt=10'
bt=10'
end
=384&
512)//then
rt=10'
gt=10'
bt=10'
end
else
begin
=512&
640)//then
begin
rt=10'
gt=10'
bt=10'
end
else
768)//then
begin
end
else
if(y>
=768&
896)//then
begin
rt=10'
gt=10'
bt=10'
end
else
begin
end
elseif((x>
=160&
320)||(x>
=480&
640)||(x>
=800&
960)||(x>
=1120&
1280))
begin
else
if(y>
begin
else
if(y>
begin
else
if(y>
if(y>
else
if(y>
begin
rt=10'
gt=10'
bt=10'
end
else
end
end
end
end
end
else
begin
gt=10'
end
end
always@(hstorvstorrtorgtorbt)//--色彩输出
if(hst==1'
b1&
vst==1'
b1)
oRed=rt;
oGreen=gt;
oBlue=bt;
oRed=0;
oGreen=0;
oBlue=0;
endmodule
五、实验心得
通过本次计算机组成原理的课程设计,我们了解了显示器的基本工作原理和一些基本概念,如:
像素,分辨率等。
同时,在查找源代码错误的过程中,我们体会到了编写代码要有严谨的态度,否则会让一些细节方面的错误影响整个功能的实现,因为细节方面的问题是很难察觉的。
六、实验结论
显示器是通过高速扫描屏幕中的像素点的内容来显示各种图片的。
像素点又分为行区间像素点和场区间像素点,其中还包含消隐区。
在扫描的过程中,不同的分辨率需要对应不同的扫描频率。
七、实验思考题
1、为什么要对输入的50MHZ的信号进行二分频,产生一个25MHZ的信号?
答:
需要根据不同的分辨率确定不同的扫描频率,对于640*480的分辨率需要25MHZ的输入频率,所以要进行二分频。
2、如何根据分辩率、帧频计算像素点频率?
帧频=像素点频率/分辨率
2、对于640*480的像素,考虑消隐区,每行像素数为多少,每场行数为多少?
每行像素为640,每场行数为480。
3、对于640*480的像素,由行同步和场同步计数矢量产生行同步信号和场同步信号。
对于行同步:
656--752为何电平?
其余应为何电平?
656-752应为低电平,其余为高电平
对于场同步:
490--492为何电平?
490-492应为低电平,其余为高电平
4、如何控制色彩输出?
通过RGB三原色的叠加控制色彩输出。
6、如何控制显示输出在屏幕的位置?
根据计算像素点在屏幕的位置来控制显示输出。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)