广东工业大学eda课程设计报告.docx

上传人:b****2 文档编号:1859880 上传时间:2022-10-24 格式:DOCX 页数:15 大小:104.13KB
下载 相关 举报
广东工业大学eda课程设计报告.docx_第1页
第1页 / 共15页
广东工业大学eda课程设计报告.docx_第2页
第2页 / 共15页
广东工业大学eda课程设计报告.docx_第3页
第3页 / 共15页
广东工业大学eda课程设计报告.docx_第4页
第4页 / 共15页
广东工业大学eda课程设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

广东工业大学eda课程设计报告.docx

《广东工业大学eda课程设计报告.docx》由会员分享,可在线阅读,更多相关《广东工业大学eda课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

广东工业大学eda课程设计报告.docx

广东工业大学eda课程设计报告

课程设计报告

课程名称EDA课程设计

学院信息工程学院

年级班别

学号

学生姓名

指导老师罗思杰

 

2017年12月09日

 

一、设计目的和要求:

3

二、EDA设计:

3

三、硬件测试:

15

四、设计和调试过程中遇到的问题及解决方法15

五、完成课程设计后的收获或体会:

15

六、设计参考文献:

15

 

一、设计目的和要求:

1、设计目的:

通过对FPGA(现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD(可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据要求及工艺需要进行电子芯片设计并制定有关技术文件。

培养学生综合运用已学知识解决实际工程技术问题的能力、查阅图书资料和各种工具书的能力、撰写技术报告和编制技术资料的能力,接受一次电子设计自动化方面的基本训练。

培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,使学生积累实际EDA编程经验。

通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。

2、设计要求 :

(1)以EDA技术的基本理论为指导,将设计实验分为基本功能电路和较复杂的电子系统两个层次,要求利用数字电路或者EDA方法去设计并完成特定功能的电子电路的仿真、软硬件调试; 

(2)熟悉掌握常用仿真开发软件,比如:

 Quartus II或Xilinx ISE的使用方法。

 

(3)能熟练运用上述开发软件设计并仿真电路并下载到FPGA中进行调试;  

(4)学会用EDA技术实现数字电子器件组成复杂系统的方法;学习电子系统电路的安装调试技术。

二、EDA设计:

(1)方案比较:

1、数字电子钟设计

设计一个时钟电路,包括时钟、分钟、秒钟的显示。

要求可对时钟、分钟进行预置和修改操作;可设置3组闹铃时间,时间到时给出10秒的报警声或音乐并给出灯光提示。

具体输入/输出要求如下:

①4位LED数码显示器,分别显示“小时:

分钟”或“分钟:

秒”时钟;根据需要选择几个LED发光二极管。

②3个按键,具体功能描述如下:

[MODE]键——模式转换键,具有“正常——小时(校准)——分钟(校准)——小时(闹铃)——分钟(闹铃)”等5种模式,每按一次,转换一种模式。

假设当前处于正常模式,按一下此键,“小时”闪烁,表示进入“小时”调校模式,再按一次,转入分钟模式,如此类推,正常模式下不闪烁。

还可以配合LED灯来显示不同的模式。

//状态机

[+]键——加“1”键,按下此键,被选中的项目加“1”

[-]键——减“1”键,按下此键,被选中的项目减“1”

③1路蜂鸣器,用于报警或按键声。

在设计时,学生可充分发挥自己的特长和想象力,自行扩充功能,如“秒表”功能,通信功能,整点报时功能等。

并可进一步将其设计为万年历。

2、简易电子琴设计

用实验装置提供的7个按键对应中音的7个音符,设计一个简易电子琴。

用数码管显示当前的音符,用LED灯显示节拍,并能演奏一段或多段预存的音乐。

3、简易十字路口的交通灯控制系统设计

用EDA技术设计一个十字路口的交通信号灯控制器,控制A、B两条交叉道路上的车辆通行,具体要求如下:

 

①每条道路设一组信号灯,每组信号灯由红黄绿3个灯组成,绿灯表示允许通行,红灯表示禁止通行,黄灯表示该车道上已过停车线的车辆继续通行,未过停车线的车辆停止通行。

 

②每条道路上每次通行的时间为25s。

 

③每次变换通行车道之前,要求黄灯先亮5s,才能变换通行车道。

 

④黄灯亮时,要求每秒钟闪烁一次。

4、其他。

经过本人查阅资料以及根据本人实际能力,最后本人选择了难度相对较小的第二个方案,利用Verilog语言实现简易电子琴的制作。

(2)Verilog代码编写:

Moduletop(LED_AN,key,clk,rst_n,Led,auto,speaker,tone_7s,high_7s,mid_7s,low_7s);

inputclk,auto,rst_n;//时钟输入,自动演奏,键盘输入

input[7:

0]key;

wire[7:

0]key;//键盘输入信号

output[6:

0]tone_7s;//数码管显示音调

outputregspeaker;

output[6:

0]high_7s;//显示乐曲高音音符

output[6:

0]mid_7s;//显示乐曲中音音符

output[6:

0]low_7s;//显示乐曲低音音符

output[7:

0]Led;//led灯显示

wire[7:

0]Led;

output[3:

0]LED_AN;//选择所要显示的数码

reg[3:

0]LED_AN=4'b1000;//初始化,并选择其中一个数码管

reg[20:

0]i;//控制分频比参数

regclk4;

reg[3:

0]high,mid,low,tone;//高中低音信号和键盘音调信号

reg[13:

0]divider,origin;//自动演奏分频系数和初始值

regcarry;

regmusicout;//乐谱输出信号

reg[19:

0]count20;

reg[7:

0]counter;

reg[23:

0]clk_cnt;

assignLed[0]=(~key[0]);//led高电平有效,

assignLed[1]=(~key[1]);

assignLed[2]=(~key[2]);

assignLed[3]=(~key[3]);

assignLed[4]=(~key[4]);

assignLed[5]=(~key[5]);

assignLed[6]=(~key[6]);

assignLed[7]=(~key[7]);

parameterzero=~8'b10000000,

one=~8'b01000000,

two=~8'b00100000,

three=~8'b00010000,

four=~8'b00001000,

five=~8'b00000100,

six=~8'b00000010,

seven=~8'b00000001;

always@(posedgeclkornegedgerst_n)

if(!

rst_n)

clk_cnt<=24'd0;

else

clk_cnt<=clk_cnt+1'b1;

wireclk6m=(clk_cnt[2]||(clk_cnt[1]&&clk_cnt[0]));//50M降为6M,用于方便控制音调

always@(posedgeclk6m)//通过置数,改变分频比。

6M降频到3M

begin

if(divider==16383)//16383

begin

carry<=1;//carry的周期根据origin的值到16383的距离而改变

divider<=origin;//初始值控制

end

else

begin

divider<=divider+1'd1;

carry<=0;

end

end

always@(posedgecarry)//3M

begin

musicout<=~musicout;//2分频产生方波信号//因为carry周期是随时改变,musicout的周期也随时改变

end

always@(posedgeclk6m)

begin

if(auto)

speaker<=musicout;//如果automusic为真,输出乐谱

else

begin//否则判断键盘key的输入

case(key)

zero:

begin

speaker<=0;tone=4'b0000;

i<=0;

end

one:

begin

if(i>=5736)

begin

speaker=!

speaker;tone=4'b0001;//sperker翻转就会出声,i是用于控制音调

i<=0;

end

else

i<=i+1'd1;

end

two:

begin

if(i>=5111)

begin

speaker=!

speaker;tone=4'b0010;

i<=0;

end

else

i<=i+1'd1;

end

three:

begin

if(i>=4552)

begin

speaker=!

speaker;tone=4'b0011;

i<=0;

end

else

i<=i+1'd1;

end

four:

begin

if(i>=4298)

begin

speaker=!

speaker;tone=4'b0100;

i<=0;

end

else

i<=i+1'd1;

end

five:

begin

if(i>=3827)

begin

speaker=!

speaker;tone=4'b0101;

i<=0;

end

else

i<=i+1'd1;

end

six:

begin

if(i>=3409)

begin

speaker=!

speaker;tone=4'b0110;

i<=0;

end

else

i<=i+1'd1;

end

seven:

begin

if(i>=3036)

begin

speaker=!

speaker;tone=4'b0111;

i<=0;

end

else

i<=i+1'd1;

end

default:

begin

speaker<=0;

tone=4'b0000;

i<=0;

end

endcase

end

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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