湖南人文科技学院课程设计报告课程名称:VHDL语言与EDA课程设计设计题目:通用十进制加法器系别:通信与控制工程系专业:电子信息工程班级:学生姓名:学号:起止日期:指导教师:教研室主任:指导教师评语:指导教师签名:年月日成绩评定项目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日摘要随着科技的发展,通用十进制加法器的应用已广泛融入到现实生活中。
EDA 技术的应用引起电子产品及系统开发的革命性变革。
本文采用EDA技术设计,并以VHDL语言为基础制作的通用十进制加法器。
该系统借助于强大的EDA工具和硬件描述语言可实现两个一位以上的十进制数的加法,在输入两个十进制数之后,给出两个数的相加结果。
本设计充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,提高了设计的效率。
设计主要步骤:首先利用QUARTUS‖来编辑、编译、仿真各个模块;然后以原理图为顶层文件建立工程,再进行引脚锁定、编译、下载,最后采用杭州康芯电子有限公司生产的GW48系列/SOPC/EDA实验开发系统,进行硬件测试。
关键词:通用十进制加法器;EDA技术;VHDL语言; QUARTUS‖目录设计要求 (1)1、方案论证与对比 (1)1.1方案一 (1)1.2方案二 (1)1.3 方案的对比与选择 (2)2、设计原理 (2)3、通用十进制加法器的主要硬件模块 (3)3.1 4位BCD码全加器模块 (3)3.2八加法器的实现框图 (3)4、调试与操作 (4)4.1通用十进制加法器的功能仿真 (4)4.2模式选择与引脚锁定 (4)4.2.1模式选择 (4)4.2.2引脚锁定 (5)4.3设备与器件明细表 (6)4.4调试 (6)4.4.1软件调试 (6)4.4.2硬件调试 (6)5、总结与致谢 (7)5.1总结与思考 (7)5.2致谢 (7)附录 (8)附录一 (8)附录二 (9)参考文献 (11)通用十进制加法器设计要求1、用VHDL 硬件描述语言设计4位的BCD 码全加器;2、以4位BCD 码全加器为模块设计两位十进制数的加法。
1、方案论证与对比1.1方案一方案一,通过VHDL 语言设计一个4位的BCD 码全加器,以其作为底层文件,然后建立一个顶层文件,调用这个底层文件设计出双4位的BCD 码全加器,最后结果通过译码电路译为7段显示输出。
方案一原理方框图如图1所示:图1 方案一结构方框图1.2方案二方案二,采用原理图输入,先定制LPM_ROM 宏模块,然后再采用原理图输入的方法画出电路图。
方案二原理方框图如图2所示:4位的BCD 码全加器4位的BCD 码全加器显示结果译码器控制信号输入信号定制LPM_ROM宏模块译码器显示结果原理设计图图2 方案二结构方框图1.3 方案的对比与选择方案一:采用VHDL语言输入,它具有多层次的设计描述功能,层层细化,最后可直接生成电路描述,移植性很强。
而且采用VHDL语言输入设计不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。
当设计描述完成后,可以用多种不同的器件结构来实现其功能。
方案二:采用原理图输入,原理图输入的设计方法不能实现真实意义上的自顶向下的设计,并无法建立行为模型。
而且不同的EDA软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差。
选择方案一的理由:方案一比较方案二具有综合设计优点。
2、设计原理用VHDL 进行设计,首先应该了解,VHDL 语言是一种全方位硬件描述语言,包括系统行为级,寄存器传输级和逻辑门级多个设计层次。
应充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,层次概念对于设计复杂的数字系统是非常有用的,它使得人们可以从简单的单元入手,逐渐构成庞大而复杂的系统。
通用十进制加法器的功能为:输入两个十进制数,通过输入信号BTN相加得出十进制数结果,最后通过译码器来显示结果。
图3 加法器原理图3、通用十进制加法器的主要硬件模块3.1 4位BCD 码全加器模块C4A4[3..0]B4[3..0]BTNS4[3..0]CO4add_finst图3 4位的BCD 码全加器3.2八加法器的实现框图图4 8位加法器原理4、调试与操作4.1通用十进制加法器的功能仿真图5 时序仿真1图6 时序仿真24.2模式选择与引脚锁定4.2.1模式选择根据程序,结合电路设计情况,最终选择了模式3,以CTRA,CTRA1,CTRB,CTRB1为输入信号,每按一下输入信号CTRA(CTRB),两位的十进制数的个位就加一,同理,按一下输入信号CTRA1(CTRB1),这个十进制数的十位加一;并通过控制信号BTN来得出结果,最后译码显示出来。
4.2.2引脚锁定表1 引脚锁定表信号名类型(输入/输出)引脚号说明BTN IN PIN_233 控制信号CTRA IN PIN_239 输入信号CTRA1 IN PIN_240 输入信号CTRB IN PIN_237 输入信号CTRB1 IN PIN_238 输入信号A4[0] OUT PIN_161 BUFFER A4[1] OUT PIN_162 BUFFER A4[2] OUT PIN_163 BUFFER A4[3] OUT PIN_164 BUFFER A14[0] OUT PIN_165 BUFFER A14[1] OUT PIN_166 BUFFER A14[2] OUT PIN_167 BUFFER A14[3] OUT PIN_168 BUFFER B4[0] OUT PIN_137 BUFFER B4[1] OUT PIN_138 BUFFER B4[2] OUT PIN_139 BUFFER B4[3] OUT PIN_140 BUFFER B14[0] OUT PIN_141 BUFFER B14[1] OUT PIN_158 BUFFER B14[2] OUT PIN_159 BUFFER B14[3] OUT PIN_160 BUFFERS[0] OUT PIN_13 输出信号S[1] OUT PIN_14 输出信号S[2] OUT PIN_15 输出信号S[3] OUT PIN_16 输出信号S[4] OUT PIN_17 输出信号S[5] OUT PIN_18 输出信号S[6] OUT PIN_19 输出信号S[7] OUT PIN_20 输出信号S[8] OUT PIN_21 输出信号S[9] OUT PIN_41 输出信号S[10] OUT PIN_128 输出信号S[11] OUT PIN_132 输出信号4.3设备与器件明细表表2 设备与器件明细表名称型号/参数数量SOPC/EDA开发系统GW48系列1套微型计算机联想1台Quartus II开发软件Quartus II 1套4.4调试4.4.1软件调试本系统的软件系统很长,首先按照QuartusII设计流程,完成各项步骤,编好VHDL 程序。
然后运行,查看是否有语法错误,当确认程序没有语法错误的前提下,开始建立波形编辑器文件,开始时序仿真,查看结果是否符合题目要求,若符合,则进行下一步的硬件调试,否则,重新检查程序,以及仿真设置等等,直到符合要求。
软件调试采取的是自分断调试的方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。
4.4.2硬件调试锁定引脚后,然后进行硬件调试,本课程设计采用的是Cycone 系列的SOPC/EDA 开发系统,根据电路设计情况,通过分析,最终选择了模式7,选择CLOCK0作为输入的时钟信号的端口,16位预置输入数通过4个4位的按键控制。
引脚锁定后,开始下载到Cycone 系列的SOPC/EDA开发系统,通过按键输入不同的初始值,输入完毕后,通过按键2控制输出两输入数的和。
最后,通过嵌入式逻辑分析仪SignalTal II测试,然后通过设置以确定前后触发捕捉信号信息的比列。
5、总结与致谢5.1总结与思考本次EDA课程设计,是我们第一次深入接触电路设计和工程设计的内容。
作为一个学生,在过去的两年半中学习了专业的各方面知识,包括电路原理、模拟电路、数字电路等等,而这周的EDA课设,将我们学过的各方面电学知识和现代电路设计方法结合起来,应用计算机软件进行课题项目设计,不单夯实了我们的理论知识和对数字电路的理解,更极大的锻炼了我们实际动脑、动手能力。
我们的设计题目是通用十进制加法器,通过拨码开关输入两个十进制数,将输入的数通过数码管显示,相加后的结果也通过数码管显示出来。
这个设计题目是整体来看是比较简单的。
仔细分析这个题目,遇到的第一个问题是要对两个输入的数进行处理,当其大于9的时候要把它变成0后再输入加法器。
而后比较棘手的问题是怎样把输出的二进制结果转换成十进制数。
由此我们设计出一个查表方案。
至此,整个设计方案就比较完善了。
5.2致谢通过两周课程设计,我们受益良多。
在老师的指导下,我们逐步完善了各个环节的构思与设计。
在这两周的时间里,这次课设让我在实际中真正地运用了在课本中学到的东西,既加深理论知识的理解,又锻炼了自己的动手能力。
在此,对老师们致以衷心的感谢和崇高的敬意!最终,在老师及同学们的帮助与指导下顺利完成了本次的课程设计。
附录附录一底层源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY add_f ISPORT(C4: IN STD_LOGIC;--前一位的进位CA4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数AB4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数BS4: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--相加的和SBTN:in std_logic;CO4: OUT STD_LOGIC);--相加产生的进位CEND ENTITY add_f;ARCHITECTURE ART OF add_f ISSIGNAL S5,S6: STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL A5,B5: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINprocess(BTN)beginif BTN'EVENT AND BTN='1' thenA5<='0'&A4;--扩展被加数A高位为0B5<='0'&B4;--扩展被加数B高位为0S5<=A5+B5+C4;--二数相加,并加上前一位的进位if S5>"01001" THENS6<=S5+"00110";ELSE S6<=S5;END IF;end if;S4<=S6(3 DOWNTO 0);CO4<=S6(4);end process;END ARCHITECTURE ART;附录二顶层源文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY add ISPORT( A4,A14: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数A B4,B14: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数BBTN,CTRA,CTRA1,CTRB,CTRB1:IN std_logic;S: OUT STD_LOGIC_VECTOR(11 DOWNTO 0));--相加的和SEND ENTITY add;ARCHITECTURE ART OF add IScomponent add_fPORT(C4: IN STD_LOGIC;--前一位的进位CA4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数AB4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--被加数BS4: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--相加的和S BTN:IN STD_LOGIC;CO4: OUT STD_LOGIC);--相加产生的进位Cend component;SIGNAL COUT,C1,C2: STD_LOGIC;BEGINPROCESS(CTRA,CTRA1,CTRB,CTRB1)BEGINIF CTRA'EVENT AND CTRA='1' THENIF A4<"1001" THEN A4<=A4+1; ELSE A4<="0000";END IF;END IF;IF CTRA1'EVENT AND CTRA1='1' THENIF A14<"1001" THEN A14<=A14+1; ELSE A14<="0000";END IF;END IF;IF CTRB'EVENT AND CTRB='1' THENIF B4<"1001" THEN B4<=B4+1; ELSE B4<="0000";END IF;END IF;IF CTRB1'EVENT AND CTRB1='1' THENIF B14<"1001" THEN B14<=B14+1; ELSE B14<="0000";END IF;END IF;END PROCESS;C1<='0';u1:add_f port map(C4=>C1,A4=>A4,B4=>B4,BTN=>BTN,CO4=>COUT,S4=>S(3 DOWNTO 0));u2:add_f port map(C4=>COUT,A4=>A14,B4=>B14,BTN=>BTN,CO4=>C2,S4=>S(7 DOWNTO 4));s(8)<=C2;S(11 DOWNTO 9)<="000";END ARCHITECTURE ART;参考文献[1]潘松,黄继业主编.EDA技术与VHDL[M].北京:清华大学出版社.2006年9月[2]潘松,王国栋编著.VHDL实用教程[M].成都:电子科技大学出版社,2006[3]江国强主编.EDA技术与应用[M].北京:电子工业出版社.2007[4]康华光主编.数字技术基础(第五版)[M].北京:高等教育出版社.2000[5]徐志军,徐光辉编著.CPLD/FPGA的开发与应用[M].北京:电子工业出版社.2002[6]李玉华.DEA技术与电子实验教学结合的探讨[J].长春师范学院报(自然科学版),2009,(06)[7]庄海军,林咏海.基于FPGA的数控分频器的实现[J].电子与封装,2008,(11)[8]周立功编著.EDA实验与实践[M].北京:北京航空航天大学出版社.2007年3月。