当前位置:文档之家› EDA课程设计6235

EDA课程设计6235

EDA课程设计6235
EDA课程设计6235

苏州市职业大学课程设计说明书名称任意波形发生器设计

2010年1月18日至2010年1月22日共1 周

院系电子信息工程系

班级08电子2

姓名吕行

系主任曹丰文

教研室主任陆春妹

指导教师孙加存

目录

第1章绪论 (3)

1.1 EDA技术概述 (3)

1.1.1 EDA技术概念 (3)

1.1.2 EDA技术的发展趋势 (3)

1.1.3 EDA技术的应用 (4)

1.2 EDA技术的设计方法 (5)

1.2.1 设计方法 (5)

1.2.2 设计过程 (5)

1.3 数字系统设计 (6)

1.3.1数字系统设计模型 (6)

1.3.2 数字系统设计基本步骤 (7)

第2章设计要求 (7)

第3章:系统的设计 (8)

3.1 设计思路 (8)

3.3 设计步骤及流程 (8)

3.2.1 设计流程 (8)

3.2.2 设计步骤 (8)

3.3 模块分析 (9)

3.3.1 分频模块 (9)

3.3.2 正弦函数模块 (10)

3.3.3 三角波模块 (11)

3.3.4 方波 (11)

3.3.5 特殊波形 (12)

3.3.6 分频fp 1Hz (13)

3.3.7 测频模块 (13)

3.3.8 控制模块 (15)

3.4 硬件实现及调试结果 (16)

3.4.1 调试结果 (16)

第4章课程设计总结(心得体会) (18)

参考文献 (19)

第1章绪论

1.1 EDA技术概述

1.1.1 EDA技术概念

电子设计自动化(EDA)技术是以计算机为基础工作平台,以微电子技术为物理基础,以现代电子技术设计技术为灵魂,采用计算机软件工具,最终实现电子系统或专用集成电路(ASIC)的设计。

1.1.2 EDA技术的发展趋势

从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。

中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员研发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。

在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与

计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。

外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。

中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。

在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。

EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平沿很有限,需迎头赶上。

1.1.3 EDA技术的应用

EDA技术在教学、科研、产品设计与制造等方面都发挥着巨大的作用。在教学方面,几乎所有的理工科院校的电子信息类专业都开设了EDA课程,主要目的是让学生了解EDA的基本概念和基本原理,掌握用HDL语言编写规范的程序,使用EDA工具进行电子课程的实验并进行简单系统的设计。

在科研方面,主要利用电路的仿真工具(EWB或Pspice)进行电路设计与仿真,利用虚拟仪器进行产品测试,将CPLD/FPGA器件实际应用到仪器设备中,从事PCB设计和ASIC设计等。

在产品设计与制造方面,EDA技术应用与仿真、生产、测试等各个环节,如PCB的制造、电子设备的研制与生产、电路板的焊接、运用FPGA/CPLD进行数字系统的设计与制作、ASIC的流片过程,等等。EDA技术已经应用与各行各业,在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域都有EDA技术的应用。另外,EDA软件的功能也日益强大。

1.2 EDA技术的设计方法

1.2.1 设计方法

数字系统的设计可以采用不同的方法,具体选择哪一种设计方法有多方面的考虑。在复杂的IC设计环境下,概括起来只有两种设计方法:

一种为由底向上(Bottom-up)的设计方法,也称为传统的设计方法。这种设计方法是传统的ICPCB的设计方法。在IC复杂程度小于100000门时,常用这种方法,但是随着设计复杂程度的增加,该方法会产生产品生产周期长、可靠性低、开发费用高等问题。

另一种为自顶向下(Top-down)的设计方法,也称为现代的设计方法。采用这种技术进行设计可以分为三个主要阶段:系统设计、系统的综合优化和系统实现,各个阶段之间并没有绝对的界限。

1.2.2 设计过程

本节将简单介绍用EDA技术进行数字系统设计的过程。完整地了解EDA 技术进行设计开发的流程对于正确选择和使用EDA软件、优化设计项目、提高设计效率十分有益。一个完整的、典型的EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件本身的组成结构。下图是运用EDA技术进行数字系统设计的流程图。

图1.1 应用FPGA/CPLD的EDA开发流程

由图1.1知,可以把EDA设计流程分为:设计输入、时序与功能门级仿真、综合适配与下栽。

1.3 数字系统设计

日常生活中可以发现无数数字系统的例子,如自动播放器、CD播放机、电话系统、个人计算机以及视频游戏等。数字系统中的数字来自二进制计数系统,只有两个可能的值:0和1,因此,数字系统必须实现如下功能:(1)将现实世界的信息转换成数字网络可以理解的二进制“语言”。

(2)仅用数字0和1完成所要求的计算和操作。

(3)将处理的结果以我们可以理解的方式返回给现实世界。

1.3.1数字系统设计模型

数据子系统主要完成数据的采集、存储、运算处理和传输任务,它主要由存储器、运算器、数据选择器等组成,与外界进行数据交换,它所有的存取、运算等操作都是在控制子系统发出的控制信号的作用下进行的。数据子系统与控制子系统之间的联系是:数据子系统接受由控制子系统来的控制信号,同时将自己的操作进程作为条件信号输出给控制子系统。控制子系统是执行算法的核心,它必须具备记忆能力,因此是一个时序系统。它由一些组合逻辑电路和触发器等组成,与数据子系统共享一个时钟。控制子系统的输入是外部控制信号和由数据子系统来的条件信号,按照设计方案中既定的算法程序,按序地进行状态转换,与每个状态以及有关条件对应的输出作为控制信号去控制数据子系统的操作顺序。

图1.2 数字系统方框图

1.3.2 数字系统设计基本步骤

运用EDA技术设计数字系统采用自上而下的设计方法,设计的基本步骤可以归纳如下:1.明确设计要求 2.确定系统方案 3.受控制的设计 4.控制器的设计

第2章设计要求

电路要求可以产生方波、正弦波、三角波,波形的频率可调,通过控制开关控制产生的波形,并通过控制按键控制设计信号的频率,改变频率的方法可以采用分频和DDS的原理进行控制信号频率。并进行D/A转换电路与滤波电路的设计,通过采用施密特触发器对波形进行整形,设计一频率测量电路对所产生的频率进行测量,通过数码管显示出来,并在数码管上显示当前的波形代码。

第3章:系统的设计

3.1 设计思路

采用由底向上的设计方法,根据系统对硬件的要求详细编制技术规格书,画出系统控制流程图,仔细分析系统要求达到的各个功能,将系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;进行各功能模块的设计,运用VHDL语言设计出各个功能模块;在软件环境下导出各个功能框图,在将各个模块按系统要求达到的功能连接起来,做出系统的原理图;编译、调试完成后,在下载到硬件结构中,进行硬件调试。

3.3 设计步骤及流程

3.2.1 设计流程

图3.1 设计流程图

3.2.2 设计步骤

1、编写各个模块的源程序。

2、建立工程,以顶层原理图文件名为工程名,把先前建立的VHDL程序加入这个工程中,并对每个VHDL程序创建原理图符号,通过原理图输入设计顶层原理图。检查编译。

3、选择元器件,定义好管脚。

4、编译,下载编程,进行硬件测试。

3.3 模块分析

经过功能分析,将系统分为几个功能模块,分别为分频模块,正弦函数模块,三角波模块,方波,特殊波形,分频1Hz,测频模块,控制模块。将模块的VHDL 程序创建原理图符号,按下图建立顶层原理图。

图3.2 顶层原理框图

3.3.1 分频模块

分频器是数字电路中常用的电路之一,用VHDL语言设计分频器的关键是输出电平的翻转的时机。通过计数方法进行电平的翻转是常用的设计方法。此处是偶数分频器。以下是分频模块的程序清单:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE

IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fp IS

port(clk:in std_logic; --input 1K Hz k:in integer range 7 downto 0;

clko:buffer std_logic);

end fp;

architecture a of fp is

signal temp:std_logic_vector(3 downto 0); begin

process(clk)

begin

if clk'event and clk='1' then if temp

temp<=temp+1;

else

temp<="0000";

clko<=not clko;

end if;end if;

end process;end a;

3.3.2 正弦函数模块

Sin.vhd程序清单:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity sin is

port(clk4:in std_logic;

k:in integer range 7 downto 0;

dd4:out integer range 255 downto 0);

end sin;

architecture dacc of sin is

signal q: integer range 63 downto 0; begin

process(clk4)

begin

if (clk4'event and clk4='1') then

q<=q+k;

end if;

end process;

process(q)

begin

case q is

when 00=>dd4<=255;

when 01=>dd4<=254;

when 02=>dd4<=253;

when 03=>dd4<=250;

when 04=>dd4<=245;

when 05=>dd4<=240;

when 06=>dd4<=234;

when 07=>dd4<=226;

when 08=>dd4<=218;

when 09=>dd4<=208;

when 10=>dd4<=198;

when 11=>dd4<=188;

when 12=>dd4<=176;

when 13=>dd4<=165;

when 14=>dd4<=152;

when 15=>dd4<=140;

when 16=>dd4<=128;

when 17=>dd4<=115; when 18=>dd4<=103; when 19=>dd4<=90; when 20=>dd4<=79; when 21=>dd4<=67; when 22=>dd4<=57; when 23=>dd4<=47; when 24=>dd4<=37; when 25=>dd4<=29; when 26=>dd4<=21; when 27=>dd4<=15; when 28=>dd4<=10; when 29=>dd4<=5; when 30=>dd4<=2; when 31=>dd4<=1; when 32=>dd4<=0; when 33=>dd4<=1; when 34=>dd4<=2; when 35=>dd4<=5; when 36=>dd4<=10; when 37=>dd4<=15; when 38=>dd4<=21; when 39=>dd4<=29; when 40=>dd4<=37; when 41=>dd4<=47; when 42=>dd4<=57; when 43=>dd4<=67; when 44=>dd4<=79; when 45=>dd4<=90; when 46=>dd4<=103; when 47=>dd4<=115; when 48=>dd4<=128; when 49=>dd4<=140; when 50=>dd4<=165; when 51=>dd4<=176; when 52=>dd4<=188; when 53=>dd4<=198; when 54=>dd4<=208; when 55=>dd4<=218; when 56=>dd4<=226; when 57=>dd4<=234;

when 58=>dd4<=240; when 59=>dd4<=245; when 60=>dd4<=250; when 61=>dd4<=253; when 62=>dd4<=254;

when 63=>dd4<=255;

when others=>null;

end case;

end process;

end dacc;

3.3.3 三角波模块

由于三角波是线性增加和线性减少的两条线段构成的,所以可以直接用VHDL语言编程来实现三角波。当线性自加到最高点时,有控制语句控制其自减,直到减到最低点时再重复之前的过程,从而实现三角波。程序清单如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity tria is

port(clk3:in std_logic;

k:in integer range 7 downto 0;

dd3:out integer range 255 downto 0);

end tria;

architecture dacc of tria is

signal b:std_logic;

signal c:integer range 255 downto 0; begin

process(clk3)

begin

if (clk3'event and clk3='1') then if(b='0') then

c<=c+k;

if(c>=64) then

b<='1';

end if;

elsif(b='1') then

c<=c-k;

if(c<=1) then

b<='0';

end if;

end if;

dd3<=c;

end if;

end process;end dacc

3.3.4 方波

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity square is

port(clk1 : in std_logic;

k:in integer range 7 downto 0;

dd1 : buffer integer range 255 downto 0); end square;

architecture dacc of square is

signal q: integer range 255 downto 0;

begin

process(clk1)

begin

if (clk1'event and clk1='1') then

q<=q+k;

end if;

end process;

process(q)

begin

case q is

when 0 to 31=>dd1<=255;

when 32 to 63=>dd1<=127;

when others=>null;

end case;

end process

end dacc;

3.3.5 特殊波形

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity sintra is

port(clk4:in std_logic;

k:in integer range 7 downto 0;

dd4:out integer range 255 downto 0); end sintra;

architecture dacc of sintra is

signal q: integer range 63 downto 0; begin

process(clk4)

begin

if (clk4'event and clk4='1') then

q<=q+k;

end if;

end process;

process(q)

begin

case q is

when 00=>dd4<=255;

when 01=>dd4<=254;

when 02=>dd4<=253;

when 03=>dd4<=250;

when 04=>dd4<=245;

when 05=>dd4<=240;

when 06=>dd4<=234;

when 07=>dd4<=226;

when 08=>dd4<=218;

when 09=>dd4<=208;

when 10=>dd4<=198;

when 11=>dd4<=188;

when 12=>dd4<=176;

when 13=>dd4<=165;

when 14=>dd4<=152;

when 15=>dd4<=140;

when 16=>dd4<=128;

when 17=>dd4<=120;

when 18=>dd4<=112;

when 19=>dd4<=104;

when 20=>dd4<=96; when 21=>dd4<=88; when 22=>dd4<=80; when 23=>dd4<=72; when 24=>dd4<=64; when 25=>dd4<=56; when 26=>dd4<=48; when 27=>dd4<=40; when 28=>dd4<=32; when 29=>dd4<=24; when 30=>dd4<=16; when 31=>dd4<=8; when 32=>dd4<=0; when 33=>dd4<=8; when 34=>dd4<=16; when 35=>dd4<=24; when 36=>dd4<=32; when 37=>dd4<=40; when 38=>dd4<=48; when 39=>dd4<=56; when 40=>dd4<=64; when 41=>dd4<=72; when 42=>dd4<=80; when 43=>dd4<=88; when 44=>dd4<=96; when 45=>dd4<=104; when 46=>dd4<=112; when 47=>dd4<=120; when 48=>dd4<=128; when 49=>dd4<=140; when 50=>dd4<=165; when 51=>dd4<=176; when 52=>dd4<=188; when 53=>dd4<=198; when 54=>dd4<=208; when 55=>dd4<=218; when 56=>dd4<=226; when 57=>dd4<=234; when 58=>dd4<=240; when 59=>dd4<=245; when 60=>dd4<=250; when 61=>dd4<=253; when 62=>dd4<=254;

when 63=>dd4<=255; when others=>null;

end case;

end process; end dacc;

3.3.6 分频fp 1Hz

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fp1HZ IS

PORT(clk:in std_logic; --10M

clk1Hz: buffer STD_LOGIC);

END fp1hz;

ARCHITECTURE one OF fp1hz IS SIGNAL test: integer range 0 to 250000; begin

process(clk) begin

if clk'event and clk='1' then if test<131000 then

test<=test+1;

else

test<=0;

clk1hz<=not clk1hz;

end if;

end if;

end process;

3.3.7 测频模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_arith.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY freq IS

PORT(fsin: in STD_LOGIC;

clk: IN STD_LOGIC;

kp,kf:in integer range 7 downto 0;

dout0,dout1,dout2,dout3: buffer STD_LOGIC_VECTOR(3 DOWNTO 0)); END freq;

ARCHITECTURE one OF freq IS

SIGNAL test_en: STD_LOGIC;

SIGNAL clear: STD_LOGIC;

SIGNAL data: STD_LOGIC_VECTOR(19 DOWNTO 0);

signal datap:integer range 0 to 100000; signal pout0,pout1,pout2,pout3: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

PROCESS(clk)

BEGIN

IF clk'event AND clk='1' THEN test_en<=NOT test_en;

END IF;

END PROCESS;

clear<=NOT clk AND NOT test_en; PROCESS(fsin)

BEGIN

IF clear='1' THEN data<="00000000000000000000";

ELSIF fsin'event AND fsin='0' THEN

data<=data+1;

END IF;

end process;

process(kp,kf,data)

variable datak:std_logic_vector(19 downto 0); begin

datak:=data;

case kp is

when 0=>datak:='0'&data(19 downto 1); when 1=>datak:="00"&data(19 downto 2); when 2=>datak:="000"&data(19 downto 3); when 3=>datak:="0000"&data(19 downto 4); when 4=>datak:="00000"&data(19 downto 5); when 5=>datak:="000000"&data(19 downto 6);

when 6=>datak:="0000000"&data(19 downto 7);

when 7=>datak:="00000000"&data(19 downto 8);

end case;

case kf is

when 0=>datak:=data(18 downto 0)&'0'; when 1=>datak:=data(17 downto 0)&"00"; when 2=>datak:=data(16 downto 0)&"000"; when 3=>datak:=data(15 downto 0)&"0000"; when 4=>datak:=data(14 downto 0)&"00000"; when 5=>datak:=data(13 downto 0)&"000000";

when 6=>datak:=data(12 downto 0)&"0000000";

when 7=>datak:=data(11 downto 0)&"00000000";

end case;

datap<=conv_integer(datak(18 downto 4));

if datap>999 then

datap:=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999;

pout3<=pout3+1;

end if;

if datap>999 then

datap<=datap-999; pout3<=pout3+1; end if;

if datap>999 then datap<=datap-999; pout3<=pout3+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>99 then datap<=datap-99; pout2<=pout2+1; end if;

if datap>9 then datap<=datap-9;

pout1<=pout1+1; end if;

if datap>9 then datap<=datap-9; pout1<=pout1+1; end if;

if datap>9 then datap<=datap-9; pout1<=pout1+1; end if;

if datap>9 then datap<=datap-9; pout1<=pout1+1; end if;

if datap>9 then datap<=datap-9; pout1<=pout1+1; end if;

if datap>9 then datap<=datap-9; pout1<=pout1+1; end if; if datap>9 then

datap<=datap-9;

pout1<=pout1+1;

end if;

if datap>9 then

datap<=datap-9;

pout1<=pout1+1;

end if;

if datap>9 then

datap<=datap-9;

pout1<=pout1+1;

end if;

pout0<=conv_std_logic_vector(datap,4); END PROCESS;

PROCESS(test_en,data)

BEGIN

IF test_en'event AND test_en='0' THEN

dout0<=pout0;

dout1<=pout1;

dout2<=pout2;

dout3<=pout3;

END IF; END PROCESS;END one;

3.3.8 控制模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity control is

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

k0,k1,k2,k3:in integer range 255 downto 0;

qout:out integer range 255 downto 0);

end control;

architecture a of control is

begin

process(sel,k0,k1,k2,k3)

begin

if sel="00" then

qout<=k0;

elsif sel="01" then

qout<=k1;

elsif sel="10" then

qout<=k2;

elsif sel="11" then

qout<=k3;

end if;

end process;

end a;

3.4 硬件实现及调试结果

3.4.1 调试结果

定义好管脚,下载程序到硬件上,编译调试,控制SEL的值,在示波器上看到产生的波形图如下:

1、当SEL=00时,产生正弦波:

2、当SEL=01时,产生三角波:

3、当SEL=10时,产生方波:

4、当SEL=11时,产生殊波形:

第4章课程设计总结(心得体会)

本周为EDA课程实训周,在这短短的五天中,我进一步了解到了EDA技术的发展趋势、概念、设计方法,不仅巩固了平时所学的关于EDA技术的知识,例如分频模块,测频模块等;也学到了更多关于EDA的知识。刚开始的时候,底层的

模块设计和顶层的原理图的连接很快就做好了。也遇到了些小问题,但是在与同

学的探讨下都被我们一一解决了。在硬件调试中,我们就遇到大问题了,不论怎么调试都找不到解决的办法,最后在老师的指导下,我们还是把整个系统功能都调试出来了。虽然这次课程设计是独立完成的,但是我认为还是培养了团队合作,有些时候我们也需要别人的帮助,有的时候可能遇到一些问题自己不能解决,这时我们应该虚心向老师、同学请教,只能这样才能更好的解决问题。

课程设计虽然结束了,但是我们还有很多的事情要做,对仍然不熟悉或不了解的知识点我们要尽快的去学习了解,对课程设计中出现的问题我们还要去认真的分析研究。还有我们还需要去增强自己的动手能力,去不断的锻炼,只有这样该课程设计才能发挥最大的作用。

参考文献

[1] 孙加存《电子设计自动化》西安电子科技大学出版社 2008

[2] 焦素敏《EDA应用技术》北京清华大学出版社 2005

[3] 江国强《EDA技术与应用》北京电子工业出版社 2005

EDA课程设计——多功能数字钟

哈尔滨工业大学(威海) 电子学课程设计报告带有整点报时的数字钟设计与制作 姓名: 蒋栋栋 班级: 0802503 学号: 080250331 指导教师: 井岩

目录 一、课程设计的性质、目的和任务 (3) 二、课程设计基本要求 (3) 三、设计课题要求 (3) 四、课程设计所需要仪器 (4) 五、设计步骤 (4) 1、整体设计框图 (4) 2、各个模块的设计与仿真 (4) 2.1分频模块 (4) 2.2计数器模块 (6) 2.3控制模块 (10) 2.4数码管分配 (13) 2.5显示模块 (14) 2.6报时模块 (16) 六、调试中遇到的问题及解决的方法 (18) 七、心得体会 (18)

一、课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由于创新基于实践、源于实践,实践出真知,实践检验真理。实践活动是创新的源泉,也是人才成长的必由之路。 通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。 二、课程设计基本要求 掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。 三、设计课题要求 (1)构造一个24小时制的数字钟。要求能显示时、分、秒。 (2)要求时、分、秒能各自独立的进行调整。 (3)能利用喇叭作整点报时。从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。整点报时声的频率应与其它的报时声频有明显区别。 #设计提示(仅供参考): (1)对频率输入的考虑 数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。 (2)计时部分计数器设计的考虑 分、秒计数器均为模60计数器。 小时计数为模24计数器,同理可建一个24进制计数器的模块。 (3)校时设计的考虑 数字钟校准有3个控制键:时校准、分校准和秒校准。 微动开关不工作,计数器正常工作。按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。 (4)报时设计的考虑

eda课程设计报告多功能数字钟设计大学论文

湖北大学物电学院EDA课程设计报告(论文) 题目:多功能数字钟设计 专业班级: 14微电子科学与工程 姓名:黄山 时间:2016年12月20日 指导教师:万美琳卢仕 完成日期:2015年12月20日

多功能数字钟设计任务书 1.设计目的与要求 了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解 2.设计内容 1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开; 2,能用按键调时调分; 3,能整点报时,到达整点时,蜂鸣器响一秒; 4,拓展功能:秒表,闹钟,闹钟可调 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中) (空一行) 1 引言 (1) 2 总体设计方案 (1) 2.1 设计思路 (1) 2.2总体设计框图 (2) 3设计原理分析 (3) 3.1分频器 (4) 3.2计时器和时间调节 (4) 3.3秒表模块 (5) 3.4状态机模块 (6) 3.5数码管显示模块 (7) 3.6顶层模块 (8) 3.7管脚绑定和顶层原理图 (9) 4 总结与体会 (11)

多功能电子表 摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能 关键词:Verilog语言,多功能数字钟,数码管显示; 1 引言 QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然 2 总体设计方案 2.1 设计思路 根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。这些模块在顶层原理图中相互连接作用 3 设计原理分析 3.1 分频器 分频模块:将20Mhz晶振分频为1hz,100hz,1000hz分别用于计数模块,秒表模块,状态机模块 module oclk(CLK,oclk,rst,clk_10,clk_100); input CLK,rst; output oclk,clk_10,clk_100;

EDA课程设计---流水灯设计

EDA课程设计流水灯设计

目录 一、摘要··3 二、流水灯设计目的··4 三、流水灯设计流程··4 四、流水灯设计程序··5 五、流水灯设计管脚分配··7 六、功能仿真图··8 七、原理图波形图··9 八、设计注意事项··10

九、课程设计总结··11 十、参考文献··12 十一、评分表··13 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、

自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。

EDA技术课程设计报告

课程设计任务书设计题目1:数码管显示数字钟设计

院(系)分管领导:教研室主任:指导教师: 2017年6月23日

目录 第1章引言 0 第2章电路原理 0 第3章程序设计 (1) 顶层模块设计 (2) 时钟分频模块设计 (2) 按键驱动模块设计 (2) 时钟计数模块设计 (3) 整点报时模块 (4) LED灯花样显示模块 (5) 数码管显示模块设计 (5) 第4章调试、测试分析及结果 (7)

调试 (7) 测试分析 (7) 结果 (9) 第5章小结 (10) 参考文献 (11) 附录电路图及程序 (11)

第1章引言 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL 或者Verilog HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。 Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 此次课程设计我们运用QuartusⅡ这个软件,使用Verilog HDL语言进行编程。 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。 本次课程设计要求利用EDA技术,设计一个数码管显示数字钟的样品,数字钟要求具备以下功能: 1、具有时、分、秒,计数显示功能,以24小时循环计时; 2、具有清零,调节小时、分钟功能; 3、具有整点报时功能,整点报时的同时LED花样显示。 第2章电路原理 数码管显示数字钟设计,运用到8位数码管,要求其中6位数码管动态显示,分别显示时、分、秒的计数,同时对时间进行设置,数字钟的总体功能按照要求可以分为基本的数字时钟显示(具有时、分、秒,计数显示功能,以24小时循环计时)、手动校准(具有清零,调节小时、分钟功能)、整点报时、LED灯花样显示

EDA课程设计报告资料

课程设计 设计题目: 学生姓名: 学号: 专业班级: 指导教师: 2015年月日

设计 题目成绩 课 程 设 计 主 要 内 容 指 导 教 师 评 语 签名:20 年月日

设计题目:测量放大器电路原理图和PCB板设计 一、实验目的 1.了解学习Protel 99SE的目的与意义; 2.掌握Protel 99SE绘制电路原理图方法与技巧; 3.掌握PCB设计方法与技巧。 二、实验要求 1.利用Protel 99SE绘制一张电路图; 2.对绘制好的电路图进行ERC检查; 3.生成网络表; 4.生成元件列表; 5.利用Protel 99SE完成对应的双面印刷电路板设计。 三、功率放大器设计 实验原理图如下图所示: 图1

四、protel制图 4.1设计电路原理图 1.电路原理图 电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图的设计一般有如下步骤: (1)设置原理图设计环境; (2)放置元件; (3)原理图布线; (4)编辑和调整; (5)检查原理图; (6)生成网络表。 2.设计印刷电路板 印刷电路板设计是从电路原理图变成一个具体产品的必经之路,因此,印刷电路板设计是电路设计中最重要、最关键的一步。通常,印刷电路板设计的具体步骤如下: (1)规划电路板; (2)设置参数; (3)装入网络表; (4)元器件布局; (5)自动布线; (6)手工调整。 4.2 绘制测量放大器电路原理图 原理图设计最基本的要求是正确性,其次是布局合理,最后是在正确性和布局合理的前提下力求美观。根据以上所述的电路原理图设计步骤,两级放大器电路原理图设计过程如下: 1.启动原理图设计服务器 进入Protel 99 SE,创建一个数据库,执行菜单File/New命令,从框中选择原理图服务器(Schematic Document)图标,双击该图标,建立原理图设计文档。双击文档图标,进入原理图设计服务器界面。如图2

EDA课程设计报告

湖北职业技术学院《EDA技术》课程设计报告 题目动态输出4位十进制频率计的设计所在学院电子信息工程学院 专业班级电信08304 学生姓名马强 学号08024839 指导教师王芳 完成日期2010年11月18 日

目录 一、概述 (3) 二、设计正文 (4) (一)设计目的 (4) (二)设计实现 (4) 1、端口说明 (4) 2、Cnt10模块说明 (5) 3、Tctl模块说明 (6) 4、锁存器reg16模块说明 (8) 5、Scan_led模块说明 (9) 6、顶层文件仿真 (10) 7、硬件下载 (11) 三、总结 (13) 四、感言 (14) 五、参考文献 (15)

概述 此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有1Hz的抖动。通过这次的设计能够更清楚的理解VHDL程序的描述语言,进行简单程序的编写和仿真。

动态输出4位十进制频率计的设计 一、目的 1.学习掌握频率计的设计方法。 2.掌握动态扫描输出电路的实现方法。 3.学习较复杂的数字系统设计方法 二、设计实现 4位十进制频率计外部接口如图1所示,顶层文件如图2所示,包含4中模块;Tctl、reg16、scan_led和4个cnt10。 (1)端口说明 F1Hz:给Tctl模块提供1Hz的频率输入。 Fin:被测频率输入。 scan_led:给scan_led模块提供扫描输入频率输入。 bt[1..0]:片选信号输出。 sg[6..0]:译码信号输出。 cout:进位输出。

EDA课程设计

课程设计说明书 课程:EDA技术基础 题目:数字钟的设计 闹钟与整点报时模块 学生姓名:XXX 学号201265110204 班级 :1203班 专业:电子信息与科学 指导教师:XXX 2014年12月20日 长沙理工大学课程设计任务书 物理与电子科学学院电子信息与科学专业1203班姓名王玲课程名称EDA技术基础 题目数字钟的设计

长沙理工大学课程设计成绩评定表

目录 1数字钟设计闹钟模块基本任务要求4 2设计思想4 3简述闹钟模块的输入与输出5 4分进程描述6 5仿真结果与分析7 6简述数字钟的设计总成果10 7总结11 参考文献13 代码附件13

基本任务要求:运用QuartusⅡ13.1软件平台,用VHDL语言描述并设计的闹钟模块满足可调闹钟时间,当时钟时间到达闹钟时间后会响闹铃,(由于实验室权限问题会以FPGA开发板上12个LED灯交替发光来表现);整点报时过程表现为整点的前十秒内响铃,(以FPGA开发板上一个LED灯交替发光来实现)。 设计思想:闹钟模块要以分频模块、计数器模块和译码显示模块为基础,将闹钟模块分为三个进程,一个进程用来实现调闹钟,一个进程来实现闹响闹钟(即实现LED灯交替发光),另一个进程来是实现整点报时。 (上面截图为数字钟整体编译后的RTL电路的闹钟模块) 简述闹钟模块图的输入与输出:上图中的输入粗黑实线为计数器模块输出的小时、分钟的高低位和秒钟的高位(都用四位的二进制表示);输出的粗黑实线为定的闹钟时间(包括小时和分钟),将送到译码显示模块显示闹钟时间,闹钟时间与时钟都在FPGA上的数码管显示,用二选一实现交替显示。clk和clk1都是经过分频器分出的不同频率的信号分别用于整点报时的闪灯脉冲与闹钟调时、闹响的闪灯脉冲。

EDA课程设计流水灯设计

EDA课程设计 流水灯设计 姓名: 金兼强 专业: 电子信息工程 班级: 093252 学号: 09325211 同组人:黄奕林简讯 黄树金兼强黄玉涛 指导老师:黄河 2012-11-9

目录 一、摘要〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 二、流水灯设计目的〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 三、流水灯设计流程〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 四、流水灯设计程序〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 五、流水灯设计管脚分配〃〃〃〃〃〃〃〃〃〃7 六、功能仿真图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃8 七、原理图波形图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃9 八、设计注意事项〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃10 九、课程设计总结〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃11 十、参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12 十一、评分表〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 13

一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。 利用学到的电子技术知识,通过布置具有一定难度的设计题目,帮助学生熟悉课程设计任务和设计方法。

EDA技术实践课程设计--24进制计数器课件

东北石油大学EDA技术实践课程设计 课程EDA技术实践课程设计 题目24进制计数器 院系电气信息工程学院电气系 专业班级 学生姓名 学生学号 指导教师 年7月25日

EDA技术实践课程设计任务书 课程EDA技术实践课程设计 题目24进制计数器 专业电气工程及其自动化姓名学号 主要内容: 1.熟练掌握Quartus II软件的使用。 2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。 3.学会用例化语句对EDA电路设计中顶层电路进行描述。 基本要求: 1.熟悉仿真开发软件Quartus II的使用; 2.根据功能要求,用原理图或文本输入方式完成设计; 3.用Quartus II做波形仿真调试; 4.下载至EDA试验仪调试设计。 主要参考资料: [1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元.《集成电子技术基础教程》[M].北京:高等教育出版社,2002. [5]王金明,杨吉斌. 《数字系统设计与Verilog HDL》[M].北京:电子工业出版社,2002. 完成期限 指导教师 专业负责人 年7 月18日

目录 1设计 (1) 2方案选择与电路原理图的设计 (1) 2.124进制计数器的基本原理 (1) 2.2设计流程图 (1) 2.3原理图 (1) 374LS161元件说明 (2) 3.1 简介 (2) 3.274ls161管脚图与介绍 (2) 3.374ls161功能表 (3) 3.474ls161主要特点 (3) 4设计过程 (4) 4.1新文件的建立 (4) 4.2宏功能模块的使用 (5) 4.3普通元件的添加 (8) 4.4 电路连接 (9) 5功能仿真 (9) 6出现的问题及调试方法 (11) 7总结 (11) 参考文献 (12) 附录VHDL语言编写的该程序清单 (13)

EDA课程设计报告8线-3线优先编码器

Xxxxx学院 《EDA技术》课程报告 设计题目:8线-3线优先编码器班级:应用电子1101班姓名: 学号: 指导老师: 日期:

目录 一、8-3优先编码器设计原理分析 (3) 二、8-3优先编码器模块的源程序 (3) 三、8-3优先编码器仿真结果 (4) 四、设计总结和心得体会 (5) 五、参考资料 (5)

一、8-3优先编码器设计原理分析 8-3优先编码器输入信号为din0,d in1,din2,din3,din4,din5,din6和din7,输出信号为out2、out1、out0。输入信号中din7的优先级别最低,依次类推,din0的优先级别最高。也就是说若din0输入为1(即为高电平)则无论后续的输入信号怎么样,对应的这种状态一样,如若din0输入为0(即为低电平)则看优先级仅次于din0的din1状态决定,依次类推。因为din0到din7共8中状态,可以用3位二进制编码来表示。8-3优先编码器真值表如下表所示。 表1 8-3优先编码器真值表 二、8-3优先编码器模块的源程序 8-3优先编码器由VHDL程序来实现,VHDL语言描述如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);output : OUT STD_LOGIC_VECTOR(0 TO 2);EANABLE: in std_logic ); END coder; ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (din) BEGIN IF (EANABLE='0') THEN IF (din(0)='1') THEN output <= "000" ; ELSIF (din(1)='1') THEN output <= "100" ;

EDA课程设计

可编程逻辑器件电路设计课程设计报告 出租车计费器的FPGA实现 姓名:邱建华,欧鹏逸,吴丹阳 班级:09电信1 学号:200930580120 200930580117 200930690122 指导老师:陈楚 日期:2011.12.12~2011.12.20 华南农业大学工程学院

摘要 近年,随着城市活动频繁增多,市民生活节奏加快,出租车日益成为我们日常的出行必不可少得交通工具,它为我们提供了极大的便利。出租车计费器是乘客与司机双方的交易准则,是出租车中最重要的工具,它关系着交易双方的利益,用户对出租车计费器的要求也越来越高。因此,设计一个性能稳定,计费准确,易操作和可靠耐用的出租车计费器势在必行。 本课程设计内容是利用VHDL语言、PLD设计基于FPGA的出租车计费系统,选用ALTERA公司低功耗、低成本、高性能的FPGA芯片,以MAX+PLUSⅡ软件作为开发平台,设计了出租车计费器系统程序并进行了编译,功能仿真和下载。使其实现计费以及预置和模拟汽车启动、加速、停止、暂停等功能,并动态扫描显示车费数目。将计费器分成计费电路模块,数据转换模块,动态扫描模块,选择信号模块,显示模块,译码模块进行模拟仿真设计加以实现。运用顶层设计思路设计好各个底层文件对各个底层文件进行功能仿真,并用文本方法来实现顶层文件的设计,对顶层文件进行功能仿真,并把顶层文件下载到实验箱的FPGA 加以硬件分析。 关键词: 出租车计费器VHDL MAX+PLUS ⅡFPGA

目录 1 方案比较与选择(须详细阐述创新点或新见解) (01) 1.1 课题选择 (01) 1.2 方案一选择分析 (01) 1.3 方案二选择分析 (02) 1.4 选择方案一 (04) 2 底层文件仿真与分析 (04) 2.1 计数模块 (04) 2.2 转换模块 (06) 2.3 显示模块 (07) 2.4 译码模块 (08) 2.5 通道选择模块 (08) 3 顶层文件仿真与分析 (09) 3.1 顶层文件分析 (09) 3.2 顶层文件仿真 (10) 4硬件验证分析 (11) 5课程设计心得 (11) Abstract (13) 参考文献 (14) 附录(源代码)

EDA技术实践课程设计--24进制计数器

E D A技术实践课程设计 --24进制计数器 -CAL-FENGHAI.-(YICAI)-Company One1

东北石油大学EDA技术实践课程设计 年 7月 25日

EDA技术实践课程设计任务书 课程 EDA技术实践课程设计 题目 24进制计数器 专业电气工程及其自动化姓名学号 主要内容: 1.熟练掌握Quartus II软件的使用。 2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。 3.学会用例化语句对EDA电路设计中顶层电路进行描述。 基本要求: 1.熟悉仿真开发软件Quartus II的使用; 2.根据功能要求,用原理图或文本输入方式完成设计; 3.用Quartus II做波形仿真调试; 4.下载至EDA试验仪调试设计。 主要参考资料: [1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元.《集成电子技术基础教程》[M].北京:高等教育出版社,2002. [5]王金明,杨吉斌. 《数字系统设计与Verilog HDL》[M].北京:电子工业出版社,2002. 完成期限 指导教师 专业负责人 年 7 月18日

目录 1设计 (1) 2方案选择与电路原理图的设计 (1) 2.124进制计数器的基本原理 (1) 2.2设计流程图 (1) 2.3原理图 (1) 374LS161元件说明 (2) 3.1 简介 (2) 3.274ls161管脚图与介绍 (2) 3.374ls161功能表 (3) 3.474ls161主要特点 (3) 4设计过程 (4) 4.1新文件的建立 (4) 4.2宏功能模块的使用 (5) 4.3普通元件的添加 (8) 4.4 电路连接 (9) 5功能仿真 (9) 6出现的问题及调试方法 (11) 7总结 (11) 参考文献 (12) 附录VHDL语言编写的该程序清单 (13)

EDA课程设计实验报告

课程设计报告 课程名称数字系统与逻辑设计 课题名称16*16点阵显示 专业通信工程 班级1181 学号 2 姓名肖浪

指导教师乔汇东吴德建 2013年7月2日 湖南工程学院课程设计任务书 课程名称数字系统与逻辑设计课题16*16点阵显示 专业班级通信工程1181 学生姓名肖浪 学号 2 指导老师乔汇东吴德建

任务书下达日期2013 年6月23日 任务完成日期2013 年7月2日 《数字系统与逻辑设计》课程设计任务书 一、设计目的 全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求 1、设计正确,方案合理。 2、程序精炼,结构清晰。 3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 4、上机演示。 5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排 第十八周星期一:课题讲解,查阅资料 星期二:总体设计,详细设计 星期三:编程,上机调试、修改程序 星期四:上机调试、完善程序 星期五:答辩 星期六-星期天:撰写课程设计报告 附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。

EDA技术课程设计报告

课程设计任务书 设计题目1:数码管显示数字钟设计 学生姓名 课程名称EDA技术课程设计专业班级 地点起止时间2017年6月19日— 6月23日 设 计 内 容 硬件设计及样品制作 设计参数1、具有时、分、秒,计数显示功能,以24小时循环计时; 2、具有清零,调节小时、分钟功能; 3、具有整点报时功能,整点报时的同时LED花样显示。 设计进度1.2017年6月19日—20日查阅资料,确定设计方案 2.2017年6月21日—22日程序设计和硬件调试 3.2017年6月23日撰写课程设计报告,答辩 设计成果1. 设计说明书一份(不少于2000字); 2. 样品一套。 参考资料1.周润景等,基于Quartus II的FPGA/CPLD数字系统设计实例,电子工业 出版社,2010 2.夏宇闻,Verilog数字系统设计教程(第二版),北京航空航天大学出版 社,2014 说明1.本表应在每次实施前由指导教师填写一式2份,审批后所在系(部)和指导教师各留1份。2.多名学生共用一题的,在设计内容、参数、要求等方面应有所区别。3.若填写内容较多可另纸附后。 院(系)分管领导:教研室主任:指导教师: 2017年 6月 23日

EDA技术课程设计报告 目录 第1章引言 (1) 第2章电路原理 (2) 第3章程序设计 (3) 3.1 顶层模块设计 (3) 3.2 时钟分频模块设计 (4) 3.3 按键驱动模块设计 (4) 3.4 时钟计数模块设计 (4) 3.5 整点报时模块 (5) 3.6 LED灯花样显示模块 (7) 3.7 数码管显示模块设计 (7) 第4章调试、测试分析及结果 (10) 4.1 调试 (10) 4.2 测试分析 (10) 4.3 结果 (12) 第5章小结 (13) 参考文献 (14) 附录电路图及程序 (15)

EDA课程设计报告-北京科技大学分析

EDA课程设计报告 题目彩灯循环闪烁电路的仿真学院自动化 专业班级自 姓名 学号 成绩 2014年12月

1、设计目的 (3) 2、设计原理 (3) (3) 3、单元电路的设计与仿真 (3) 3.1时钟脉冲产生电路 (3) 3.2计数器电路的设计与仿真 (5) 3.3译码和显示电路的设计 (6) 4、总体电路仿真 (7) 5、总结与收获 (9)

1、设计目的 1)彩灯能够自动循环闪烁 2)彩灯循环显示且频率快慢可调。 3)该控制电路具有8路输出。 2、设计原理 彩灯循环闪烁电路的工作原理采用555定时器连接成多谐振荡器产生频率产生连续可调的时钟脉冲信号,然后将时钟信号输出通过计数器接受。然后,经过八进制加法计数器的计数实现循环功能。最后,通过译码器译码实现循环灯亮。 该电路主要分为三个模块,多谢振荡器模块、八进制加法计数器电路模块、译码器与彩灯电路模块。其结构框图如图1所示。 图1 彩灯循环闪烁电路的设计框图 3、单元电路的设计与仿真 3.1时钟脉冲产生电路 时钟脉冲产生电路由555定时器和外接元件R1、R2、R3、C1和C2构成多谐振荡器。管脚THR与管脚TRI直接相连。图2为,产生电路模块。电路没有稳态,仅存在两个暂稳态,电路亦不需要外加触发信号。利用电源通过R1、R2向C1充电,以及C1通过R2、R3向放电端DIS放电,使电路产生震荡。输出矩形波,为计数器提供脉冲源。其管脚2的电容充放电波形(黄色线条)和管脚3时钟脉冲输出波形(红色线条)如图3所示。

图2 时钟脉冲产生电路的仿真图 图3 管脚2、3的输出波形

3.2计数器电路的设计与仿真 本文的彩灯电路选用74LS160N-集成10进制同步加法计数器。74LS160N具有异步清零和同步置数的功能。为了实现8盏灯循环闪烁,电路采用异步反馈清零法获得8进制计数器。如图4所示,当Q D Q C Q B Q A输出1000时,U4A输出一个低电平到CLR,将计数器清零,回到0000状态。 图4 8进制计数器仿真图 确认电路连接无误后,单击RUN,开始仿真。结果如图4,通过7段数码管看到有0-7共8个有效状态。图5即计数过程。

EDA技术课程设计报告

贵州大学 EDA技术课程设计报告 题目:BCD码加法器 院系计算机科学与技术学院 专业计科121 学号1208060061、1208060058、1208060065 学生姓名张飞宇、王红强、匡金军 指导教师夏玉勤

设计BCD码加法器 一、设计任务及要求 (1)课程设计意义: 对BCD码加法有了进一步了解; 学习了quartus II设计软件,初步了解了FPGA; (2)设计要求: 利用Verilog HDL语言,编写一个4位BCD码加法器程序,输入用八个开关分别表示两个BCD码,输出结果用数码管显示。 主要芯片:2个全加器(4008BD)、开关、数码管(2个),其他元件、门电路任选 (3)主要功能: 输入两个4位BCD码,相加结果显示在数码管上。 我组在要求的功能上添加了一些代码,使输入结果也能在数码管上显示。 (4)设计思路: 图1 简易结构图 如图1所示:A,B分别是2个输入数字,S0-S1为输出,经过BCD 加法器的运算,能实现BCD码加法功能。 (1)T=A+B,若T>10,则Z赋值为10,同时进位(2)C=1,和值低位(3)S0=T-Z,和值高位(4)S1=C。 二、基于Verilog语言的电路设计、仿真、综合 硬件及软件电路设计及描述

图2 顶层模块图 图3 RTL (1)数据的产生与输入 通过J1~J8八个单刀双掷开关在+5V和GND之间的切换来产生两个4位8421BCD码作为输入的数据,当开关打到+5V时输入数据1,打到GND时输入数据0。其中J1~J4分别为数据A3~A0,J5~J8分别为数据B3~B0,且A3~A0、B3~B0 的位权依次降低(8421)。 (2)加法电路 把上面得到的两个四位8421BCD码分别输入4008BD全加器的输入端A3~A0、B3~B0,同时CIN输入端接低电平。则S3~S0输出计算结果,COUT为

EDA技术课程设计题目与任务

五课程设计题目与内容 1. 电子秒表设计 内容及要求: 完成具有多计数功能的秒表,并可将结果逐一显示在7 段数码管上,具体要求如下: (1)输入时钟10khz ,采用Altera EP1C6Q240C8 FPGA ; (2)异步、同步复位,计时精度1ms,最大计时240秒; (3)至少对 6 个目标计时,并可显示于7 段数码管,格式为xxx.yyy ,秒为单位; ( 4)计时值可逐一顺序回显; ( 5)按下一次终止键完成一个对象的计时,计时间隔小于最大计时值; ( 6)完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。 进度安排: 本设计持续10天,其中最后一天(依例周五)为答辩时间。 第1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备; 第3-4 天:完成设计与验证方案,经指导老师验收后进入模块电路设计; 第5-7 天:完成模块电路设计,进行代码输入,并完成代码的初步仿真; 第8-9 天:代码功能仿真正确,约束设计,综合、下载,实现设计目标,并指导老师验收设计;整理设计资料,撰写报告、准备答辩; 第10 天:验收合格后进行答辩。 选题:限2人:共同进行电路和验证方案设计,1人仿真,另1人FPGA实现

2. aval on 总线从接口设计 内容及要求: 实现Altera 的NiosII CPU 外部总线接口电路,完成存储器的读写操作。 (1) CPU采用Altera Nios n; ( 2)接口电路采用同步操作,注意时钟的选择; ( 3)寻址空间0x8000~0x8ffff ,数据总线宽度8 比特; ( 4)存储器的种类为寄存器即可,具有读写功能; ( 5) avalon 总线接口为slave ; (6)下载验证时要和CPU一同实现相应的功能,软件进行读写操作。 进度安排: 本课程设计持续10 天,其中最后一天( (依例周5)为答辩时间。 第1-2 天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备; 第3-4 天:完成设计与验证方案,经指导老师验收后进入模块电路设计; 第5-7 天:完成模块电路设计,进行代码输入,并完成代码的仿真; 第8-9天:约束设计,与CPU集成综合、下载,用c语言实现操作,并指导老师验收设计;整理设计资料,撰写报告、准备答辩; 第10 天:验收合格后进行答辩。 选题:限 2 人:共同进行电路和验证方案设计, 1 人逻辑电路设计与仿真,另1人系统集成及软件代码设计

广东工业大学eda课程设计报告

课程设计报告 课程名称 EDA课程设计 学院信息工程学院年级班别 学号 学生姓名 指导老师罗思杰 2017年12月09日

目录 一、设计目的和要求: (3) 二、EDA设计: (3) 三、硬件测试: (15) 四、设计和调试过程中遇到的问题及解决方法.. 15 五、完成课程设计后的收获或体会: (15) 六、设计参考文献: (15)

一、设计目的和要求: 1、设计目的: 通过对FPGA(现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD (可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据要求及工艺需要进行电子芯片设计并制定有关技术文件。培养学生综合运用已学知识解决实际工程技术问题的能力、查阅图书资料和各种工具书的能力、撰写技术报告和编制技术资料的能力,接受一次电子设计自动化方面的基本训练。 培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,使学生积累实际EDA编程经验。通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。 2、设计要求: (1)以EDA技术的基本理论为指导,将设计实验分为基本功能电路和较复杂的电子系统两个层次,要求利用数字电路或者EDA方法去设计并完成特定功能的电子电路的仿真、软硬件调试; (2)熟悉掌握常用仿真开发软件,比如: Quartus II或Xilinx ISE的使用方法。 (3)能熟练运用上述开发软件设计并仿真电路并下载到FPGA中进行调试; (4)学会用EDA技术实现数字电子器件组成复杂系统的方法;学习电子系统电路的安装调试技术。 二、EDA设计: (1)方案比较: 1、数字电子钟设计 设计一个时钟电路,包括时钟、分钟、秒钟的显示。要求可对时钟、分钟进行预置和修改操作;可设置3组闹铃时间,时间到时给出10秒的报警声或音乐并给出灯光提示。 具体输入/输出要求如下: ① 4位LED数码显示器,分别显示“小时:分钟”或“分钟:秒”时钟;根据需要选择几个LED发光二极管。 ②3个按键,具体功能描述如下:

跑马灯设计方案EDA课程设计方案

第一章设计内容与设计方案 1.1课程设计内容 控制8个LED进行花样性显示。 设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮LED。 4种模式循环切换,复位键(rst)控制系统的运行停止。数码管显示模式编号。 可预置彩灯变换速度,4档快、稍快、中速、慢速,默认工作为中速。 1.2设计方案 在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGA进行一个简单的电子系统设计,本次课程设计采用Verilog HDL硬件描述语言编写控制程序,应用Quartus Ⅱ软件实现仿真测试。采用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。

2.1设计原理及设计流程 本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。 跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。第二种显示:从右向左逐个点亮LED。第三种显示:从两边向中间逐个点亮LED。第四种显示:从中间到两边逐个点亮LED。四种显示模式循环切换,并带有一位复位键控制系统的运行停止。为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来完成灯的点亮,我们将LED灯采用共阳极接法,当给于低电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予低电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。同理,要实现数码灯从右向左依次点亮,从中间向两端依次点亮,从两端向中间依次点亮都可以采用这样赋值的方法。为了达到四种显示模式循环切换的目的,可以将以上的所有赋值语句以顺序语句的形式置于进程中,这样在完成了一种显示方式后就会自动进入下一种设定好的显示模式,如此反复循环。当需要程序复位时,只需按下rst键即可,程序不管走都那里,执行那条语句,只要确定复位键按下时,程序立刻返回到程序执行语句的第一步,程序接着进行新的循环点亮。

EDA课程设计参考题目

EDA课程设计参考题目一、设计彩灯控制器一 要求: 1.有八只LED,L0……L7 2.显示顺序如下表 3

要求: 1.8 个灯全亮; 2.8 个灯全灭; 3.从左边第一个开始每隔一个亮; 4.从右边第一个开始每隔一个灭; 5.左4个灭,右4个亮; 6.左4个亮,右4个灭; 7.显示间隔0.5S,1S可调。 三、设计彩灯控制器三 要求: 1. 有十只LED,L0……L9 2. 显示方式 ①先奇数灯依次灭 ②再偶数灯依次灭 ③再由L0到L9依次灭 3.显示间隔0.5S,1S可调。 四、自设计动奏乐器一 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 1 5 5 6 6 5 – 4 4 3 3 2 2 1 – 5 5 4 4 3 3 2 – 5 5 4 4 3 3 2 – 3.附加:显示乐谱。 五、设计自动奏乐器二 要求: 1.开机能自动奏一个乐曲,可以反复演奏;2.速度可变。 1 3 1 3 5 6 5 – 6 6 ? 1 6 5 ––– 6 6 ? 1 6 5 5 3 1 2 2 3 2 1 ––– 3.乐曲自选。 4.附加:显示乐谱。 六、设计汽车尾灯控制器 要求: 1.用6个发光二极管模拟6个汽车尾灯(左、右各3个)。 2.汽车往前行驶时,6个灯全灭。当汽车转弯时,若右转弯,右边3个尾灯从左至右顺序 亮灭,左边3个灯全灭;若左转弯,左边3个尾灯从右至左顺序亮灭,右边3个灯全灭; 汽车刹车时,6个尾灯同时明、暗闪烁;汽车在夜间行驶时,左右两侧的灯同时亮,供照明使用。

要求: 1.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为:其中一个方向是绿灯、黄灯、 红灯,另一个方向是红灯、绿灯、黄灯。 2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、 红灯的持续时间分别是20s、5s、25s。 八、设计数字频率计 要求: 1.输入为矩形脉冲,频率范围0~99MHz; 2.用五位数码管显示;只显示最后的结果,不要将计数过程显示出来; 3.单位为Hz和KHz两档,自动切换。 九、设计智力竞赛抢答器 要求: 1.四人参赛每人一个按钮,主持人一个按钮,按下就开始; 2.当有某一参赛者首先按下抢答开关时,相应显示灯亮并伴有声响,此时抢答器不再接受其他输入信号。 3.有人抢答时,喇叭响两秒钟; 4.答题时限为100秒钟(显示0~99),时间显示采用倒计时方式。当达到限定时间时,发出声响以示警告。 十、设计数字秒表 要求: 1.要求设置启/停开关。当按下启/停开关,将启动秒表开始计时,当再按一下启/停开关时, 将终止计时操作。 2.数字秒表的计时范围是0秒~59分59.99…… 3.要求计时精度为0.01s。 4.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就 清零,并做好下次计时的准备。 十一、设计数字钟 要求: 1.具有时、分、秒计数显示功能,且以24小时循环计时。 2.具胡清零的功能,且能够对计时系统的小时、分钟进行调整。 3.具有整点报时功能。 十二、设计三层电梯控制器 要求: 1.每层电梯入口处设有上下请求开关,电梯内有乘客到达层数的的停站请求开关。 2.设有电梯所处位置指示装置及电梯运行模式(上升和下降)指示装置。 3.电梯每秒钟升(降)一层。 4.电梯到达有请求的楼层,电梯经过lS电梯门开,打开4S后,电梯门关闭(开门指示灯灭)。电梯继续运行,直至完成最后的一个请求信号后停留在当前层。 5.能记忆电梯内外所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号留至执行完后消除。 6.电梯运行规则:当电梯处于上升模式时,只响应比电梯所在的位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼清求执行完毕;如果高层有下楼请求,则直接升到有下

相关主题
文本预览
相关文档 最新文档