EDA课程设计

发布 2022-09-30 19:53:28 阅读 1925

安徽农业大学。

综合性(设计性)实践报告书。

实践课题: eda课程设计实践。

班级: 09电子信息工程2班。

姓名: 卫洋洋。

学号: 09168124

指导教师: 江朝晖。

2012 年 5 月 24 日。

一、 实践课题名称:

1. 十进制加法计数器(cpld\fpga)

2. 八位十六进制频率计(fpga)

二、课程设计目的:

1.课程设计是配合课堂教学而设置的实践性教学环节之一,在课程教学中占有重要的地位。其总的目的是让学生及时掌握和巩固课堂所学的知识,培养学生独立思考和实际动手的能力,为后续的学习和工作打下良好的科研基础。

2.eda课程设计的目的是让学生在熟悉传统电子系统设计方法的基础上,熟练掌握现代电子系统的设计和实现,较好地运用“自上而下”的层次设计思想。

3.运用eda技术的开发工具设计项目,了解项目设计步骤,学习编写技术文档,提高综合应用所学知识的能力,积累cpld\fpga的编程、设计经验,培养编写程序、调试程序的能力。

4.培养学生自主独立学习、吸取他人经验、探索研究的习惯。

三、课程设计流程。

1.十进制加法计数器(cpld)

程序部分:library ieee;

use use

entity cnt10 is

port(clk,rst,en:in std_logic;

cq:out std_logic_vector(3 downto 0);

cout:out std_logic);

end cnt10;

architecture beh** of cnt10 is

beginprocess(clk,rst,en)

variable cqi:std_logic_vector(3 downto 0);

beginif rst='1' then cqi:=(others=>'0');

elsif clk'event and clk='1' then

if en='1' then

if cqi<9 then cqi:=cqi+1;

else cqi:=(others=>'0');

end if;

end if;

end if;

if cqi=9 then cout<='1';

else cout<='0';

end if;

cq<=cqi;

end process;

end beh**;

1)新建设计及工程。

打开quartusⅱ,选择菜单file→new,新建vhdl file文件。

输入程序(程序见书本89页),选择file→s**e as,同时创建工程。

工程建立中,选择对应的cpld芯片。

2)程序编译及波形**。

程序编译,选择processing→start compilation,开始编译。

新建波形**文件,new→vector w**eform file。

设置**时间区域和在**文件中添加引脚。

进行**参数设置后,选择processing→start simulation,开始进行波形**。

3)引脚设置和**。

选择assignment→pin,进行引脚设置。

选择tool→programmer,弹出窗口,其中mode中选择为jtag,再选择hardware setup,对其进行设置,设置完成后,再对程序进行一次编译,就能点击start对芯片进行**。(cpld**文件是*.pof)

十进制加法计数器(fpga)

只是在芯片选择和引脚设置上有差异,其余步骤与cpld中的设置完全一样。选择assignment→device,改换为fpga对应的芯片。

引脚设置。编译**。(fpga**文件是*.sof)

2.八位十六进制频计器(fpga)

程序部分:测频控制电路:

library ieee;

use use

entity ftctrl is

port(clkk:in std_logic;

cnt_en:out std_logic;

rst_cnt:out std_logic;

load:out std_logic);

end ftctrl;

architecture beh** of ftctrl is

signal div2clk:std_logic;

beginprocess(clkk)

beginif clkk'event and clkk='1' then

div2clk<=not div2clk;

end if;

end process;

process(clkk,div2clk)

beginif clkk='0' and div2clk='0' then rst_cnt<='1';

else rst_cnt<='0';end if;

end process;

load<=not div2clk;cnt_en<=div2clk;

end beh**;

32位锁存器:

library ieee;

use entity reg32b is

port(lk:in std_logic;

din:in std_logic_vector(31 downto 0);

dout:out std_logic_vector(31 downto 0));

end reg32b;

architecture beh** of reg32b is

beginprocess(lk,din)

beginif lk'event and lk='1' then dout<=din;

end if;

end process;

end beh**;

32位计数器:

library ieee;

use use

entity counter32b is

port (fin:in std_logic;

clr:in std_logic;

enabl:in std_logic;

dout:out std_logic_vector(31 downto 0));

end counter32b;

architecture beh** of counter32b is

signal cqi:std_logic_vector(31 downto 0);

beginprocess(fin,clr,enabl)

beginif clr='1' then cqi<=(others=>'0');

elsif fin'event and fin='1' then

if enabl='1' then cqi<=cqi+1;end if;

end if;

end process;

dout<=cqi;

end beh**;

频率计顶层文件:

library ieee;

use entity freqtest is

port(clk1hz:in std_logic;

fsin:in std_logic;

dout:out std_logic_vector(31 downto 0));

end freqtest;

architecture struc of freqtest is

component ftctrl

port(clkk:in std_logic;

cnt_en:out std_logic;

rst_cnt:out std_logic;

load:out std_logic);

end component;

component counter32b

port (fin:in std_logic;

clr:in std_logic;

enabl:in std_logic;

dout:out std_logic_vector(31 downto 0));

end component;

component reg32b

port(lk:in std_logic;

din:in std_logic_vector(31 downto 0);

dout:out std_logic_vector(31 downto 0));

end component;

signal tsten1:std_logic;

signal clr_cnt1:std_logic;

signal load1:std_logic;

signal dto1:std_logic_vector(31 downto 0);

signal carry_out1:std_logic_vector(6 downto 0);

beginu1: ftctrl port map(clkk=>clk1hz,cnt_en=>tsten1,rst_cnt=>clr_cnt1,load=>load1);

u2: reg32b port map(lk=>load1,din=>dto1,dout=>dout);

u3: counter32b port map(fin=>fsin,clr=>clr_cnt1,enabl=>tsten1,dout=>dto1);

end struc;

1)新建设计及工程。

八位十六进制频率计由三个底层文件和一个顶层文件组成。三个底层文件分别为:测频控制电路文件,32位锁存器文件,32位计数器文件。

打开quartusⅱ,选择菜单file→new,新建每个底层文件及顶层文件vhdl file文件。

输入程序(程序见书本192-193页),选择file→s**e。在最后建立顶层文件时同时创建工程。

选择对应的fpga芯片。

2)程序编译及波形**。

对顶层文件的程序进行编译,选择processing→start compilation,开始编译。

新建波形**文件,new→vector w**eform file。

EDA课程设计

题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...

eda课程设计

哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...

eda课程设计

目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...