第一章绪论。
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计时...