数字系统仿真与VHDL课程设计报告

数字系统仿真与VHDL课程设计报告
数字系统仿真与VHDL课程设计报告

数字系统仿真与VHDL课程

设计报告

学院:信息与电气工程学院

专业:通信工程

班级:通信一班

姓名:李世辉

学号:0804040102

指导老师:张剑胡仕刚

设计时间:2010.1.3—2010.1.14

目录1.课程设计任务

2.课程设计目的

3.课程设计的基本要求

4.设计流程图

5.Max+plus II设计软件的基本操作6.课程设计内容

七.课程设计心得体会

一.课程设计的任务

1.本次设计的任务是熟悉支持VHDL语言的软件,例如:MAX—

PLUS2,ISP,FOUNDATION等,利用这一类软件使用VHDL语言进行设计。二.课程设计目的

1.熟练掌握相关软件的使用,操作。能对VHDL语言程序进行编译,调试,

以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。

2.在成功掌握软件操作基础上,将所学数字电路的基础课知识与VHDL语

言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。

3.深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开

始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。

三.设计的基本要求

1.熟悉数字电路及相关专业课程的基本知识并能联系具体程序

2.正确操作使用VHDL语言相关软件,能编译,调试,仿真VHDL

语言程序

3.设计数字电路,编写程序,实现电路功能。

四. 设计流程图Array

五.Max+plus II设计软件的基本操作

1.设计输入

原理图设计输入法

文本设计输入法

波形输入法

层次化设计输入法

2.项目编译

语法检查和设计规则检查

设计综合

生成编程数据文件

3.仿真和定时分析

仿真(Simulation)

定时分析(Timing Analysis)

4.编程下载,调试与仿真

5.波形图的分析

六.课程设计内容

1.设计60进计数器

设计一个BCD码60进计数器。要求实现同步,异步两种情况,且规定个位显示0~9,十位显示0~5,均用4位二进制数表示。在此基础上试用VHDL 语言描述中小规模集成电路74LS169。

(1).60进制同步计数器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY count60tb IS

PORT(clk,w1c,w2c,cin:IN STD_LOGIC;

cccc:OUT STD_LOGIC;

dddd_in:IN STD_LOGIC_VECTOR(3DOWNTO 0);

ge:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

shi:OUT STD_LOGIC_VECTOR(3DOWNTO0));

END ENTITY count60tb;

ARCHITECTURE example OF count60tb IS

SIGNAL ge_n:STD_LOGIC_VECTOR(3DOWNTO 0);

SIGNAL shi_n:STD_LOGIC_VECTOR(3DOWNTO 0);

BEGIN

ge<=ge_n;

shi<=shi_n;

PROCESS(clk,w1c)IS

BEGIN

IF(W1C='1')THEN

ge_n<=data_in(3DOWNTO 0);

ELSIF(clk'EVENT AND clk='1')THEN

IF(cin='1') THEN

IF(ge_n=9)THEN

ge_n<="0000";

ELSE

ge_n<=ge_n+'1';

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(clk,w2c)IS

BEGIN

IF(w2c='1')THEN

shi_n<=data_in(3DOWNTO 0);

ELSIF(clk'EVENT AND clk='1')THEN

IF(cin='1'AND ge_n=9) THEN

IF(shi_n=5)THEN

shi_n<="0000";

ELSE

shi_n<=shi_n+'1';

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(clk,ge_n,shi_n) IS

BEGIN

IF(clk'EVENT AND clk='1' )THEN

IF(ge_n=9AND shi_n=5AND cin='1') THEN cout<='1';

ELSE

cout<='0';

END IF;

END IF;

END PROCESS;

END ARCHITECTURE example;

(2)60进制异步计数器

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY count60yb IS

PORT(clk,w1c,w2c,cin1:IN STD_LOGIC;

cccc2:OUT STD_LOGIC;

dddd_in:IN STD_LOGIC_VECTOR(3DOWNTO 0);

ge:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

shi:OUT STD_LOGIC_VECTOR(3DOWNTO0)); END ENTITY count60yb;

ARCHITECTURE example OF count60yb IS

SIGNAL ge_n:STD_LOGIC_VECTOR(3DOWNTO 0); SIGNAL shi_n:STD_LOGIC_VECTOR(3DOWNTO 0); SIGNAL cin2,cout1:STD_LOGIC;

BEGIN

ge<=ge_n;

shi<=shi_n;

cin2<=cout1;

PROCESS(clk,w1c)IS

BEGIN

IF(W1C='1')THEN

ge_n<=data_in(3DOWNTO 0);

ELSIF(clk'EVENT AND clk='1')THEN

IF(cin1='1') THEN

IF(ge_n=9)THEN

ge_n<="0000";

ELSE

ge_n<=ge_n+'1';

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(cin2)IS

BEGIN

IF(w2c='1')THEN

shi_n<=data_in(3DOWNTO 0);

ELSE

IF(cin2='1')THEN

IF(shi_n=5)THEN

shi_n<="0000";

ELSE

shi_n<=shi_n+'1';

END IF;

END IF;

END IF;

END PROCESS;

PROCESS(clk,ge_n,shi_n) IS

BEGIN

IF(clk'EVENT AND clk='1' )THEN

IF(ge_n=9AND cin1='1') THEN

cout1<='1';

ELSE

cout1<='0';

END IF;

IF(shi_n=5 AND cin2='1') THEN cout2<='1';

ELSE

cout2<='0';

END IF;

END IF;

END PROCESS;

END ARCHITECTURE example;

(3)74LS169模块

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ls169IS

PORT(clk,wr,sel,cin:IN STD_LOGIC;

cccc:OUT STD_LOGIC;

dddd_in:IN STD_LOGIC_VECTOR(3DOWNTO 0);

data_out:OUT STD_LOGIC_VECTOR(3DOWNTO0)); END ENTITY ls169;

ARCHITECTURE example OF ls169 IS

SIGNAL data:STD_LOGIC_VECTOR(3DOWNTO 0);

BEGIN

data_out<=data;

PROCESS(clk,wr)IS

BEGIN

IF(wr='1')THEN

data<=data_in(3DOWNTO 0);

ELSIF(clk'EVENT AND clk='1')THEN

IF(cin='1') THEN

IF(sel='1')THEN

IF(data=15)THEN

data<="0000";

cout<='1';

ELSE

data<=data+'1';

cout<='0';

END IF;

ELSE

IF(data="0000")THEN

data<="1111";

cout<='1';

ELSE

data<=data-'1';

cout<='0';

END IF;

END IF;

END IF;

END IF;

END PROCESS;

END ARCHITECTURE example;

2.循环彩灯控制器

设计一个循环彩灯控制器,该控制器控制红,绿,黄三个发光管循环点亮。

要求红发光管亮3秒,绿发光管亮2秒,黄发光管亮1秒。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY xhcaideng IS

PORT(clk,clr:IN STD_LOGIC;

red,green,yellow:OUT STD_LOGIC);

END ENTITY xhcaideng;

ARCHITECTURE example OF xhcaideng IS

SIGNAL dout:STD_LOGIC_VECTOR(2DOWNTO 0);

SIGNAL m:STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

red<=dout(2);

green<=dout(1);

yellow<=dout(0);

PROCESS(clk)IS

BEGIN

IF(clr='1')THEN

m<="001";

ELSIF(clk'EVENT AND clk='1')THEN

IF(m="110")THEN

m<="001";

ELSE

m<=m+1;

END IF;

CASE m IS

WHEN "001"=>dout<="100";

WHEN "010"=>dout<="100";

WHEN "011"=>dout<="100";

wHEN "100"=>dout<="010";

wHEN "101"=>dout<="010";

WHEN "110"=>dout<="001";

WHEN OTHERS=>dout<="111";

END CASE;

END IF;

END PROCESS;

END ARCHITECTURE;

3.数字显示的秒表

设计一块用数码管显示的秒表,能够准确的计时并显示。最大计时为59秒,最小精确到0.1秒。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity miaobiao is

port(clk:in std_logic;

din:in std_logic_vector(3downto0);

wr3,wr2,wr1:in std_logic;

dout3:out std_logic_vector(3downto0);

dout2:out std_logic_vector(3downto0);

dout1:out std_logic_vector(3downto0));

end entity miaobiao;

architecture example of miaobiao is

signal out3:std_logic_vector(3downto 0); signal out2:std_logic_vector(3downto 0); signal out1:std_logic_vector(3downto 0); begin

dout3<=out3;

dout2<=out2;

dout1<=out1;

process(clk)is

begin

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

if(wr1='1')then

out1<=din;

elsif(out1="1001")then

out1<="0000";

else

out1<=out1+1;

end if;

end if;

end process;

process(clk)is

begin

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

if(wr2='1')then

out2<=din;

elsif(out1="1001")then

if(out2="1001")then

out2<="0000";

else

out2<=out2+1;

end if;

end if;

end if;

end process;

process(clk)is

begin

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

if(wr3='1')then

out3<=din;

elsif(out1="1001")then

if(out2="1001")then

if(out3="0101")then

out3<="0000";

else

out3<=out3+1;

end if;

end if;

end if;

end if;

end process;

end architecture example;

4.设计一个2人抢答器

两人抢答,先抢为有效,用发光二极管显示是否抢到优先答题权。答题结束后,按复位键可重新抢答下一题。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity answer2is

port(reset:in std_logic;

player:in std_logic_vector(2downto1);

out1:out std_logic;

out2:out std_logic;

fail:out std_logic);

end entity answer2;

architecture example of answer2 is

signal a:std_logic_vector(2downto0);

begin

out2<=a(2);

out1<=a(1);

fail<=a(0);

process(reset,player)is

begin

if(reset='0')then

a<="000";

else

case player is

when "00"=>a<="000";

when "01"=>a<="010";

when "10"=>a<="100";

when others=>a<="001";

end case;

end if;

end process;

end architecture example;

5.交通灯控制器的程序设计

对所提供的交通灯实验程序进行改写,原来为两个相位的交通控制转变为四个相位,即:东西直行,东西左转,南北直行,南北左转,加入一个方向显示灯的控制。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity jiaotongdeng is

port(R1,G1,Y1,L1:out std_logic;

R2,G2,Y2,L2:out std_logic;

clk:in std_logic);

end entity jiaotongdeng;

architecture example of jiaotongdeng is

signal m:std_logic_vector(6downto 0):="0000000";

signal n:std_logic_vector(6downto 0):="0000000";

signal a:std_logic_vector(3downto0);

signal b:std_logic_vector(3downto0);

begin

R1<=a(3);

G1<=a(2);

Y1<=a(1);

L1<=a(0);

R2<=b(3);

G2<=b(2);

Y2<=b(1);

L2<=b(0);

AA:process(clk)is

begin

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

if(m="1100100")then

m<="0000001";

else

m<=m+1;

end if;

if(m<=50)then

a<="1000";

elsif(m<=70)then

a<="0100";

elsif(m<=75)then

a<="0010";

elsif(m<=95)then

a<="0001";

else

a<="0010";

end if;

end if;

end process;

BB:process(clk)is

begin

if(clk'event and clk='1') then if(n="1100100")then

n<="0000001";

else

n<=n+1;

end if;

if(n<=20)then

b<="0100";

elsif(n<=25)then

b<="0010";

elsif(n<=45)then

b<="0001";

elsif(n<=50)then

b<="0010";

else

b<="1000";

end if;

end if;

end process;

end architecture;

6.具有使能和清零作用的16进制计数器library ieee;

use ieee.std_logic_1164.all;

entity count16is

port( clk :in std_logic;

clear :in std_logic;

enable :in std_logic;

outy :out integer range 0 to 15;

counter :out std_logic);

end entity count16;

architecture behave of count16 is

begin

process(clk)

variable cnt:integer range 0 to15;

begin

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

if clear='0'then

cnt:=0;

else

if enable='1'then

cnt:=cnt+1;

end if;

end if;

end if;

outy<=cnt;

if cnt=15then

counter<='1';

else

counter<='0';

end if;

end process;

end behave;

7. 16路彩灯控制器

library ieee;

use ieee.std_logic_1164.all;

package state_pack is

type state is(qa,qb,qc,qd,qe,qf,qg); end state_pack;

library ieee;

use ieee.std_logic_1164.all;

use work.state_pack.all;

entity controll is

port(k,s,qc1,qc2,clk:in std_logic;

y,k1,k2,k3,k4,k5,k6:out std_logic); end controll;

architecture rtl of controll is

signal current_state:state:=qa;

begin

process

begin

wait until clk'event and clk='1';

if s='0' then

y<='0';

else

y<='1';

end if;

if k='0' then

k1<='0';k2<='0';k3<='1';

k4<='1';k5<='1';k6<='1';

current_state<=qa;

else

case current_state is

when qa=>

current_state<=qb;

k1<='1';k3<='0';

when qb=>

if qc1='0'then

current_state<=qb;

else

current_state<=qc;

k1<='0';k2<='1';

end if;

when qc=>

if qc2='0'then

current_state<=qc;

else

current_state<=qd;

k4<='0';

end if;

when qd=>

if qc2='0'then

current_state<=qd;

else

current_state<=qe;

k1<='1';k2<='0';

end if;

when qe=>

if qc1='0'then

current_state<=qe;

else

current_state<=qf;

k4<='1';k6<='0';

end if;

when qf=>

if qc1='0'then

current_state<=qf;

else

k1<='0';k2<='1';k3<='1';

k5<='0';k6<='1';

current_state<=qg;

end if;

when qg=>

if qc2='0'then

current_state<=qg;

else

current_state<=qa;

k1<='0';k2<='0';k3<='1';

k4<='1';k5<='1';k6<='1';

end if;

end case;

end if;

end process;

end rtl;

七.课程设计心得体会

这一次数字系统仿真与VHDL语言课程设计,通过两周的努力,终于圆满完成了。通过这次课程设计,我对VHDL的语言有了更深刻的认识,对课题设计的基本流程有了一定的认识,同时也是一次把所学的书本知识和实践相联系的过程。并通过实践,建立起了学习EDA的浓厚兴趣。在设计中也深刻体会到了团队精神的重要性!此次设计是一个人完成的,真的花费了很大经历。团结协作是我们实习成功的一项非常重要的保证。对EDA的设计平台MaxplusII有了

初步的使用。掌握了本次设计软件MaxplusII的熟练使用为以后更好的学习EDA打下了基础。

本次课程设计过程中,遇到的一个难点就是程序的调试,本来自己编写的程序是没有错的,但是一旦输入调试软件中就会报告各种错误,有些错误很难找出来,有时候自己明明设计的一个程序是正确的,但是就是报错,有时候大家一起合作可以找出错误,但是有时候就只有靠老师找错误啦。从调试中我学到了我们平时自己写程

序的时候一定要规范,字体、格式等等都要严格的按照要求来做,否者在调试的时候会遇到各种你想都想不到的错误。

通过这次课程设计,我也意识到了我对这门课掌握还有一定的不足,

还有许多的知识我不了解;有的是一知半解;有的即使原理懂了,

但在应用方面却是丝毫不知。所以在今后的学习中,我会更加努力,

不仅要学好理论知识,还要把它应用到实践中去,使两者很好的结合起来,互补互助。

数字电路课程设计题目选编

数字电路课程设计题目选编 1、基于DC4011水箱水位自动控制器的设计与实现 简介及要求:水箱水位自动控制器,电路采用CD4011 四与非门作为处理芯片。要求能够实现如下功能:水 箱中的水位低于预定的水位时,自动启动水泵抽水; 而当水箱中的水位达到预定的高水位时,使水泵停止 抽水,始终保持水箱中有一定的水,既不会干,也不 会溢,非常的实用而且方便。 2、基于CD4011声控、光控延时开关的设计与实现 简介及要求:要求电路以CD4011作为中心元件,结合外围 电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭 状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态, 当有人经过该开关附近时,脚步声、说话声、拍手声等都能开 启节电开关。灯亮后经过40秒左右的延时节电开关自动关闭, 灯灭。 3、基于CD4011红外感应开关的设计与实现 在一些公共场所里,诸如自动干手机、自动取票机等,只要人手在机器前面一晃,机器便被启动,延时一段时间后自动关闭,使用起来非常方便。要求用CD4011设计有此功能的红外线感应开关。 4、基于CD4011红外线对射报警器的设计与实现 设计一款利用红 外线进行布防的防盗 报警系统,利用多谐振 荡器作为红外线发射 器的驱动电路,驱动红 外发射管,向布防区内 发射红外线,接收端利用专用的红外线接收器件对发射的 红外线信号进行接收,经放大电路进行信号放大及整形, 以CD4011作为逻辑处理器,控制报警电路及复位电路,电

路中设有报警信号锁定功能,即使现场的入侵人员走开,报警电路也将一直报警,直到人为解除后方能取消报警。 5、基于CD4069无线音乐门铃的设计与实现 音乐门铃已为人们所熟知,在一些住宅楼中都 装有音乐门铃,当有客人来访时,只要按下门铃按 钮,就会发出“叮咚”的声音或是播放一首乐曲, 然而在一些已装修好的室内,若是装上有线门铃, 由于必须布线,从而破坏装修,让人感到非常麻烦。 采用CD4069设计一款无线音乐门铃,发射按键与接 收机间采用了无线方式传输信息。 6、基于时基电路555“叮咚”门铃的设计与实现 用NE555集成电路设计、制作一个“叮咚”门铃,使该装置能够 发出音色比较动听的“叮咚”声。 7、基于CD4511数显八路抢答器的设计与实现 CD4511是一块含BCD-7段锁存、译码、驱动电路于一体的集成 电路。设计一款基于CD4511八路抢答器,该电路包括抢答,编 码,优先,锁存,数显和复位。 8、基于NE555+CD4017流水彩灯的设计与实现 以NE555和CD4017为核心,设计制作一个流水彩灯,使之通 过调节电位器旋钮,可调整彩灯的流动速度。 9、基于用CD4067、CD4013、 NE555跑马灯的设计与实 现

VHDL与数字系统课程设计

课程设计报告 实践课题:VHDL与数字系统课程设计 学生:XXX 指导老师:XXX、XXX 系别:电子信息与电气工程系 专业:电子科学与技术 班级:XXX 学号:XXX

一、设计任务 用VHDL设计一个简单的处理器,并完成相关的仿真测试。 .设计要求: 图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。 图1 简单处理器的电路图 数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0~R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。 加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行运算,运算结果存入寄存器G中,G中的数据又可根据要求通过复用器转存到其他寄存器中。 1)Rx ←[Ry] :将寄存器Ry中的内容复制到Rx; 2)Mvi Rx,#D :将立即数存入寄存器Rx中去。 所有指令都按9位编码(取自DIN的高9位)存储在指令存储器IR中,编编码规则为IIIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入

的。 有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输 时间 指令 T0T1T2T3 (mv):I0 (mvi):I1 (add):I2 (sub):I3 IR in IR in IR in IR in RY out,RX in,Done DIN out,RX in,Done RX out,A in RX out,A in ---- ---- RY out,G in,Addsub RY out,G in,Addsub ---- ---- G out,RX in,Done G out,RX in,Done 二、实现功能说明 2.1 mv Rx,Ry 实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例) (1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。 置位的控制信号如图3加粗黑线所示。 图3 (2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R5的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个寄存器对寄存器的赋值过程。置位的控制信号和数据流如图4加粗黑线所示。 图4

数字逻辑电路(数电)课程设计_电子秒表_VHDL实现(含完整源代码!!)

电子科技大学 UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 数字逻辑设计 实验报告 实验题目:电子秒表 学生姓名: 指导老师:

一、实验内容 利用FPGA设计一个电子秒表,计时范围00.00 ~ 99.00秒,最多连续记录3个成绩,由两键控制。 二、实验要求 1、实现计时功能: 域值范围为00.00 ~ 99.00秒,分辨率0.01秒,在数码管上显示。 2、两键控制与三次记录: 1键实现“开始”、“记录”等功能,2键实现“显示”、“重置”等功能。 系统上电复位后,按下1键“开始”后,开始计时,记录的时间一直显示在数码管上;按下1键“记录第一次”,次按1键“记录第二次”,再按1键“记录第三次”,分别记录三次时间。 其后按下2键“显示第一次”,次按2键“显示第二次”,再按2键“显示第三次”,数码管上分别显示此前三次记录的时间;显示完成后,按2键“重置”,所有数据清零,此时再按1键“开始”重复上述计时功能。 三、设计思路 1、整体设计思路 先对按键进行去抖操作,以正确的得到按键信息。 同时将按键信息对应到状态机中,状态机中的状态有:理想状态、开始状态、3次记录、3次显示、以及其之间的7次等待状态。 因为需要用数码管显示,故显示的过程中需要对数码管进行片选和段选,因此要用到4输入的多路选择器。 在去抖、计时、显示的过程中,都需要用到分频,从而得到理想频率的时钟信号。 2、分频设计 该实验中有3个地方需要用到分频操作,即去抖分频(需得到200HZ时钟)、计时分频(需得到100HZ时钟)和显示分频(需得到25kHZ时钟)。 分频的具体实现很简单,需首先算出系统时钟(50MHZ)和所需始终的频率比T,并定义一个计数变量count,当系统时钟的上升沿每来到一次,count就加1,当count=T时就将其置回1。这样只要令count=1~T/2时clk=‘0’,count=T/2+1~T时clk=‘1’即可。 3、去抖设计 由于用按键为机械弹性开关,故当机械触点断开、闭合时,按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开,而是在闭合及断开的瞬

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

《数字电路课程设计》

实验三旋转灯光电路与追逐闪光灯电路 一、实验目的 1.熟悉集成电路CD4029、CD4017、74LS138的逻辑功能。 2.学会用74LS04、CD4029、74LS138组装旋转灯光电路。 3. 学会用CD4069、CD4017组装追逐闪光灯电路。 二、实验电路与原理 1.旋转灯光电路: 图3-1 旋转灯光电路 将16只发光二极管排成一个圆形图案,按照顺序每次点亮一只发光二极管,形成旋转灯光。实现旋转灯光的电路如图3-1所示,图中IC1、R1、C1组成时钟脉冲发生器。IC2为16进制计数器,输出为4位二进制数,在每一个时钟脉冲作用下输出的二进制数加“1”。计数器计满后自动回“0”,重新开始计数,如此不断重复。 输入数据的低三位同时接到两个译码器的数据输入端,但是否能有译码器输出取决于使能端的状态。输入数据的第四位“D”接到IC3的低有效使能端G2和IC4的高有效使能端G1,当4位二进制数的高位D为“0”时,IC4的G1为“0”,IC4的使能端无效,IC4无译码输出,而IC3的G2为“0”,IC3使能端全部有效,低3位的CBA数据由IC3译码,输出D=0时的8个输出,即低8位输出(Y0~Y7)。当D为“1”时IC3的使能端处于无效状态,IC3无译码输出;IC4的使能端有效,低3位CBA数据由IC4译码,输出D=1时的8个输出,即高8位输出(Y8~Y15)。 由于输入二进制数不断加“1”,被点亮的发光二极管也不断地改变位置,形成灯光地“移动”。改变振荡器的振荡频率,就能改变灯光的“移动速度”。

注意:74LS138驱动灌电流的能力为8mA,只能直接驱动工作电流为5mA的超高亮发光二极管。若需驱动其他发光二极管或其他显示器件则需要增加驱动电路。 2. 追逐闪光灯电路 图 3-2 追 逐 闪 光 灯 电 路 ( 1) . CD 401 7 的 管 脚功能 CD4017集成电路是十进制计数/时序译码器,又称十进制计数/脉冲分频器。它是4000系列CMOS数字集成电路中应用最广泛的电路之一,其结构简单,造价低廉,性能稳定可靠,工艺成熟,使用方便。它与时基集成电路555一样,深受广大电子科技工作者和电子爱好者的喜爱。目前世界各大通用数字集成电路厂家都生产40171C,在国外的产品典型型号为CD4017,在我国,早期产品的型号为C217、C187、CC4017等。 (2)CD4017C管脚功能 CMOSCD40171C采用标准的双列直插式16脚塑封,它的引脚排列如图3-3(a)所示。 CC4017是国标型号,它与国外同类产品CD4017在逻辑功能、引出端和电参数等方面完全相同,可以直接互换。本书均以CD40171C为例进行介绍,其引脚功能如下: ①脚(Y5),第5输出端;②脚(Y1),第1输出端,⑧脚(Yo),第0输出端,电路清零 时,该端为高电平,④脚(Y2),第2输出端;⑤脚(Y6),第6输出端;⑥脚(Y7),第7输出端;⑦脚(Y3),第3输出端;⑧脚(Vss),电源负端;⑨脚(Y8),第8输出端,⑩脚(Y4),第4输出端;11脚(Y9),第9输出端,12脚(Qco),级联进位输出端,每输入10个时钟脉冲,就可得一个进位输出脉冲,因此进位输出信号可作为下一级计数器的时钟信号。13脚(EN),时钟输入端,脉冲下降沿有效;14脚(CP),时钟输入

VHDL语言与EDA课程设计

湖南人文科技学院 课程设计报告课程名称: VHDL语言与EDA课程设计 ~ 设计题目:出租车自动计价器设计 系别: 专业: 班级: 学生姓名: 学号: 起止日期: 2011年6月13日~2011年6月26日 $ 指导教师: 教研室主任:

摘要 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。根据预定的设计要求和设计思路,我们使用VHDL硬件描述语言设计了一个实际的基于Altera FPGA芯片的出租车自动计价器系统,介绍了该系统的电路结构和程序设计。通过在软件中编译和下载测试,得到了仿真波形和关键的设计结果。经过在实验箱上进行硬件测试,证明该出租车计价系统具有实用出租车计价器的基本功能,如能进一步完善,将可以实用化和市场化。 关键词:出租车自动计价器;VHDL; FPGA ;

目录 设计要求 (1) 1、方案论证与对比 (1) 方案一 (1) 方案二 (2) 两种方案的对比 (2) 2、实验步骤和设计过程 (2) 计程模块 (2) 等待计时模块 (2) 计费模块 (3) 3、调试与操作说明 (3) 中的VHDL程序 (3) 程序的编译与及仿真波形 (6) 程序的下载与功能的测试 (7) 4、课程设计心得体会 (9) 5、元器件及仪器设备明细 (10) 6、参考文献 (11) 7、致谢 (12)

VHDL课程设计PS键盘

目录 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用;

(2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器; 8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。 三、课程设计的内容与要求 1、设计内容 (1)系统功能的分析; (2)实现系统功能的实际方案; (3)编写各功能模块的VHDL语言程序; (4)对各功能模块进行编译、综合、仿真、分析; (5)顶层文件设计 (6)对整个系统进行编译、综合、仿真、分析; (7)在CPLD\FPGA实验开发系统试验箱上进行硬件验证; (8)写实验报告;

数字电路课程设计报告

课程设计任务书 学生姓名:吴培力专业班级:信息SY1201 指导教师:刘可文工作单位:信息工程学院 题目: 数字式电子锁的设计与实现 初始条件: 本设计既可以使用集成电路和必要的元器件等,也可以使用单 片机系统构建数字密码电子锁。自行设计所需工作电源。电路组成 原理框图如图1,数字密码锁的实际锁体一般由电磁线圈、锁栓、 弹簧和锁柜构成。当线圈有电流时,产生磁力,吸动锁栓,即可开 锁。反之则不开锁。 图1 数字式电子锁原理框图要求完成的主要任务:(包括课程设计工作量及技术要求,以及说明书撰写等具体要求) 1、课程设计工作量:1周。 2、技术要求: 1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。 2)其密码为4位二进制代码,密码可以通过密码设定电路自行设定。 3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒) 4)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路。 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 1、年月日,布置作课设具体实施计划与课程设计报告格式的要求说明。 2、年月日至年月日,方案选择和电路设计。 3、年月日至年月日,电路调试和设计说明书撰写。 4、年月日,上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

跑马灯VHDL课程设计报告

跑马灯VHDL课程设计 一、设计任务 控制8个led进行花式显示,设计四种显示模式: 1.从左到右逐个点亮led; 2.从右到左逐个点亮led; 3.从两边到中间逐个点亮led; 4.从中间到两边逐个点亮led; 四种模式循环切换,由复位键rst控制系统的运行与停止. 二、设计过程 根据系统设计要求,采用状态机进行设计,状态机具有四种状态,每种状态完成一种显示模式四种状态间使用case语句进行切换. 程序如下: library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all; entity pmd is port( clk, rst: in std_logic; y: buffer std_logic_vector(7 downto 0)); end pmd; architecture behave of pmd is type states is (state0, state1, state2, state3); signal state: states;

begin process (clk, rst) begin if rst='1' then y<="00000000" ; state <= state0; elsif (clk'event and clk='1') then case state is when state0 => if y="00000000" then y<="10000000";state <= state0; elsif y="10000000" then y<="01000000";state <= state0; elsif y="01000000" then y<="00100000";state <= state0; elsif y="00100000" then y<="00010000";state <= state0; elsif y="00010000" then y<="00001000";state <= state0; elsif y="00001000" then y<="00000100";state <= state0; elsif y="00000100" then y<="00000010";state <= state0; elsif y="00000010" then y<="00000001";state <= state1; end if; when state1 => if y="00000001" then y<="00000010";state <= state1; elsif y="00000010" then y<="00000100";state <= state1; elsif y="00000100" then y<="00001000";state <= state1; elsif y="00001000" then y<="00010000";state <= state1; elsif y="00010000" then y<="00100000";state <= state1; elsif y="00100000" then y<="01000000";state <= state1;

vhdl课程设计(电子钟+闹铃)

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 1、具有“时”、“分”、“秒”的十进制数字显示(小时从00 ~ 23)。 2、具有手动校时、校分、校秒的功能。 3、有定时和闹钟功能,能够在设定的时间发出闹铃声。 4、能进行整点报时。从59分50秒起,每隔2秒发一次低音“嘟”的信号,连续5次, 最后一次为高音“嘀”的信号。 (二)、各项设计指标: 1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。 2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。 3、有三个按钮分别调时、分、秒的时间。 4、有一个按钮用作开启/关闭闹铃。 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1Hz、 1kHz的脉冲。 二、系统组成以及系统各部分的设计 1、系统结构描述//要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;(一)系统的顶层文件: 1、顶层文件图:(见下页) 2、各模块的解释: (1)、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、hour_set:其中clk_1khz为闹铃模块提供时钟,处理后能产生“嘟”、“嘀”和变化的闹铃声音;clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:定时或正常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时间或定时,与key_slt相关联。各按键输出为脉冲信号。 (2)、CNT60_A_SEC模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示秒的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key 上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有两个输出口out_do、out_di来触发整点报时的“嘟”、“嘀”声音。 (3)、CNT60_A_MIN模块: 这个模块式将CNT60_A_SEC的输出信号进行60进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有三个输出口out_do、out_di、out_alarm来触发整点报时的“嘟”、“嘀”、闹铃声音。

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

数字电路课程设计弹道设计

淮海工学院 课程设计报告书 课程名称:电子技术课程设计(二)题目:弹道计时器设计 系(院): ////// 学期: 2010-2011-1 专业班级: 88 姓名: 999999 学号: 555555

一、所选课题: 弹道计时器的设计 二、任务与要求 设计一个用来测量手枪子弹等发射物速度的便携式电池供电计时器,这种计时器可用来测定子弹或其他发射物的速度。竞赛射手通常用这种设备来测定装备的性能。 基本操作要求是:射手在两个分别产生起始测量脉冲和终止测量脉冲的光敏传感器上方射出一个发射物,两个光传感器(本例中假定为阴影传感器)分开放置,两者之间的距离已知。发射物在两个传感器之间的飞行时间直接与发射物的速度成正比。如下图所示,当子弹等发射物从上方经过起始传感器产生ST 信号,经过终止传感器时产生SP 信号。传感器之间的距离是固定的。通过测量子弹等发射物经过传感器之间的时间T 就可计算出子弹的速度V=S/t 。 图1 三、方案制定 使用中规模集成电路设计弹道计时器。此方案中主要用到555定时器、十进制计数器、译码器、七段数码管以及一些小型门电路和触发器等。 四、弹道计时器的原理 运用中规模集成电路设计本课题要分为一下几点: (1)传感器对计数器的控制。 在传感器的选择上,要注意传感器的输出信号能否直接控制下一级电路。此论文中采用天幕靶控制计数器的工作与停止。天幕靶是一种光电传感器,它能将光信号转变成电信号,在子弹遮蔽第一个天幕靶时,即会产生一个脉冲,此脉冲带动计数器工作,在子弹遮蔽下一个天幕靶时又产生一个脉冲,让计数器停止工作。若将此脉冲作为使能信号, 就必须使其从子弹到达第一个天幕靶一直维持到 起始传感器 终止传感器 阳光 弹道

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

数字电路课程设计

数字电路课程设计 一、概述 任务:通过解决一两个实际问题,巩固和加深在课程教学中所学到的知识和实验技能,基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力,为今后从事生产和科研工作打下一定的基础。为毕业设计和今后从事电子技术方面的工作打下基础。 设计环节:根据题目拟定性能指标,电路的预设计,实验,修改设计。 衡量设计的标准:工作稳定可靠,能达到所要求的性能指标,并留有适当的裕量;电路简单、成本低;功耗低;所采用的元器件的品种少、体积小并且货源充足;便于生产、测试和维修。 二、常用的电子电路的一般设计方法 常用的电子电路的一般设计方法是:选择总体方案,设计单元电路,选择元器件,计算参数,审图,实验(包括修改测试性能),画出总体电路图。 1.总体方案的选择 设计电路的第一步就是选择总体方案。所谓总体方案是根据所提出的任务、要求和性能指标,用具有一定功能的若干单元电路组成一个整体,来实现各项功能,满足设计题目提出的要求和技术指标。 由于符合要求的总体方案往往不止一个,应当针对任务、要求和条件,查阅有关资料,以广开思路,提出若干不同的方案,然后仔细分析每个方案的可行性和优缺点,加以比较,从中取优。在选择过程中,常用框图表示各种方案的基本原理。框图一般不必画得太详细,只要说明基本原理就可以了,但有些关键部分一定要画清楚,必要时尚需画出具体电路来加以分析。 2.单元电路的设计 在确定了总体方案、画出详细框图之后,便可进行单元电路设计。 (1)根据设计要求和已选定的总体方案的原理框图,确定对各单元电路的设计要求,必要时应详细拟定主要单元电路的性能指标,应注意各单元电路的相互配合,要尽量少用或不用电平转换之类的接口电路,以简化电路结构、降低成本。

VHDL课程设计报告---交通灯设计

课程设计 课程名称:交通灯设计. 学院:电气工程学院专业:测仪姓名:学号: 年级:级任课教师: 2012年 1月12日

电气工程学院 课程设计任务书 课题名称:交通灯控制器的设计 专业、班级:测控技术与仪器测仪班 指导教师: 20 年1 月2 日至20 年1 月13 日共2周 指导教师签名: 教研室主任签名: 分管院长签名:

一、课程设计内容 1.学习ALTERA公司的FPGA/CPLD的结构、特点和性能。 2.学习集成开发软件MAX+plus II/Quartus II的使用及设计过程。 3.熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。 4.根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。 二、课程设计应完成的工作 1.在所选择器件内完成交通灯控制器的设计,要求设计完成后芯片具有交通灯控制器的全部功能、包括显示和操作接口。 2.交通灯控制器要求控制十字路口两道路的交通灯,两道路交替通行,每次通行时间可设定20——60秒之间,每个路口要求有前行、禁止、人行灯。 (根据实际设计进度考虑可以增加左右转向灯,等待和通行时间显示等)。 3.撰写设计说明书一份(不少于2000字),阐述系统的工作原理,软、硬件设计方法,重点阐述软件思路。说明书应包括封面、任务书、目录、摘要、正文、参考文献(资料)等内容,以及硬件电路综合图和软件程序清单等材料。 注:设计说明书题目字体用小三,黑体,正文字体用五号字,宋体,小标题用四号及小四,宋体,并用A4纸打印。 三、课程设计进程安排

四、设计资料及参考文献 1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001 3.潘松等主编,《EDA技术实用教程》,科学出版社,2006 4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006 5.Charles H.Roth等著,《数字系统设计与VHDL》,电子工业出版社,2008 五、成绩评定综合以下因素: (1) 说明书及设计图纸的质量(占50%)。 (2) 独立工作能力及设计过程的表现(占30%)。 (3) 回答问题的情况(占20%)。 说明书和图纸部分评分分值分布如下:

EDA综合课程设计实验报告

EDA综合课程设计实验报告 题目:设计一个全双工UART电路院系:XXXX学院 学号:XXXXX 姓名:严XX 教师:林XX 时间:2012.06.02

1 课程设计的摘要原理 (2) 2 设计一个全双工UART电路,具体要求如下: (6) 3.UART设计 (7) 3.1 UART结构 (7) 3.2 UART的帧格式 (8) 4 UART的Verilog HDL语言设计 (9) 4.1 UART分频器 (9) 4.2UART发送模块 (10) 4.3 UART的接收模块 (14) 4.4 UART的硬件测试 (18) 5 课程设计总结 (19)

1摘要 UART协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议,在实际工业生产中有时并不使用UART的全部功能。只需将其核心功能集成即可。波特率发生器、接收器和发送器是UART的三个核心功能模块,利用Vefilog-HDL语言对这三个功能模块进行描述并加以整合UART(即Universal AsynchronousReceiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时我们不需要使用完整的UART的功能和这些辅助功能。或者设计上用到了FPGA/CPLD器件,那么我们就可以将所需要的UART功能集成到FPGA内部。使用VHDL或Veriolog -HDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。本文应用EDA技术,基于FPGA/CPLD器件设计与实现UART。 实际应用上,有时我们不需要使用完整的UART的功能和这些辅助功能。使用Verilog-HDL将所需要的UART的核心功能集成到FPGA/CPLD内部,就可以实现紧凑、稳定且可靠的UART数据传输。这样,既可以满足实际的应用,实现所要求的简单的通信和控制,又能够去除更多不需要的繁杂复杂的功能实现。 一、UART的原理 串行通信是指外部设备和计算机间使用一根数据线(另外需要地线,可能还需要控制线)进行数据传输的方式。数据在一根数据线上一位一位传输,每一位数据都占据一个固定的时间长度。与并行通信方式相比,串行通信方式的传输速度较慢,但这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,因此得到了广泛的应用。 基本的UART只需要发送和接收两条数据线就可以完成数据的全双工通信,其基本功能是在发送端将控制器通过总线传过来的并行数据,以设定的格式,设定的频率串行地传输出去,并同时在接收端将串行接收到的数据,转换成相应的并行数据发送出去。UART的基本帧格式如图1所示。其中,起始位总是逻辑O状态,停止位总是逻辑l状态,其持续时间可选为1位、1.5位或2位,其数据位可为5、6、7、8位,校验位可根据需要选择奇校验位,偶校验位或无校验位。

数字电路课程设计

数字电路课程设计 姓名:李志波 专业:电子信息工程 年级:2012级

数字闹钟计时器 一.实验目的 1.通过这个实验进一步了解掌握各种功能芯片的功能,并能够在电路系统中正确应用。 2.强化巩固专业课课程内容,学会对电路的系统分析。 3.初步了解基础的电路设计思路和方法,锻炼自己的动手能力,巩固电子焊接技术。 二.实验原理 1.显示译码器 74LS248(74LS48)是BCD码到七段码的显示译码器,它可以直接驱动共阴极数码管。它的引脚图及功能如下: (a)要求输入数字0~15时“灭灯输入端”BI必须开路或保持高电平,如果不要灭十进制的0,则“动态灭灯 输入”RBI必须开路或者为高电平。 (b)当灭灯输入端BI接低电平时,不管其他输入端为何种电平,所有各端输出均为低电平。 (c)BI/RBO是线与关系,既是“灭灯输入端”BI又是“动态灭灯输出端”RBO。 2.数码显示器 LC5011-11就是一种共阴极数码显示器,它的管脚图如图1,X为共阴极,DP为小数点。其内部是八段发光二极管的负极连在一起的电路。当在a.b.c.d.e.f.g.DP加上正向电压时,各段

二极管就会被点亮,例如,利用74LS48和数码管组合成的显 示译码电路。 ABCD 四个引脚接上一级输出 LT,RBO/BI ,RBI 接高电平,或悬空。 3,十进制集成计数电路74LS90 74LS90时异步二-五-十进制计数器。其管脚图如图 U1 74LS90D Q A 12Q B 9Q D 11 Q C 8I N B 1 R 916 R 927R 012I N A 14R 02 3 G N D 10 V C C 5它的内部由两个计数电路组成,一个为二 进制,计数电路,计数脉冲输入端为CP1,输出端为QA QB QC QD.这两个计数器可独立使用,当QA 连到CP2时,可构成十进制计数器。 它具有复零输入端ROA,ROB 和复9输入端R9A R9B 。如果复零输入端ROA,ROB 皆为高电平时,计数器复零;如果复9输入端R9A,R9B 皆为高电平时,计数器复9。计数时ROA,ROB 其中之一接高电平或者二者都接高电平,并要求复9输入端R9A,R9B 其一接低电平或者同时接低电平。用74LS90接成的24 进 制 计 数 器 电 路 如 图

相关文档
最新文档