可编程逻辑器件设计及应用试验报告.docx

上传人:b****2 文档编号:13973630 上传时间:2023-06-19 格式:DOCX 页数:32 大小:2.49MB
下载 相关 举报
可编程逻辑器件设计及应用试验报告.docx_第1页
第1页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第2页
第2页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第3页
第3页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第4页
第4页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第5页
第5页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第6页
第6页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第7页
第7页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第8页
第8页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第9页
第9页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第10页
第10页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第11页
第11页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第12页
第12页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第13页
第13页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第14页
第14页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第15页
第15页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第16页
第16页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第17页
第17页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第18页
第18页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第19页
第19页 / 共32页
可编程逻辑器件设计及应用试验报告.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

可编程逻辑器件设计及应用试验报告.docx

《可编程逻辑器件设计及应用试验报告.docx》由会员分享,可在线阅读,更多相关《可编程逻辑器件设计及应用试验报告.docx(32页珍藏版)》请在冰点文库上搜索。

可编程逻辑器件设计及应用试验报告.docx

可编程逻辑器件设计及应用试验报告

HarbinInstituteofTechnology

 

]

可编程逻辑器件设计及应用

实验报告

\

实验一:

电路图方法设计:

异步16分频

一、实验内容

1、熟悉ISEM的安装及使用

2、熟悉电路图方式的输入方法;

3、熟悉ISE环境下的波形仿真

4、学习SIE安装过程

5、建立一个新的工程(cpld9500系列)

6、输入电路图异步16分频,如图1-1所示:

图1-1

二实验结果

1、异步16分频电路图如图1-2所示:

图1-2

2、建立测试波形方法仿真激励图形,如图1-3所示:

图1-3

3、引脚约束条件如下:

NET"CLK"LOC="P6";

NET"CLR"LOC="P7";

NET"O1"LOC="P42";

NET"O2"LOC="P37";

NET"O3"LOC="P40";

NET"O4"LOC="P39";

4、最终仿真结果如图1-4,1-5所示:

图1-4

图1-5

三实验结果讨论分析

通过本次试验,初步掌握了ISE的使用方法,通过ISE自带库文件完成电路的搭建,实现了对输入时钟的2分频,4分频,8分频和16分频,通过最终的试验验证得到了正确的试验结果。

 

 

指导教师签字:

实验二电路图方法分层设计:

全加器

一、实验内容

1、建立一个新的工程(cpld9500系列)

2、建立一个独立的电路图(All_ADD)

3、输入电路图:

一位全加器

图2-1一位全加器

4、建立测试波形方法仿真激励图形

图2-2波形仿真激励

5、功能仿真

记录结果,分析正确性。

6、生成电路模块

图2-3模块建立

7、利用电路模块设计8位全加器,(新电路图或者顶层电路图)

图2-48位全加器(顶层电路图)

8、建立测试波形方法仿真激励图形

图2-58位全加器波形仿真激励

9、学习总线数据预置方式:

通过使用相同名字来对总线进行连接设置,和总线数据格式。

二实验结果

一位全加器功能仿真结果:

图2-6功能仿真结果

8位全加器功能仿真结果一(无进位):

图2-7功能仿真结果

8位全加器功能仿真结果二(有进位):

图2-8功能仿真结果

三实验结果讨论分析

本次试验充分体现了模块化设计思想,首先我们运用库文件实现了一位全加器,也即实验中的ALL_ADD模块,在实现此模块后进行仿真分析,确定无误后,运用8个一位全加器实现实现8位全加器,考虑进位。

在实验中进一步熟悉了软件的使用流程和具体的实际操作如操作总线结构等基本操作,可谓知行合一。

指导教师签字:

实验三Verilog语言方法设计:

8位全加器

一、实验内容

1、建立一个新的工程(cpld9500系列)

2、建立一个Verilog模块(All_ADD8)

图3-1建立一个新的verilog模块

3、输入全加器

图3-2输入全加器

4、建立测试波形方法仿真激励图形

测试波形一:

图3-3测试波形

测试波形二:

图3-4测试波形

5、功能仿真

记录结果,分析正确性。

6、建立Verilog测试模块

源代码如下:

7、功能仿真

记录结果,分析正确性。

进位结果。

理解掌握语言描述。

8、8位可预置计数器(试验扩展)

9、建立一个Verilog模块(Counter8)

源代码如下:

`timescale1ns/1ps

moduleextentest_v;

reg[7:

0]D;

regCLK;

regCLR;

regPR;

wire[7:

0]Q;

extendexuut

.D(D),

.CLK(CLK),

.CLR(CLR),

.PR(PR),

.Q(Q)

);

parameterPERIOD=200;

alwaysbegin

CLK=1'b0;

#(PERIOD/2)CLK=1'b1;

#(PERIOD/2);

end

initialbegin

D=0;

CLR=0;

PR=0;

#100;每隔100ns变换一次输入数据

PR=1;D=17;CLR=0;

#100;

PR=0;

#100;

end

endmodule

10、学习总线数据预置方式

11、自己建立仿真过程(波形+Verilog测试)

二实验结果

测试波形一结果:

图3-5仿真测试结果

测试波形二结果:

图3-6仿真测试结果

文件测试结果:

图3-7仿真测试结果

更改数据测试结果:

图3-8仿真测试结果

三实验结果讨论分析

本次试验与上次试验的不同之处在于:

上次试验是通过库文件链接电路图先实现1位全加器,在此基础上运用8个1位全加器按照逻辑链接在一起实现8位全加器,而在本次试验中,我们运用的是Verilog语言实现,个人感觉这种更加简单清楚,首先是这种方法省去了电路链接的麻烦,其次是它的实现过程中只需要编程实现模块即可,不用先生成1位全加器,然后再去实现8位全加器,编程仿真实现想要的结果后可以直接生成8位全加器模块,操作极为简单。

指导教师签字:

实验四LED显示模块设计

一、实验内容

1、在上一工程基础上继续做

a、工程名称:

MyProject1

b、选择器件:

Spartan3E

2、建立LED显示模块(verilog)

图4-1LED显示模块

功能说明:

a、数据输入:

4bits;

b、数据输出;8bits;

c、功能:

翻译16进制到7段LED显示(参照显示16进制数对照表)

过程说明:

a、建立Verilog模块;

b、建立Verilog仿真;

c、验证模块正确性;

3、建立显示数据锁存分配模块(verilog)

图4-2数据锁存模块

功能说明:

a、数据输入:

8bits。

b、CK:

锁存信号,上升沿锁存输入数据

c、数据输出:

锁存输出最后输入的两字节数据,分别对应4位输出

过程说明:

a、建立Verilog模块;

b、建立Verilog仿真;

c、验证模块正确性;

4、建立电路图方式顶层模块显示模块

图4-3顶层

5、联合验证;

二实验结果

输入波形一:

图4-4测试波形

得到的相应仿真结果图一:

图4-5仿真结果

输入波形二:

图4-6测试波形

得到的相应仿真波形结果图二:

图4-7仿真结果

三实验结果讨论分析

本次试验依然使用的是Verilog语言,个人觉得实现的关键之处在于输入输出的对应,我们对照共阴极发光二极管的显示模式,为每一个输入通过编程实现其对应的输出即可。

本次试验更深入了解的Verilog编程语言,以及电路设计的模块化实现,在本次试验中引入了时钟,对时钟的生成与操作有了初步的了解为下一次试验打下了基础,与此同时,我还学习到了Verilog语言一些特有的编程规则。

 

指导教师签字:

实验五串行口设计

一、实验内容

预备知识:

串行通信:

数据一位一位次序发送或接收。

异步通信:

它用一个起始位表示字符的开始,用停止位表示字符的结束。

其每帧的格式如下:

在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。

用这种格式表示字符,则字符能一个接一个地传送。

无奇、偶校验的工作模式(10位):

有奇、偶校验的工作模式(11位):

(1)波特率:

在串行通信中,用波特率来描述数据的传输速度,所谓波特率,即每秒钟传送的二进制位数,其单位是bps(bitspersecond).它是衡量串行数据速度快慢的重要指标.

国际上规定的一个标准波特率系列:

110,300,600,1200,1800,2400,4800,9600,,,,,56Kbps

(2)奇偶校验:

对传送数据中1的个数进行校验,若二者不一致,则说明数据传送过程中出现了差错.奇偶校验的特点是按字符校验,数据传输速度将受到影响,一般只用于异步串行通信中。

实验过程:

1、建立一个新的工程

a、工程名称:

MyProject1

b、选择器件:

Spartan3E

2、建立模式控制模块(verilog)

图5-1模式控制模块

功能说明:

a、DataIn:

控制数据输入、8bits;低4位用于选择波特率模式,最高位用于选择奇、偶校验是否有效;

b、WR:

控制数据写入,1bit;上升沿锁存输入数据;

c、FreOut:

波特率模式选择输出,DataIn低4位,由WR上升沿锁存保持;0—9变化;大于9不变化。

d、ModOut:

奇、偶校验模式选择;DataIn最高位,由WR上升沿锁存保持;

e、默认值:

FreOut=6;ModOu=1;

过程说明:

a、建立Verilog模块;

b、建立Verilog仿真;

c、验证模块正确性;

源代码如下:

moduleModeCon(DataIn,WR,FreOut,ModOut);

input[7:

0]DataIn;

inputWR;

output[3:

0]FreOut;

outputModOut;

regModOut=1;ataIn(DataIn),

.WR(WR),

.FreOut(FreOut),

.ModOut(ModOut)

);

initialbegin

DataIn=0;

WR=0;

reSel(FreSel),

.CLK(CLK),

.CLK_S16(CLK_S16),

.CLK_S(CLK_S)

);

initialbegin

//InitializeInputs

//Wait100nsforglobalresettofinish

#100;

FreSel=1001;

//Addstimulushere

end

endmodule

3、建立发送数据模块(verilog)

图5-3发送数据模块

功能说明:

a、DataIn:

发送数据输入、8bits;

b、WR:

控制数据写入,1bit;上升沿锁存输入数据;写入后下一个CLK上升沿开始立即发送数据

c、CLK:

时钟射入,对应波特率时钟;

d、Mod:

模式输入,0对应无奇偶校验;1对应有奇偶校验;

e、TX:

串行数据输出,平时高电平,当有数据输入后,下一个CLK上升沿开始立即发送数据;

f、BUSY:

空闲指示,当TX输出时为高,其它时间为低;

过程说明:

a、建立Verilog模块;

b、建立Verilog仿真;

c、验证模块正确性;

d、加入顶层模块Serial

e、进行联合验证;

源代码如下:

moduleTxMod(DataIn,WR,CLK,Mod,TX,BUSY);

input[7:

0]DataIn;

inputWR;

inputCLK;

inputMod;

outputTX;

outputBUSY;

regTx=1;

regBusy=0;

reg[7:

0]data=0;

regflag=0;

reg[3:

0]count=1;

regnum=0;

always@(posedgeWR)

begin

data<=DataIn;

num<=data[0]+data[1]+data[2]+data[3]+data[4]+data[5]+data[6]+data[7];

flag<=1;

end

always@(posedgeCLK)

begin

if(flag==1)

begin

Busy<=1;

if(count==1)

Tx<=0;

elseif(count==2)

Tx<=data[0];

elseif(count==3)

Tx<=data[1];

elseif(count==4)

Tx<=data[2];

elseif(count==5)

Tx<=data[3];

elseif(count==6)

Tx<=data[4];

elseif(count==7)

Tx<=data[5];

elseif(count==8)

Tx<=data[6];

elseif(count==9)

Tx<=data[7];

elseif(count==10)

begin

if(Mod==0)

Tx<=1;

elseif(Mod==1)

Tx<=num;

count<=0;

flag<=0;

end

count<=count+1;

end

else

Tx=1;

Busy=0;

end

endmodule

4、建立发送数据模块(verilog)

图5-4发送数据模块

功能说明:

a、RX:

串行数据输入、1bits;

b、CLK:

时钟输入,对应16倍波特率时钟。

目的:

提高采样率,在第一时刻发现起始脉冲;同时对每一位进行3次采样(时间平均),已剔出干扰;

c、Mod:

模式输入,0对应无奇偶校验;1对应有奇偶校验;

d、TX:

串行数据输出,平时高电平,当有数据输入后,下一个CLK上升沿开始立即发送数据;

e、DataOut:

接收转换后数据;

f、EN:

接收完成使能,平时为第电平,接收完成后保持一个波特率周期高电平。

g、ERR:

奇偶校验错误指示,平时为第电平,接收完成后保持一个波特率周期高电平。

过程说明:

a、建立Verilog模块;

b、建立Verilog仿真;

c、验证模块正确性;

d、加入顶层模块Serial

进行联合验证;

二实验结果

(1)模式选择模块

在Mod=1时,进行如下仿真波形设置:

图5-5测试波形设置

得到如下仿真结果:

图5-6仿真结果

在Mod=0时,进行如下仿真波形设置:

图5-7测试波形设置

得到如下仿真结果:

图5-8仿真结果

在FreOut=6;ModOut=1默认值时,设置仿真测试波形如下:

图5-9测试波形设置

得到仿真结果如下:

图5-10仿真结果

(2)波特率发生模块

仿真波形设置如下:

图5-11测试波形设置

仿真结果如下:

图5-12仿真结果

(3)数据发送模块

仿真测试输入波形如下:

图5-13测试波形设置

仿真结果如下:

图5-14仿真结果

(4)接收模块

测试波形设置如下:

图5-15测试波形设置

仿真结果如下:

图5-16仿真结果

图5-17仿真结果

(5)联合仿真验证

由上述四个模块构成的顶层文件如下图所示:

图5-18顶层文件

对其进行波形仿真验证,测试波形设置如下图:

图5-19测试波形

图5-20测试波形

测试结果如下:

图5-21仿真结果

图5-22仿真结果

三实验结果讨论分析

实验中的串行口模块由4个基本模块组成,分别是模式控制模块、波特率产生模块、接收模块和发送模块,本次试验令我收获最大的地方就是就是对设计流程的逐步熟悉,从模式控制模块、波特率控制模块、接收模块到发送模块一步一步实现,在每一步仿真验证后最终将每个部分合在一起实现本次试验。

本次试验耗时时间最长,前期的预备工作及其重要,多和同学讨论最终才能顺利完成本次试验。

指导教师签字:

@

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2