EDA课程设计

发布 2022-09-30 20:24:28 阅读 4875

第一章绪论。

1.1 系统背景。

20 世纪 90 年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如 cpld、 fpga)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了 eda 技术的迅速发展。 eda 技术就是以计算机为工具,设计者在 eda 软件平台上,用硬件描述语言 vhdl 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、 综合、优化、布局、布线和**,直至对于特定目标芯片的适配编译、逻辑映射和编程**等工作。eda 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

利用 eda 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出 ic 版图或 pcb 版图的整个过程的计算机上自动处理完成。 现在对 eda 的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有 eda 的应用。

目前 eda 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到 eda 技术。

1)主要内容和任务: 完成彩灯控制系统的设计与制作,在计算机上用 max+plus ?**后在实验箱上实现,熟悉可编程逻辑器件的使用,学会自己烧程序并应用于实践。

2)目标设计一个16彩灯(分上下两排,各8个)控制器,具有4种花样的变化。 整个系统有三个输入信号,分别为:

输入脉冲信号clk

复位清零信号rst

彩灯输入控制脉冲adder

最后按照fpga的开发流程和 vhdl语言建模、**、综合、**、适配,用eda6000实验箱上的fpga系统实现了相应的功能。

彩灯花样: ①上排向右下排向左,依次点亮后,上排向右,下排向左依次熄灭。

②上下两排,顺时针依次点亮后,以8倍速度逆时针依次熄灭。

③上下两排每间隔两灯点亮两灯后,均以整体向左连续跑动。

④上下两排均从中间两灯开始,向两边依次点亮后,从两边向中间开始熄灭。

library ieee;

use use

entity cnt4 is

port( rst,clk,ena: in std_logic;

zhuangtai : out std_logic_vector(1 downto 0) )

end cnt4;

architecture one of cnt4 is

beginprocess(clk,rst,ena)

variable q1 : std_logic_vector(1 downto 0);

begin

if rst='1' then q1:="00";

elsif clk'event and clk='1' then

if ena ='1' then

if q1<3 then q1:=q1+1;

else q1:="00";

end if;

end if;

end if;

zhuangtai<=q1;

end process;

end one;

状态控制器:四种彩灯花样以及彩灯的输出由四种不同状态控制

library ieee;

use use

entity c1 is

port( clk,rst: in std_logic;

s_z: in std_logic_vector(1 downto 0);

xianshi1: out std_logic_vector(7 downto 0);

xianshi2: out std_logic_vector(7 downto 0

end c1;

architecture one of c1 is

signal q:std_logic_vector(15 downto 0);

begin

process(clk,s_z)

variable a: std_logic_vector(3 downto 0):=0000";

beginif rst='1' then q<="0000000000000000";

elsif clk'event and clk='1' then

if s_z="00" then

if a=15 then a :=0000";

else a :=a+1;

end if;

case a is

when "0000" =q<="0000000000000000";

when "0001" =q<="1000000000000001";

when "0010" =q<="1100000000000011";

when "0011" =q<="1110000000000111";

when "0100" =q<="1111000000001111";

when "0101" =q<="1111100000011111";

when "0110" =q<="1111110000111111";

when "0111" =q<="1111111001111111";

when "1000" =q<="1111111111111111";

when "1001" =q<="1111111001111111";

when "1010" =q<="1111110000111111";

when "1011" =q<="1111100000011111";

when "1100" =q<="1111000000001111";

when "1101" =q<="1110000000000111";

when "1110" =q<="1100000000000011";

when "1111" =q<="1000000000000001";

when others =>q<="0000000000000000";

end case;

else q<="0000000000000000";

end if;

end if;

end process;

xianshi1<=q(15 downto 8);xianshi2<=q(7 downto 0);

end one;

频率选择与分频器:

library ieee;

use use

entity pin_8 is

port( clk,cout: in std_logic;

clk_8: out std_logic );

end pin_8;

architecture one of pin_8 is

begin

process(clk,cout)

variable q:std_logic_vector(2 downto 0);

variable c:std_logic;

beginif clk'event and clk='1' then

if q=7 then q:="000"; c:='1';

else q:=q+1;c:='0';

end if;end if;

if cout='1' then clk_8<=clk;

else clk_8<=c;

end if;

end process;

end one;

彩灯花样2:

library ieee;

use use

entity c2 is

port( clk,rst: in std_logic;

s_z: in std_logic_vector(1 downto 0);

xianshi1,xianshi2: out std_logic_vector(7 downto 0);

cout: out std_logic );

end c2;

architecture one of c2 is

signal q: std_logic_vector(15 downto 0);

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计时...