EDA实习报告

时间:2024.4.13

EDA实习报告 学院:电气信息工程学院专业:电子信息工程班级:姓名:学号:

1

实习目的及要求::

1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程。

2、介绍QuartusII的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

3、了解VHDL或原理图设计方法与定制IP模块的思想。

4、掌握并行加法器,减法器乘法器以及除法器的设计思路及工作原理。

5、设计一个能完成加减乘除功能并以十进制显示结果的简单计算器。 软硬件资源

硬件:ED2-70实验板

软件环境:QII9.0开发系统

题目设计:这个简单的计算器要求能够进行简单的四则运算,在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对我们对编程语句及语义分析和理解,并实现对命令语句的灵活应用。这次实验目的就是实现简单计算器的功能。

二、流程图

EDA实习报告

EDA实习报告

? 当输入为00时输出加法结果

? 当输入为01时输出减法结果

? 当输入为10时输出乘法结果

? 当输入为11时输出除法结果

EDA实习报告

2

三.顶层原理图

四个模块输出均为十六进制数,为了输出方便观察,设计了8位除法器,将输出变为十进制数显示在数码管上。

DATAIN[1..0]为输入控制端,通过试验箱上两个拨码开关控制输入。A[3..0]和B[3..0]是两个四位二进制输入数,当DATAIN为00时进行加法运算,当DATAIN为01时进行减法运算,当DATA为10时进行乘法运算,当DATA为11是进行除法运算。结果用十进制显示三个共阳静态LED数码管上,除法的余数单独显示在右下角的七段驱动共阳数码管中的一个上。

EDA实习报告

3

四、各个模块

(1)加法器模块

1、封装元件

EDA实习报告

当CLR为‘1’时清零,输出为零

当CLR为‘0’时,输入两个四位二进制数,输出两个数之和,S[3..0]为和,S[4]为进位。

2、加法器程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity choose is

port(Q:in std_logic_vector(1 downto 0);

input: in std_logic_vector(31 downto 0);

output:out std_logic_vector(7 downto 0);

output1:out std_logic_vector(3 downto 0));

end choose;

architecture one of choose is

begin

process(Q)

begin

if Q="00" then output(7 downto 0)<=input(7 downto 0);

elsif Q="01" then

if input(12)='0' then output(7 downto 0)<=input(15 downto 8); else

if input(11 downto 8)="0000" then

output(7 downto 0)<="0000"&input(11 downto 8)+"01100100";

else output(7 downto 0)<="00010001"+not("0000"&input(11 downto

8))+"01100100";

end if;

4

end if;

elsif Q="10" then output(7 downto 0)<=input(23 downto 16);

elsif Q="11" then output(7 downto 0)<="0000"&input(31 downto 28); output1<=input(27 downto 24);

end if;

end process;

end one;

3、仿真结果

当CLR为1时,输出为0;当CLR为0时,进行加法运算。S[3..0]为相加后得到的和,S[7..4]为相加后的进位。

(2)减法器模块

1、封装元件

EDA实习报告

EDA实习报告

2、减法器程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER4B IS

PORT(

CLR:IN STD_LOGIC;

A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END ADDER4B;

5

ARCHITECTURE behave OF ADDER4B IS

SIGNAL SINT,AA,BB:STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

process(CLR)

begin

if CLR='1' then AA<="00000000"; BB<="00000000";

else

AA<="0000"&A;

BB<="0000"&B;

end if;

end process;

SINT<=AA+BB;

S<=SINT;

end behave;

3、仿真结果

CLR为清零,当CLR为1时清零,输出为0;当CLR为0时进行减法运算,a、b为两个四位二进制输入,s为输出,当co为0时,代表s为正,当co为1时代表co为负,当被减数小于减数时,s为相减得到的结果的补码。

从左到右,前三个数码管用十进制显示结果:第一个代表正负,为0时代表正,为1时代表负。第五个为减数,第六个为被减数。

EDA实习报告

6

(3)乘法器模块

1、封装元件

EDA实习报告

当clr为‘1’时输出为0

当clr为‘0’时,a与b相乘输出y

2、乘法器的设计思想

用并行相乘的方法。通过开关和键盘,两组分别输入4bit的数据进行乘法运算时,先求出部分积,即求得二进制数据的乘数和被乘数逐位相乘,之后运用二进制加法进行加和。举例如下,10X9=90:

? --10 × 9 = 90

? -- 1 0 1 0

? -- X 1 0 0 1 =

? -- -------------

? -- 00001010

? -- 00000000 --部分积

? -- 00000000

? - 01010000

? ----------------------------

? -- 1011010 =90

? 这里加法的结果就是所求结果。

3、乘法器程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY sub4 IS

PORT(CLR:IN STD_LOGIC;

a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

7

co:OUT STD_LOGIC);

end sub4;

architecture behave of sub4 is

component ADD is

port(CLR:IN STD_LOGIC;

A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC);

end component;

signal c,cl:std_logic;

signal bb:std_logic_vector(3 downto 0);

signal ss:std_logic_vector(3 downto 0);

begin

process(CLR)

BEGIN

IF CLR='1'THEN

c<='1';

else c<='0';

end if;

end process;

bb(3 downto 0)<=not b(3 downto 0);

u:ADD PORT MAP(A=>a,B=>bb,CLR=>c,S=>ss,COUT=>cl);

process(c)

begin

if c='1' then s<="0000";co<='0';

else s<=ss+'1';co<=not cl;

end if;

end process;

end behave;

8

4、仿真结果

clr为清零,当clr为1时进行乘法运算,a、b为两个四位二进制输入,y为十六进制输出。

(4)除法器模块

1、封装元件

EDA实习报告

EDA实习报告

当clr为‘1’时,输出为0。当clr为‘0’时,a与b相除输出s,s高四位为商,低四位为余

2、除法器设计思想

?

?

?

?

?

?

?

?

3、除法器程序

library ieee;

use ieee.std_logic_1164.all;

9

f:=a; g:=b; e:=(others=>‘0’);--f等于被除数,g等于除数 for i in 1 to 15 loop --e为商 if (f>=g) then f:=f-g; e:=e+1; else exit; end if; end loop; s(7 downto 4)<=e;s(3 downto 0)<=f; 利用循环的思想设计除法器。S高四位为商,第四位为余数

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity multi4b is

port(clr:in std_logic;

a:in std_logic_vector (3 downto 0);

b:in std_logic_vector(3 downto 0);

y:out std_logic_vector(7 downto 0));

end multi4b;

architecture multi_arch of multi4b is

signal d0:std_logic_vector(3 downto 0);

signal d1:std_logic_vector(3 downto 0);

signal d2:std_logic_vector(3 downto 0);

signal d3:std_logic_vector(3 downto 0);

begin

process(clr,a,b)

begin

if clr='1' then y<="00000000";

else

if b(0)='0' then d0<="0000"; else d0<=a; end if;

if b(1)='0' then d1<="0000"; else d1<=a; end if;

if b(2)='0' then d2<="0000"; else d2<=a; end if;

if b(3)='0' then d3<="0000"; else d3<=a; end if;

y<=("0000"&d0)+("000"&d1&"0")+("00"&d2&"00")+("0"&d3&"000");

end if;

end process;

end multi_arch;

4、仿真结果

当clr=‘1’时清零,当clr=‘0’时进行除法运算。

a、b为四位二进制数,a为被除数,b为除数,s高四位为商,s低四位为余数。

EDA实习报告

10

(5)8位除法器

1、封装元件

作用:用于把十六进制显示的输出换成十进制显示。

方法:被除数除以10时,余数为个位;得到的商除以10,得到的余数为十位;得到的商再除以10,得到的余数为百位。

8位除法器程序

ibrary ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity Div is

port(

beichu,chu:in std_logic_vector(7 downto 0);

shang:out std_logic_vector(7 downto 0);

yu:out std_logic_vector(3 downto 0));

end Div;

architecture one of Div is

signal yushu:std_logic_vector(14 downto 0);

signal remain0,remain1,remain2,remain3,remain4,remain5,remain6,

remain7:std_logic_vector(14 downto 0);

signal diver0,diver1,diver2,diver3,diver4,diver5,diver6,

diver7:std_logic_vector(14 downto 0);

begin

process (beichu,chu)

begin

remain7 <="0000000"& beichu;

diver7 <= chu &"0000000";

if remain7 >= diver7 then

shang(7) <= '1';

remain6 <=remain7-diver7;

else

11

shang(7) <= '0';

remain6 <= remain7; end if;

diver6 <="0"& chu &"000000"; if remain6 >= diver6 then shang(6) <= '1';

remain5 <= remain6 - diver6; else

shang(6) <= '0';

remain5 <= remain6; end if;

diver5 <= "00"& chu &"00000"; if remain5 >= diver5 then shang(5) <='1';

remain4 <= remain5 - diver5; else

shang(5) <= '0';

remain4 <= remain5; end if;

diver4 <= "000"& chu &"0000"; if remain4 >= diver4 then shang(4) <= '1';

remain3 <= remain4 - diver4; else

shang(4) <= '0';

remain3 <= remain4; end if;

diver3 <= "0000"& chu &"000"; if remain3 >= diver3 then shang(3) <= '1';

remain2 <= remain3 - diver3; else

shang(3) <= '0';

remain2 <= remain3; end if;

diver2 <= "00000"& chu &"00"; if remain2 >= diver2 then shang(2) <= '1';

remain1 <= remain2 - diver2; else

12

shang(2) <= '0';

remain1 <= remain2; end if;

diver1 <= "000000"& chu &"0"; if remain1 >= diver1 then shang(1) <= '1';

remain0 <= remain1 - diver1; else

shang(1) <= '0';

remain0 <= remain1; end if;

diver0 <= "0000000"& chu; if remain0 >= diver0 then shang(0) <= '1';

yushu <= remain0 - diver0; yu<=yushu(3 downto 0); else

shang(0) <= '0';

yushu <= remain0;

yu<=yushu(3 downto 0); end if;

end process;

end one;

4、仿真结果

EDA实习报告

13

(6)数码管七段译码电路

1、封装元件

EDA实习报告

3、七段译码器程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DECL7S IS

PORT ( A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END;

ARCHITECTURE one OF DECL7S IS

BEGIN

PROCESS(A) BEGIN

CASE A IS

WHEN "0000" => LED7S <= "0111111";

WHEN "0001" => LED7S <= "0000110"; WHEN "0010" => LED7S <= "1011011"; WHEN "0011" => LED7S <= "1001111"; WHEN "0100" => LED7S <= "1100110"; WHEN "0101" => LED7S <= "1101101"; WHEN "0110" => LED7S <= "1111101"; WHEN "0111" => LED7S <= "0000111"; WHEN "1000" => LED7S <= "1111111"; WHEN "1001" => LED7S <= "1101111"; WHEN "1010" => LED7S <= "1110111"; WHEN "1011" => LED7S <= "1111100"; WHEN "1100" => LED7S <= "0111001"; WHEN "1101" => LED7S <= "1011110"; WHEN "1110" => LED7S <= "1111001"; WHEN "1111" => LED7S <= "1110001"; WHEN OTHERS => NULL;

END CASE;

END PROCESS;

14

END;

2、共阴极七段显示码十六进制转换表

EDA实习报告

仿真结果

EDA实习报告

15

(7)选择模块

1、封装元件 ?

?

?

?

当Q为“00”时进行加法运算 当Q为“01”时进行减法运算 当Q为“10”时进行乘法运算 当Q为“11”时进行除法运算

2、程序

EDA实习报告

16

五、管脚锁定

EDA实习报告

EDA实习报告

17

六、实习心得

这周的实习已经过去了,我们在老师提供的实践平台上通过自己的实践学到了很多课本上学不到的宝贵东西,熟悉了对Quartus Ⅱ软件的一般项目的操作和学到了处理简单问题的基本方法,更重要的是 掌握了VHDL语言的基本设计思路和方法,我想这些会对我今后的学习起到很大的助推作用。此外,还要在今后的课本理论知识学习过程中要一步一个脚印的扎实学习,灵活的掌握和运用专业理论知识这样才能在以后出去工作的实践过程中有所成果。最后还要感谢学校为我们提供这样专业的实践平台还有实训老师在着周实习以来的不断指导和同学的热情帮助。总的来说,这次实习我收获很大。也能较好的完成这次实习任务,把计算器的仿真及编译还有下载完成。

首先,通过对这门课程相关理论的学习,我掌握EDA的一些基本的的知识,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快。实现这种进步的主要原因就是微电子技术和电子技术的发展。前者以微细加工技术为代表,目前已进入超深亚微米阶段,可以在几平方厘米的芯片上集成几千万个晶体管;后者的核心就是电子设计自动化EDA(lectronic Design Automatic)技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。其次,通过对课程的实验的学习,我对EDA的学习和理解有了更深刻的认识和体会。我们团队共四个人,做的是两层电梯控制器,作为这个实验的一员与负责人,我感到很有压力。因为只对课本知识的学习,我对实验做成功的把握不是很大,因此只能对数字逻辑与数字电路有初步的了解,而EDA是在数字电路发展到一定阶段的产物,因此学习起来也很费力。然而,在我们团队的共同努力下,我们最终成功地完成了这个实验,包括时序仿真和

硬件测试仿真,都取得了较好地效果。

EDA实习报告

18

更多相关推荐:
cad实习报告范文

cad实习报告范文cadgt实习报告gt范文一画了几天的图纸真是感慨颇多要画好一份图纸不要急于画首先要好好的观察它观察它的布局由哪几类线构成的观察好就可以开工啦一般来说开始画时要建立几个图层一定要按照图纸上给的...

cad实习报告

20xx20xx学年第2学期实习名称AutoCAD绘图软件实习专业学号姓名实习地点网络中心四楼实习时间七月九日七月十一二日实习成绩指导教师签字西南交通大学峨眉校区二一三年七月十一二日一实习目的1巩固和进一步加学...

cad实习报告

cad实习报告cadgt实习报告一时间地点根据学校政策我们建筑装饰班在本学期第18周CAD上机实习主要是老师组织学生在学校阅览室内画建筑图纸二实行情况我们班由我们的AutoCAD认课老师卢燕卢老师指导学生们都在...

cad实习报告

20xx20xx学年第二学期实习名称cad实习专业学号姓名实习地点计算机实践中心实习时间实习成绩指导教师签字西南交通大学峨眉校区20xx年7月12日注后附纸若干内容包括实习目的和要求实习内容实习方式和安排实习完...

西南交大cad实习报告

20xx20xx学年第2学期实习名称AUTOCAD实习专业学号姓名实习地点网络中心三楼机房实习时间实习成绩指导教师签字西南交通大学峨眉校区20xx年7月12日AUTOCAD实习情况汇总一实习目的AUTOCAD是...

cad实习报告

图形图像制作09531班CAD实习报告陈姣前沿图形图像制作专业第二学期开的机械制图专业两周的实习课程是为巩固一学期的学习成果和熟练掌握并灵活运用所学知识绘制出正规的电气电路图从而为以后绘制复杂的图形打下坚实的基...

Cad实训报告

Cad实训报告为期一周的AutoCAD终于完了好呛啊每天不用上课起来就去机房画图回到宿舍还是画图可以说这个星期除了吃喝拉撒其他时间都在干同一件事画图不夸张的说连做梦都梦到在画图不过效果是显而易见实训的目的是让我...

cad实训心得1500字

cad实训心得1500字cad实训心得1500字一CAD实训总结为期一周的AutoCAD终于完了好呛啊每天不用上课起来就去机房画图回到宿舍还是画图可以说这个星期除了吃喝拉撒其他时间都在干同一件事画图不夸张的说连...

cad实训报告

河南理工大学高等职业学院建筑CAD系别建筑工程专业建筑工程技术班级建筑111班姓名20xx年11月日2建筑CAD技能训练任务书一训练目的通过本次技能训练使学生进一步熟悉建筑制图国家标准的有关规定巩固制图的基本知...

cad实习报告

CAD实习报告经过这学期的理论和上机学习使我们对有了基本掌握对于CAD这个课程学习也有了一个系统的学习和掌握我学到的东西很多首先对于电脑绘图不熟悉的我有很大的帮助现在的我用AutoCAD绘图的速度快了很多而且知...

cad实习报告

CAD实习报告学习建筑装饰这个专业,而CAD作为专业课,那首先应该知道,什么是CAD?CAD即计算机辅助设计(ComputerAidedDesign,CAD),其概念和内涵正在不断地发展中。19xx年x月,国际…

土木工程桥梁CAD实习报告总结

从20xx元月4号,大四上学期所有课程及考试结束后,我便来到xxx公司开始桥梁设计方面的实习。实习的过程是忙碌和充实的,每天都在接触新的东西,学习新的东西。在两个多月的实习过程中,主要参与以下工作:1)参与了x…

cad实习报告范文(7篇)