基于FPGA的单脉冲发生器Word文件下载.docx

上传人:b****5 文档编号:17480430 上传时间:2022-12-06 格式:DOCX 页数:12 大小:248.45KB
下载 相关 举报
基于FPGA的单脉冲发生器Word文件下载.docx_第1页
第1页 / 共12页
基于FPGA的单脉冲发生器Word文件下载.docx_第2页
第2页 / 共12页
基于FPGA的单脉冲发生器Word文件下载.docx_第3页
第3页 / 共12页
基于FPGA的单脉冲发生器Word文件下载.docx_第4页
第4页 / 共12页
基于FPGA的单脉冲发生器Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于FPGA的单脉冲发生器Word文件下载.docx

《基于FPGA的单脉冲发生器Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的单脉冲发生器Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

基于FPGA的单脉冲发生器Word文件下载.docx

(二)、引脚定义

信号名

输入/输出

功能描述

clk

Input

时钟频率50M占空比1:

1。

rst_n

低电平有效,程序重新执行,计数器清零。

data[7:

0]

8位控制脉冲信号的宽度。

key

按键控制pulse输出。

pulse

Output

输出信号。

4.2设计方案

(1)系统功能描述

(1)分频模块:

输入为总的时钟50M,经过分频以后变为100HZ。

分频模块主要是根据系统时钟,对a做加1操作,没来一个系统时钟的上升沿就对a加1,然后与16进行比较,如果相等,则把a清0,然后分频时钟clk_1翻转,a又重新计数,接着又与16比较,相等则clk_1翻转,不等则继续加1。

如此循环,最后生成分频时钟clk_1。

(2)计数模块:

脉宽参数端data接收8位的数据,经数据预置端clr装载脉宽参数,在计数允许端有效后便开始计数。

该计数器设计成为减法计数的模式,当其计数到0时,输出端pulse由高电平变为低电平。

便可得到单脉冲的输出。

②系统功能描述时序关系

可编程单脉冲发生器的操作过程是:

(1)预置脉宽参数。

(2)按下复位键,初始化系统。

(3)按下启动键,发出单脉冲。

4.3功能验证方案

1:

验证对象及目的:

本验证方案将描述对“可编程单脉冲发生器”的验证。

2:

在本验证过程中将验证一下内容:

1>

验证环境和工具:

a:

使用ModelSim仿真工具;

b:

使用QuartusII工具;

2>

仿真确认:

a:

分频模块:

由于系统提供的频率为50MHz,通过控制计数a使输出频率为100HZ。

编写完成后,可通过查看仿真波形查看验证的正确性。

分析:

通过对a计数输出分频后的时钟信号clk_1。

b:

计数模块:

计数模块主要把输入的8位脉冲宽度data传给count,通过对count的计数与0比较判断是否相等来翻转输出的脉冲信号。

通过key键时能后,把输入信号data传给count,并输出脉冲信号pulse高电平,此后count做减1操作,当count减到0时,脉冲信号pulse输出低电平。

通过给data不同的值,会得到不同的脉冲宽度的信号。

编写好测试激励后,通过查看仿真图形可以查看验证的正确性。

key为按键启动信号,当key为低电平时,把8位脉冲宽度给计数信号count并开始计数,同时输出脉冲信号高电平,当count计数为0时,脉冲pulse信号变为低电平。

c:

总的仿真波形:

通过传送给data不同的1、2、3、4、5、6等6个值,会得到6种不同脉冲宽度的脉冲信号,如图:

Clk:

系统时钟;

rst_n:

复位信号;

key:

按键启动信号;

Data:

脉冲宽度信号;

pulse:

脉冲信号;

count:

中间变量,计数信号;

Clk_1;

分频后的频率信号;

a:

计数信号,用于分频;

4.4电路设计源代码,功能仿真激励源代码及功能仿真结果报告

1>

源代码:

modulehm(clk,rst_n,data,pulse,key/*,load*/);

inputclk,rst_n,key;

input[7:

0]data;

outputpulse/*,load*/;

reg[7:

0]count;

regpulse;

regclk_1;

reg[4:

0]a;

always@(posedgeclkornegedgerst_n)

begin

if(~rst_n)

begin

clk_1=0;

a<

=5'

d0;

end

else

if(a==5'

d16)

clk_1=~clk_1;

else

=a+5'

d1;

end

always@(posedgeclk_1ornegedgerst_n)

begin

if(~rst_n)

count<

=0;

pulse<

end

=data;

if(key==0)

=1;

=count-8'

if(count==8'

d0)

=8'

if(pulse==0)

count<

end

endmodule

测试激励:

moduletest;

regclk;

regrst_n;

regkey;

reg[7:

wirepulse;

always#1clk=~clk;

hmhm(.clk(clk),.rst_n(rst_n),.data(data),.pulse(pulse),.key(key)/*,.load(load)*/);

initial

clk<

rst_n<

key<

data<

#1rst_n<

#1data<

#1key<

#200key<

d2;

d3;

#400key<

d4;

d5;

#100key<

d6;

endmodule

3>

仿真结果:

详细仿真图如下:

从图中可以详细的看出输入data为1个脉冲宽度的情况。

全局的仿真图:

从这个图中可以看出脉冲宽度为1、2、3、4、5、6的6个脉冲宽度。

4.5综合及布局布线报告和引脚分布报告

1>

:

综合,利用QuartusII软件综合后的结果如下图:

布局布线:

电路结构:

4>

引脚定义:

4.6后仿真结果报告

加入网表文件的后仿真的结果如图:

后仿真所得到的信号图:

4.7硬件测试结果报告

因为设备有限,所以,未能完成对硬件的测试。

4.8对结果和结论的问题讨论

自己所做的这个题目相对是比较简单的,刚开始做的时候只用到了一个计数的模块,并没有加入分频模块,但是最后做完之后感觉这样的话会不会太简单,所以在此基础上又加入了分频模块。

从仿真图中可以看出会有几点问题:

如果想要根据输入的脉冲宽度data输出特定的脉冲宽度的信号,就必须在输入data数

据后,用key按键启动输出信号,其中key键必须全程都按下,否则对输出的脉冲宽度会产生影响。

2>

如果想要往开发板上下载的话,程序还要进行改进:

因为按键的按下和松开都会有不稳定的状态,所以要加入按键去抖;

针对第一个问题,要做出一定的改进,我的想法是加入一个状态变量,记录key键按下时的状态,用这个状态变量驱动脉冲的输出。

3>

data数据的读入会有一定的延时,所以要加入模块用来等待data信号全部读入。

5.课程设计的心得体会

通过本次为时两周的FPGA课程设计,让我更深的认识到了基于FPGA的开发流程。

从最开始的技术规范开始,到最后的下载到板子上测试,每一步都十分的重要。

这次课设,自己做的题目是“可编程单脉冲发生器”,对于这个题目,刚开始脑子里的想法就是,这个可变的脉冲信号可以通过把输入的data赋值给一个count,通过对count信号做减1操作控制输出的脉冲宽度。

基于这个想法,我开始了我这次课设的旅程。

这个想法在课设开始第二天的时候就实现了,那基于对自己的严格要求,自己对这个题目在原先只有技术模块的基础上又加入了分频模块。

其实分频模块的原理和最开始实现脉冲的原理有异曲同工之处。

所以这个模块也很快就实现了。

接下来的时间,我又相继的做了其它的一些题目,包括:

“简易的LED流水灯”、“CRC校验”、“出租车计价器”等几个题目,也逐步的实现了题目的要求。

通过这次课程设计,我从中学习到了很多基于书本上的理论知识加以实践的经验,也在其中遇到问题的同时对问题的解决加深了对某些问题的理解。

总之,每次的课程设计都受益颇深。

6.参考资料等

《基于Verilog的FPGA设计基础》

——杜慧敏、李宥谋、赵全良编著

西安电子科技大学出版社

《VerilogHDL数字电路设计与综合》

——(美)SamirPalnitkar著

——夏宇闻、胡燕祥等译

电子工业出版社

 

西安邮电学院电子工程学院FPGA课程设计过程考核表

学生姓名

韩萌

班级/序号

电科0901/14

承担任务实验室(单位)

微电子学系

所在部门

电子工程学院

实施时间

2012年9月10日至2011年9月21日

具体内容

第一周

第一周主要完成题目的分析及技术规范的制订,根据技术规范设计模块,并对各个模块进行功能仿真,以验证其正确性.

第二周

第二周主要完成综合及后仿真,对中间出现的各种问题进行调试,最后完成设计报告.

指导教师(师傅)姓名

张丽果

职务或职称

讲师

指导教师(师傅)

对学生的评价

学习态度

□认真□一般□不认真

学习纪律

□全勤□偶尔缺勤□经常缺勤

实践能力

□很强□一般□较差

指导教师(师傅)对学生专业知识或社会实践能力等情况的意见

指导教师(师傅)签字

年月日

西安邮电学院电子工程学院FPGA课程设计成绩鉴定表

韩萌

进行时间

2011年9月10日至2011年9月21日

成绩鉴定

学习内容(20分)

与教学任务计划结合程度(10分)

与专业培养结合程度(6分)

其它(4分)

评价

(20分)

实践能力(10分)

学习态度(6分)

学习纪律(4分)

报告鉴定

(60分)

报告内容与实践过程紧密结合(15分)

报告内容与教学计划内容紧密结合(15分)

报告质量(主题、结构、观点、逻辑、资料、字数30分)

评阅教师姓名

职称

成绩

评语

评阅教师签字

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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