电子设计自动化课程设计报告.docx
- 文档编号:11474756
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:14
- 大小:291.09KB
电子设计自动化课程设计报告.docx
《电子设计自动化课程设计报告.docx》由会员分享,可在线阅读,更多相关《电子设计自动化课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
电子设计自动化课程设计报告
电子设计自动化课程设计报告
院系:
信息工程学院
专业:
通信工程
学号:
201215714
姓名:
同组人:
指导教师:
目录
一.设计目的和任务.....................................................................1
二.课程设计要求..........................................................................2
三.考核要求设计步骤..................................................................2
四.设计步骤..................................................................................2
五.题目..........................................................................................2
六.设计方案..................................................................................3
七.程序代码..................................................................................3
八.电路图......................................................................................15
九.状态机状态图..........................................................................15
十.仿真波形图.............................................................................16
十一.管脚分配.............................................................................16
十二.实验效果.............................................................................17
十三.心得和收获.........................................................................17
一、设计目的和任务
电子设计自动化课程设计目的和任务是通过2周的时间,让学生掌握EDA的基本方法,熟悉几种EDA软件(如QuartusII),并能利用EDA软件设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。
二、课程设计要求
1、认真独立的完成课程设计。
2、通过课程设计,加深对所学知识的理解和认识。
3、利用EDA6000实验箱和EDA实验环境完成所选题目的仿真、调试。
4、写出设计报告。
三、考核要求
1、设计与总结报告 20%
2、系统仿真能力 20%
3、实际动手调试能力 40%
4、创新能力 10%
5、态度和纪律 10%
四、设计步骤
1、FPGA芯片内部设计:
(FPGA选用EDA6000实验箱上的ACEX1K30TC144-3型。
)
(1)所选题目的原理和方案设计;
(2)用VerilogHDL语言设计源代码和测试代码;
(3)QuartusII中进行综合适配;
(4)用QuartusII做后仿真;
(5)下载到EDA6000实验箱上的ACEX1K30TC144-3型FPGA,硬件验证;
(6)在EDA6000软件界面中观察上述验证情况。
2、撰写设计报告。
五、题目
流水灯
实验原理用不同的方案实现流水灯的设计,通过各种不同的实现方案,学生可以充分感受到FPGA设计的灵活性,同时可以学到各种不同的编码方式,加深对语法和设计流程的理解。
实验目的:
学习编码、设计规范和技巧
学习Quartusii和Modelsim的使用以及联合调试高级技巧
学习Testbench的编写技巧和规范
学习有限状态机FSM
学习用计数器方式分频
学习IP核的使用—PLL
学习FPGA层次化设计技巧
六、设计方案
用一个按键sel来控制流水灯的流向,而流水灯的流动是通过状态机来实现的,设计一个流水灯,由四个LED组成,流动间隔一秒,可以按键控制流向(向左还是右)
实验效果:
按下复位键(P67)则四个LED全亮,松开则开始流水效果,按下SEL(P57)则在等待一次闪动后,开始向相反方向流水(原因是在下一个时钟周期内才检测按键)
七、程序代码
1,计数器
moduleclk_div(
clk,
reset_n,
clk_out
);
parametercnt_top=26'd10;
inputclk;
inputreset_n;
outputclk_out;
regclk_out;
reg[25:
0]clk_cnt;
always@(posedgeclkornegedgereset_n)
begin
if(!
reset_n)
begin
clk_out<=1'b0;
clk_cnt<=0;
end
else
begin
if(clk_cnt==cnt_top-1)
begin
clk_out<=~clk_out;
clk_cnt<=0;
end
else
clk_cnt<=clk_cnt+1'b1;
end
end
endmodule
2,状态机
modulestate_machine(
clk,
reset_n,
sel,
Q
);
inputclk;
inputreset_n;
inputsel;
output[3:
0]Q;
reg[3:
0]Q;
wireclk_out;
reg[2:
0]sts;
parameterst1=2'b00,
st2=2'b01,
st3=2'b10,
st4=2'b11;
always@(posedgeclk_outornegedgereset_n)
begin
if(!
reset_n)
begin
Q<=4'b1111;
sts<=st1;
end
else
case(sts)
st1:
begin
Q<=4'b0001;
if(sel)
sts<=st2;
else
sts<=st4;
end
st2:
begin
Q<=4'b0010;
if(sel)
sts<=st3;
else
sts<=st1;
end
st3:
begin
Q<=4'b0100;
if(sel)
sts<=st4;
else
sts<=st2;
end
st4:
begin
Q<=4'b1000;
if(sel)
sts<=st1;
else
sts<=st3;
end
default:
sts<=st1;
endcase
end
endmodule
3,流水灯总程序
moduleled_liushuideng(
clk,
reset_n,
sel,
Q
);
inputclk;
inputreset_n;
inputsel;
output[3:
0]Q;
reg[3:
0]Q;
wireclk_out;
reg[2:
0]sts;
parameterst1=2'b00,
st2=2'b01,
st3=2'b10,
st4=2'b11;
always@(posedgeclk_outornegedgereset_n)
begin
if(!
reset_n)
begin
Q<=4'b1111;
sts<=st1;
end
else
case(sts)
st1:
begin
Q<=4'b0001;
if(sel)
sts<=st2;
else
sts<=st4;
end
st2:
begin
Q<=4'b0010;
if(sel)
sts<=st3;
else
sts<=st1;
end
st3:
begin
Q<=4'b0100;
if(sel)
sts<=st4;
else
sts<=st2;
end
st4:
begin
Q<=4'b1000;
if(sel)
sts<=st1;
else
sts<=st3;
end
default:
sts<=st1;
endcase
end
clk_divclk_div_0
(
.clk(clk),
.reset_n(reset_n),
.clk_out(clk_out)
);
endmodle
八、电路图
1,计数器电路图
2,状态机电路图
3,流水灯总电路图
9、状态机状态图
十、仿真波形图
十一、管脚分配
十二、实验效果
实验效果是,流水灯从LED1向LED4流动,按下sel键后在等待一次流动再向相反方向流动,按下复位键,灯全亮!
四个流水灯共四种状态来实现“流动”效果,而这四种状态是预先定义好的,通过时钟周期来向下一个状态迁移达到效果,所以就定义了st1-st4这四种状态,在每种状态中都已经定义好了LED的亮灭情况,那么为什么按下sel后再等待一次闪动才相反流动呢,因为,FPGA是按时钟周期工作的,在这个时钟周期开始时已经判断了进入哪种状态,然后执行这个状态中的已定义好的逻辑,所以这时在这种状态中并没有检测sel的状态,而是按这个时钟周期开始前的sel状态执行,然后切换状态(已经按下了sel键),在下一个时钟周期,从新检测sel并判断状态,然后才按sel的状态切换状态,从而改变流动方向,应该是这要的。
十三、课程设计心得
在本次的课程设计中,我们经过了三次大规模的程序修改和多次的小规模的局部调试。
通过本次课程设计,我更加细致地更好的掌握了quartusII软件的用法,对FPGA、IP核的应用能力也提升了不少。
我们按照老师的要求设计方案,然后逐步实现自己方案中所涉及的模块,最后通过端口名位置关联法对模块进行了例化。
当然在这过程中也遇到很多困难,例如实验设备损坏或不足,管脚分配不对,时钟频率设置不合理等,但在老师的提示下,同学的帮助下,我们的努力下得到了解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子设计 自动化 课程设计 报告