计组实验报告.docx

上传人:b****9 文档编号:25777832 上传时间:2023-06-13 格式:DOCX 页数:15 大小:73.38KB
下载 相关 举报
计组实验报告.docx_第1页
第1页 / 共15页
计组实验报告.docx_第2页
第2页 / 共15页
计组实验报告.docx_第3页
第3页 / 共15页
计组实验报告.docx_第4页
第4页 / 共15页
计组实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计组实验报告.docx

《计组实验报告.docx》由会员分享,可在线阅读,更多相关《计组实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

计组实验报告.docx

计组实验报告

 

计算机组成原理

实验报告

实验1:

VERILOG设计基础

 

专业班级:

14级计算机二班

学号:

14048001姓名:

杨娜

学号:

14048003姓名:

周蓉

实验地点:

理工楼901实验时间:

2016年5月14日

 

实验十VGA显示控制器的设计

一、实验目的

1、学习VERILOG的基本语法和编程规则

2、掌握通用寄存器等常用基本数字模块的VERILOG描述和基本设计方法

3、理解带使能控制和异步清零的8位寄存器的设计原理

4、掌握使用VERILOG设计和验证带使能控制和异步清零的8位寄存器的方法

5、掌握移位寄存器的设计方法

二、实验任务

1、设计一个带使能控制和异步清零的8位寄存器REG8X,实现8位输入的锁存,在时钟的上升沿处得到一个8位的输出和一个8位的反向输出,将结果显示在发光二极管。

模块的端口描述如下:

端口名

端口方向

端口位宽

端口功能

Resetn(cclr)

in

1

输入清零信号,低电平时有效,有效时输出Q立即变为0

Enable(rl)

in

1

输入使能信号,高电平有效,有效时芯片工作

Control

in

1

输出使能信号,高电平有效,有效时信号输出

Clock

in

1

输入时钟信号,正跳变(上升沿)有效

D

in

8

输入数据源D

Q

out

8

输出寄存器值Q,当Resetn为高电平且Clock发生正跳变时,Q=D;当Resetn信号为低电平时Q的值立即变为0。

Qb

out

8

输出信号Qb,其值为Q的反

 

模块的参考物理结构如下:

 

模块的使用注意事项

1.数据源D(7..0)一直加在寄存器的数据输入端;

2.周期性的时钟信号Clock一直加在寄存器的时钟输入端

3.使能信号Enable控制寄存器是否接受数据。

当Enable='0'时,寄存器不接受数据,保持原来的状态不变;当Enable='1'时,在时钟信号Clock正跳变时,寄存器接受并保存当时D(7..0)的数据;

4.本寄存器其它方面的功能与上述的寄存器相同。

完成的参考电路图如下:

dout=q

2、设计一个有左、右移位功能的8位寄存器REGSHIFT8,并仿真验证。

模块的端口描述如下:

端口名

端口方向

端口位宽

端口功能

Resetn

Sw17

in

1

输入清零信号,低电平时有效,此时输出Q立即变为0

Clock

Key0

in

1

移位时钟信号,正跳变(上升沿)有效

Mode

Sw1615

in

2

工作模式控制信号:

01左移位,10右移位,00或11时不移位Q=D。

D

in

8

输入数据源D

Q

out

8

输出寄存器值Q,当Resetn为低电平时Q的值立即变为0;当Resetn为高电平且Clock发生正跳变时,接收D的值。

Lin

Sw14

in

1

输入信号,其值为左移位的移入信号。

Lout

out

1

输出信号,其值为左移位的移出信号。

Rin

Sw13

in

1

输入信号,其值为右移位的移入信号。

Rout

out

1

输出信号,其值为右移位的移出信号。

三、实验内容

1、通过输入数据先进行计算,并通过实验进行验证REG8X。

(1)、将清零信号Resetn(sw17)设为0,将输入信号D(sw7~sw0)设为10101010,观察输出信号Q(ledr7~ledr0)和Qb(ledg7~ledg0),观察并记录输出。

(2)、将清零信号Resetn(sw17)设为1,在时钟信号处输入一个上升沿(按下key0),观察并记录输出。

(3)、将输入信号D(sw7~sw0)设为01010101,观察并记录输出。

(4)、在时钟信号处输入一个上升沿(按下key0),观察并记录输出。

(5)、自行完善设计表格,观察并记录测试输出。

实验数据表

清零信号Reset

使能信号Enable

输入信号D(二进制)

时钟信号Clock

输出信号Q(二进制)

输出信号Qb(二进制)

0

0

10101010

1

00000000

00000000

1

0

10101010

上升沿

10101010

10101010

1

1

10101010

上升沿

10101010

01010101

1

1

01010101

1

01010101

00000000

1

1

01010101

上升沿

01010101

10101010

1

0

10101010

上升沿

10101010

10101010

0

0

10101010

上升沿

00000000

11111111

1

0

11110000

上升沿

11110000

11110000

1

1

11110000

上升沿

11110000

00001111

1

1

11100000

上升沿

11100000

00011111

2、通过输入数据先进行计算,并通过实验进行验证REGSHIFT8。

(1)、测试清零信号Resetn

(2)、测试移位功能

(3)、测试寄存功能

(4)、自行设计表格观察并记录测试输出。

实验数据表

 

三、实验仪器及设备:

1、PC机2、QuartusⅡ9.03、DE2-704、显示器

四、实验步骤

1、编写VERILOG代码

2、功能仿真

进行分析与综合,排除语法上的错误

建立波形仿真文件,输入激励

生成功能仿真网表

进行功能仿真,观察输出结果

3、选择器件

DE2_115开发板的使用者请选择CYCLONEIV4CE115

4、绑定管脚

5、下载验证

DE2_115开发板的下载:

使用USB-Blaster进行下载

代码如下:

1、带使能控制和异步清零的8位寄存器

modulelab1_Preg

#(parameterWEISHU=8)

(inputrL,

inputclk,

inputcclr,

inputcontrol,

input[WEISHU-1:

0]d,

output[WEISHU-1:

0]dout

);

wire[WEISHU-1:

0]w_0;

wire[WEISHU-1:

0]w_1;

wire[WEISHU-1:

0]w_2;

wirew_3;

reg[WEISHU-1:

0]w_dff;

assignw_2=w_0|w_1;

assigndout=(control)?

(w_dff):

{(WEISHU-1){1'bz}};

always@(posedgeclkornegedgecclr)

begin

if(!

cclr)

w_dff<=0;

else

w_dff<=w_2;

end

assignw_0=d&{(WEISHU-1){rL}};

assignw_1={(WEISHU-1){w_3}}&w_dff;

assignw_3=~rL;

endmodule

2、有左、右移位功能的8位寄存器

modulejicunqi(reset,clk,mode,d,q,lin,lout,rin,rout);

inputreset;

inputclk;

input[1:

0]mode;

input[7:

0]d;

inputlin;

inputrin;

output[7:

0]q;

outputlout;

outputrout;

wire[1:

0]mode;

reg[2:

0]countl=3'b000;

reg[2:

0]countr=3'b000;

reg[7:

0]q,lout,rout;

always@(posedgeclkornegedgereset)

begin

if(!

reset)

q<=0;

else

begin

case(mode)

2'b01:

if(lin)

begin

if(countl>3'b111)

countl=3'b111;

countl=countl+3'b001;

q=d<

lout<=q[7];

end

2'b10:

if(rin)

begin

if(countr>3'b111)

countr=3'b111;

countr=countr+3'b001;

q=d>>countr;

rout<=q[7];

end

default:

q<=d;

endcase

end

end

endmodule

引脚分配如下:

1、带使能控制和异步清零的8位寄存器

set_location_assignmentPIN_Y23-tocclr

set_location_assignmentPIN_M23-toclk

set_location_assignmentPIN_Y24-tocontrol

set_location_assignmentPIN_AB26-tod[7]

set_location_assignmentPIN_AD26-tod[6]

set_location_assignmentPIN_AC26-tod[5]

set_location_assignmentPIN_AB27-tod[4]

set_location_assignmentPIN_AD27-tod[3]

set_location_assignmentPIN_AC27-tod[2]

set_location_assignmentPIN_AC28-tod[1]

set_location_assignmentPIN_AB28-tod[0]

set_location_assignmentPIN_H19-todout[7]

set_location_assignmentPIN_J19-todout[6]

set_location_assignmentPIN_E18-todout[5]

set_location_assignmentPIN_F18-todout[4]

set_location_assignmentPIN_F21-todout[3]

set_location_assignmentPIN_E19-todout[2]

set_location_assignmentPIN_F19-todout[1]

set_location_assignmentPIN_G19-todout[0]

set_location_assignmentPIN_G21-toqb[7]

set_location_assignmentPIN_G22-toqb[6]

set_location_assignmentPIN_G20-toqb[5]

set_location_assignmentPIN_H21-toqb[4]

set_location_assignmentPIN_E24-toqb[3]

set_location_assignmentPIN_E25-toqb[2]

set_location_assignmentPIN_E22-toqb[1]

set_location_assignmentPIN_E21-toqb[0]

set_location_assignmentPIN_AA22-torL

2、有左、右移位功能的8位寄存器

set_location_assignmentPIN_M23-toclk

set_location_assignmentPIN_AB26-tod[7]

set_location_assignmentPIN_AD26-tod[6]

set_location_assignmentPIN_AC26-tod[5]

set_location_assignmentPIN_AB27-tod[4]

set_location_assignmentPIN_AD27-tod[3]

set_location_assignmentPIN_AC27-tod[2]

set_location_assignmentPIN_AC28-tod[1]

set_location_assignmentPIN_AB28-tod[0]

set_location_assignmentPIN_AA23-tolin

set_location_assignmentPIN_Y24-tomode[1]

set_location_assignmentPIN_AA22-tomode[0]

set_location_assignmentPIN_AA24-torin

set_location_assignmentPIN_Y23-toreset

set_location_assignmentPIN_H19-tolout[7]

set_location_assignmentPIN_J19-tolout[6]

set_location_assignmentPIN_E18-tolout[5]

set_location_assignmentPIN_F18-tolout[4]

set_location_assignmentPIN_F21-tolout[3]

set_location_assignmentPIN_E19-tolout[2]

set_location_assignmentPIN_F19-tolout[1]

set_location_assignmentPIN_G19-tolout[0]

set_location_assignmentPIN_G21-torout[7]

set_location_assignmentPIN_G22-torout[6]

set_location_assignmentPIN_G20-torout[5]

set_location_assignmentPIN_H21-torout[4]

set_location_assignmentPIN_E24-torout[3]

set_location_assignmentPIN_E25-torout[2]

set_location_assignmentPIN_E22-torout[1]

set_location_assignmentPIN_E21-torout[0]

set_location_assignmentPIN_J17-toq[0]

set_location_assignmentPIN_G17-toq[1]

set_location_assignmentPIN_J15-toq[2]

set_location_assignmentPIN_H16-toq[3]

set_location_assignmentPIN_J16-toq[4]

set_location_assignmentPIN_H17-toq[5]

set_location_assignmentPIN_F15-toq[6]

set_location_assignmentPIN_G15-toq[7]

五、实验心得

从数字电路到计算机组成原理,做了这么多次实验,我觉得实验过程中最重要的就是细心。

按部就班,平心静气地按照要求来做一般不会有什么大问题,但一旦急躁就很容易出错。

还有一方面,千万不要为了贪一点小方便就投机取巧。

对基本原理的掌握是顺利做好实验的基础,在做第二个实验的时候,因为代码设计问题,导致在进行移位的时候出现时钟信号一次,移位只能移一次的情况,所以在代码设计阶段,我们还是应该考虑全面,形成完整的逻辑思考结构,完成更加全面的功能。

六、实验结论

带使能控制和异步清零的8位寄存器,清零信号为高电平,并且使能信号cl也为高电平时,寄存器在时钟信号clk的上升沿出输出。

有左右移位功能的8位寄存器,清零信号为高电平,并根据mode模式进行左右移位操作,左移位时,移出的最高位赋值给Lout,右移位时,移出的最低位给Rout。

六、实验思考题

1、通过行为描述设计8位寄存器和通过结构描述设计8位寄存器的不同点?

答:

行为描述采用进程语句,顺序描述设计实体的行为,即对设计实体按算法的路径来描述,抽象程度较高,注重表达寄存器是如何工作的,无需知道具体电路结构,只需用一种状态来描述;结构描述采用并行处理语句描述设计使体内的结构组织和元件互联关系,它描述了数据流和运动路线,运动方向和运动结果,体现寄存器具体的数据流及其构成,各组成间的联系,总体架构。

两者最主要的区别在于信号传输的过程,行为描述是顺序进行;结构描述是并行进行。

2、移位寄存器是如何工作的,其功能是如何实现的?

答:

 若干个触发器串接起来就构成一个移位寄存器,移位寄存器不仅能够寄存数码,而且具有移位功能。

移位是数字系统和计算机技术中非常重要的一个功能。

如二进制数0101乘以2的运算,可以通过将0101左移一位实现;而除以2的运算则可通过右移一

位实现。

通过模式选择以及时钟信号,来确定是否移位,功能表如下

Reset

CLK

MODE

结果

移位

输出

0

任意

任意

置零

1

上升沿00

Q*=Q

1

上升沿01

Q

左移一位

Q的高位

1

上升沿10

Q

右移一位

Q的低位

1

上升沿11

Q*=D

3、如何给寄存器加入输入、输出控制功能?

答:

在寄存器的结构体中加上对控制端口EN的断言语句来控制输入输出

4、利用时序仿真求出寄存器电路的输出延时,并探究工作频率的增加可能对延迟时间的影响?

答:

由仿真可以看出寄存器的输入输出具有比较大的延时,所以频率高了以后得到的结果就不一定正确

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

当前位置:首页 > 工作范文 > 其它

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

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