文档介绍:该【基于EDA的智能函数发生器课程设计说明书 】是由【知识徜徉土豆】上传分享,文档一共【23】页,该文档可以免费在线阅读,需要了解更多关于【基于EDA的智能函数发生器课程设计说明书 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。邮电与信息工程学院课程设计说明书课题名称:电子设计自动化(EDA)课程设计一、课程设计的任务的基本要求::(1)学习使用EDA设计软件QuartusⅡ,了解电路描述、综合、模拟过程。(2)掌握使用EDA工具设计数字系统的设计思路和设计方法。:(1)以AlteraDE2开发系统为验证平台,根据设计题目要求完成设计输入、综合、仿真与验证工作。(2)提供设计报告,报告要求包括以下内容:设计任务书、题目、摘要(中英文)、正文、参考文献。其中正文应包含:设计思路、设计输入文件、设计与调试过程、仿真与验证结果和设计结论。:(1)设计智能函数发生器,要求实现正弦波、方波、三角波、递增、递减斜波和阶梯波六种波形,所产生的波形频率用数码管显示。二、进度安排:18周(-):周一:选择课程设计题目,明确课程设计目的和任务。周二、周三:查看参考资料。周四、周五:原理图与程序设计。19周(-):周一、周二:上机调试原理图与程序。周三:整理所有任务资料,答辩。周四、周五:撰写课程设计报告。三、应收集资料及主要参考文献:(1)AlteraDE2UserManual(2)基于QuartusII的FPGA/CPLD数字系统设计实例,周润景等,电子工业出版社(3)EDA技术实用教程(第二版),潘松等,科学出版社四、课程设计摘要(中文):函数发生器是一种很常用的器件,在很多情况下,最常用的波形是正弦波,方波,三角波,递增,递减斜波和阶梯波六种。虽然用模拟电子线路很容易得到这些波形,但是这种方法会使硬件线路较为繁琐,而且模拟线路会受到干扰。本设计采用综合设计方法使用FPGA来实现智能函数发生器,它由六个波形产生模块及波形选择输出模块组成,波形选择模块的输出q接在D/A转换的数据端,就可以在D/A输出端得到想要的其中之一的任一种光滑的波形五、课程设计摘要(英文):ponent,Inverymanysituations,monlyusedprofileisasinewave,Square-wave,Trianglewave,Increasesprogressively,,obetedious,,posed,ProfilechoicemoduleoutputqmeetsinD/Atransformsdataend,MayintheD/Aout-、,采用VHDL语言,设计一波形信号发生器。首先根据对各波形的幅度进行采样,获得各波形的波形数据表,使用FPGA来实现智能函数发生器,它由六个波形产生模块及波形选择输出模块组成,然后FPGA根据输入的时钟(频率可根据要求可变)作为地址信号,从FPGA数据线上输出相应的波形数据,再送入实验板上的D/A转换芯片进行转换为模拟信号,最后送入滤波电路滤波后输出,就可以得到想要的任意其中的一个波形二、设计输入文件与调试分频libraryieee;;;entityfenpinisport(clk:instd_logic;clkfen:outstd_logic);endfenpin;architecturefenpinoffenpinissignalclk_mid:std_logic;beginprocess(clk)variabledata:integerrange0to99;beginifclk'eventandclk='1'thenifdata=99thendata:=0;clk_mid<=notclk_mid;elsedata:=data+1;endif;endif;clkfen<=clk_mid;endprocess;endfenpin;;;;ENTITYdjISPORT(clk,reset:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdj;ARCHITECTUREbehaveOFdjISBEGINPROCESS(clk,reset)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFreset='0'THENtmp:="11111111";ELSIFclk'EVENTANDclk='1'THENIFtmp="00000000"THENTmp:="11111111";ELSEtmp:=tmp-1;ENDIF;ENDIF;q<=tmp;ENDPROCESS;ENDbehave;(锯齿波)波形数据产生模块设计LIBRARYIEEE;;;ENTITYdzISPORT(clk,reset:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdz;ARCHITECTUREbehaveOFdzISBEGINPROCESS(clk,reset)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFreset='0'THENtmp:="00000000";ELSIFclk'EVENTANDclk='1'THENIFtmp="11111111"THENtmp:="00000000";ELSEtmp:=tmp+1;ENDIF;ENDIF;q<=tmp;ENDPROCESS;ENDbehave;;;ENTITYfbISPORT(clk,reset:INSTD_LOGIC;q:OUTINTEGERRANGE0TO255);ENDfb;ARCHITECTUREbehaveOFfbISSIGNALa:BIT;BEGINPROCESS(clk,reset)t:INTEGERrange0to31;BEGINIFreset='0'THENA<='0';ELSIFclk'EVENTANDclk='1'THENt<31THENCnt:=cnt+1;ELSEcnt:=0;a<=NOTa;ENDIF;ENDIF;ENDPROCESS;Process(clk,a)BEGINIFclk'EVENTANDclk='1'THENIFa='1'THENQ<=255;ELSEQ<=0;ENDIF;ENDIF;ENDPROCESS;ENDbehave;;;;ENTITYjcbISPORT(clk,reset:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDjcb;ARCHITECTUREbehaveOFjcbISBEGINPROCESS(clk,reset)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);VARIABLEa:STD_LOGIC;BEGINIFreset='0'THENtmp:="00000000";ELSIFclk'EVENTANDclk='1'THENIFa='0'THENIFtmp="11111110"THENtmp:="11111111";a:='1';ELSEtmp:=tmp+1;ENDIF;ELSEIFtmp="00000001"THENtmp:="00000000";a:='0';ELSEtmp:=tmp-1;ENDIF;ENDIF;ENDIF;q<=tmp;ENDPROCESS;;;;;entityjtbisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));endjtb;architectureaofjtbisbeginprocess(clk,reset)variabletmp:std_logic_vector(7downto0);beginifreset='0'thentmp:="00000000";elseifclk'eventandclk='1'theniftmp="11111111"thentmp:="00000000";elsetmp:=tmp+16;endif;endif;endif;q<=tmp;endprocess;enda;;;;;entityzxisport(clk:instd_logic;reset:instd_logic;q:outstd_logic_vector(7downto0));endzx;architecturebehavofzxissignalb:integerrange0to63;signald:integerrange0to255;beginprocess(clk)beginifreset='0'thenb<=0;elsifclk'eventandclk='1'thenifb=63thenb<=0;elseb<=b+1;endif;endif;endprocess;process(b)begincasebiswhen00=>d<=255;when01=>d<=254;when02=>d<=252;when03=>d<=249;when04=>d<=245;when05=>d<=239;when06=>d<=233;when07=>d<=225;when08=>d<=217;when09=>d<=207;when10=>d<=197;when11=>d<=186;when12=>d<=174;when13=>d<=162;when14=>d<=150;when15=>d<=137;when16=>d<=124;when17=>d<=112;when18=>d<=99;when19=>d<=87;when20=>d<=75;when21=>d<=64;when22=>d<=53;when23=>d<=43;when24=>d<=34;when25=>d<=26;when26=>d<=19;when27=>d<=13;when28=>d<=8;when29=>d<=4;when30=>d<=1;when31=>d<=0;when32=>d<=0;when33=>d<=1;when34=>d<=4;when35=>d<=8;