文档库 最新最全的文档下载
当前位置:文档库 › VHDL习题6作业

VHDL习题6作业

VHDL习题6作业
VHDL习题6作业

VHDL第六章课后作业6.1-6.5(2013/12/9)6.1用if语句描述4选1数据选择器

VHDL描述如下:

library ieee;

use ieee.std_logic_1164.all;

entity mux4_1 is

port(d0,d1,d2,d3:in bit;

sel : in std_logic_vector(1 downto 0);

y : out bit);

end mux4_1;

architecture one of mux4_1 is

begin

process(sel,d0,d1,d2,d3)

begin

if sel="00" then y<=d0;

elsif sel="01" then y<=d1;

elsif sel="10" then y<=d2;

else y<=d3;

end if;

end process;

end one;

6.2用IF语句描述四舍五入电路的功能,假定输入的是一位BCD码。VHDL程序描述如下:

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_unsigned.all;

Entity sim4_5 is

Port( data : in std_logic_vector(3 downto 0);

En : in bit;

Qout : out std_logic_vector(3 downto 0));

End sim4_5;

Architecture one of sim4_5 is

Begin

Process(en , data)

Variable temp : std_logic_vector(3 downto 0);

Begin

if en=’0’then

qout <=’Z’;

else

temp : =data;

end if;

if (temp<5) then

qout <=”0000”;

else

qout <=temp+1;

end if;

end process;

end one;

6.3用CASE语句描述七段显示译码器,假定输入的是一位BCD码。VHDL描述如下(共阴极数码管):

Library ieee;

Use ieee.std_logic_1164.all;

Entity seg_bcd7 is

Port(data : in std_logic_vector(3 downto 0);

a,b,c,d,e,f,g : out std_logic);

end entity seg_bcd7;

architecture one of seg_bcd7 is

signal dout :std_logic_vector(6 downto 0);

begin

dout<= a & b & c & d & e & f & g;

process(data,dout)

begin

case data is

when “0000” =>dout<=”1111110”;

when “0001” =>dout<=”0110000”;

when “0010” =>dout<=”1101101”;

when “0011” =>dout<=”1111001”;

when “0100” =>dout<=”0110011”;

when “0101” =>dout<=”1011011”;

when “0110” =>dout<=”1011111”;

when “0111” =>dout<=”1110000”;

when “1000” =>dout<=”1111111”;

when “1001” =>dout<=”1111011”;

when others =>dout<=”0000000”;

end case;

end process;

end one;

6.4用CASE语句描述4选1数据选择器功能。VHDL描述4选1数据选择器如下:

Library ieee;

Use ieee.std_logic_1164.all;

Entity mux4_1 is

Port( d0,d1,d2,d3 : in std_logic;

Sel : in std_logic_vector(1 downto 0);

Y : out std_logic);

End mux4_1;

Architecture one of mux4_1 is

Begin

Process(sel,d0,d1,d2,d3)

Begin

Case sel is

When “00” =>y<=d0;

When “01” =>y<=d1;

When “10” =>y<=d2;

When “11” =>y<=d3;

End case;

End process;

End one;

6.5总结用CASE语句描述设计时应注意事项。

编写VHDL程序时,在使用CASE语句时应注意一下几点:(1)条件表达式的所有取值必须在WHEN子句中被列举出来;

(2)W HEN子句中的取值必须在条件表达式的取值范围内;

(3)不同的WHEN子句中不允许出现相同的取值;

(4)如果不能保证已经列举了条件表达式所有取值的可能,

可用WHEN OTHERS表示其他取值,以免综合器插入不必要的锁存器。这一点对于STD_LOGIC和STD_LOGIC_VECTOR型数据尤为重要;另外,WHEN OTHERS子句必须放在CASE语句的最后面;

(5)与IF语句不同,CASE语句中的WHEN条件子句可以任意改变排列次序而不会影响描述的逻辑功能。

电子科技大学 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与数字系统课程设计 学生: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

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 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课程设计-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)熟练掌握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)写实验报告;

湖南科技大学 信息与电气工程学院 课程设计任务书 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进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

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

实验一 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开始模拟仿真 仿真结果:

HEFEI UNIVERSITY EDA设计报告 题目 系别 班级 姓名 指导老师 完成时间

目录 一、设计要求 (3) 1.功能介绍 (3) 2.性能与功能设计 (3) 二、方案设计 (3) 三、程序框图 (3) 四、程序原理图 (4) 五、程序仿真与分析 (5) 1.秒计数器 (5) 2.分计数器 (5) 3.小时计数器 (6) 4.整点报时报警 (6) 5.时钟系统波形图 (7) 六、程序代码 (7) 七、总结与体会 (11)

一、设计要求 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)具有调节小时、分钟及清零的功能。 3)具有整点报时功能。 2.性能及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,同时可以通过改变频率来改变计数。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生报警声音。 二、方案设计 根据各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 三、程序框图

课程设计报告 实践课题: 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 输 二、实现功能说明 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与数字系统课程设计 实践课题: 学生: XXX 指导老师: XXX、XXX 系别:电子信息与电气工程系 专业:电子科学与技术 班级: XXX 学号: XXX {

! 一、设计任务 用VHDL设计一个简单的处理器,并完成相关的仿真测试。 .设计要求: 图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。 图1 简单处理器的电路图 数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0~R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。 》 加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,

他寄存器中。 下表是该处理所支持的指令。 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输 二、实现功能说明 mv Rx,Ry 实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例) (1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。置位的控制信号如图3加粗黑线所示。

2009-20010年第1学期 VHDL 设计题目: 设计题号: 难度系数: 专业: 年级: 设计人: 学号: 设计指导:徐仲晖 平时成绩: 电路成绩: 报告成绩: 总成绩: 批阅人:徐仲晖 2009.12.06

一:设计目的(5分。得分:) (1)设计XXXXXXXX电路;(0.5分) (2)通过XXXXX分析,研究XXXXX特性;(命题定位内容0.5分) (3)通过XXXXX分析,研究XXXXX特性;(待定) (4)通过XXXXX分析,证明XXXXX定律的正确性;(待定) (5)研究XXXX元器件在XXXXXXX电路中的作用;(待定) (6)通过设计,熟练掌握XXXX元器件相关概念及其电路分析方法;(0.5分)(7)通过设计,熟练掌握XXXXXXX电路设计及仿真。(0.5分) (8)通过设计,掌握需求,制定设计规范(0.5分) 二:设计原理(40分。得分:) (1)英文说明书阅读摘要(10分。其中:提交原文1分,阅读摘要4分。得分:): The 74LS164 is a high speed 8-Bit Serial-In Parallel-Out Shift Register. Serial data is entered through a 2-Input AND gate synchronous with the LOW to HIGH transition of the clock. The device features an asynchronous Master Reset which clears the register setting all outputs LOW independent of the clock. It utilizes the Schottky diode clamped process to achieve high speeds and is fully compatible with all ON Semiconductor TTL products. 图82-1:图号取自于设计编号,注意格式 (2)电路组成描述(5分。其中:元器件名称1分,互连关系1分,作用1分。得分:): (3)电路原理描述(10分。其中:电路功能1分,层次关系1分,关键环节1分,术语规范2分。得分:): 74ls164为8位串行入并行出移位寄存器,当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当 A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。当A、B 有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。 (4)真值表(5分。得分:):

目录 一、课程设计的目的与任务 (2) 二、课程设计题目 (2) 1、指定题目: (2) 2、自选题目: (2) 三、课程设计的内容与要求 (2) 1、设计内容 (2) 2、设计要求 (3) 四、实验仪器设备 (3) 五、设计方案 (3) 1、PS2解码 (3) 2、设计思路 (5) 3、模块设计 (6) 4、各模块分析 (7) (1)PS2时钟检测模块 (7) (2)PS2解码模块 (8) (3)PS2组合模块 (10) (4)控制LED模块 (12) (5)PS2总的组合模块 (14) 六、综合与仿真 (15) 1、综合 (15) 2、仿真 (16) (1)电平检测模块仿真 (16) (2)LED灯控制模块仿真 (17) (3)PS2_module总模块仿真 (17) 七、硬件下载 (20) 八、心得体会 (22) 九、参考文献 (22)

一、课程设计的目的与任务 (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语言程序;

可编程逻辑器件及应用课程设计 题目:数字电子钟设计与实现 姓名: 11111 学号: 111111111 班级: 111111111 同组人员: 1111 指导教师: 1111 完成日期: 111111111

目录 一、设计目的 二、设计内容 三、设计原理 四、设计方法 4.1分频器(输入1024Hz频率,输出1Hz和512Hz信号) 4.2六十进制计数器 4.3二十四进制计数器 4.4整点报时模块(数据选择器) 4.5校时校分模块 4.6完整数字钟 4.7开发平台及硬件显示结果 五、课程设计总结

一、设计目的 1.熟练的运用数字系统的设计方法进行数字系统设计 2.掌握较复杂的数字系统设计 3.掌握原理图设计方法和VHDL语言设计方法 二、设计内容 分别用原理图和VHDL语言设计 1.显示时、分、秒的数字钟,显示格式如下: 具有清零、校时、校分、整点报时等功能 三、设计原理

该系统由振荡器、分频器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。石英晶体振荡器和分频器产生整个系统的时基信号,它直接决定计时系统的精度。“秒计数器”采用六十进制计数器,每累计60秒向“分计数器”进位;“分计数器”采用六十进制计数器,每累计60分向“时计数器”进位;“时计数器”采用二十四进制计数器,按照“24翻1”规律计数。“时、分、秒”计数器的输出经译码器送显示器显示。校时电路用来当计时出现误差时对“时、分、秒”进行校对调整。整点报时电路是根据计时系统的输出状态产生一脉冲信号,然后去触发音频发生器实现报时。 四、设计方法 4.1分频器(输入1024Hz频率,输出1Hz和512Hz信号) 数字钟系统中需要1Hz、512Hz、1024Hz三种脉冲信号。1Hz信号用于计数的秒信号,也用于校时、校分的信号,1024Hz和512Hz用于整点报时。由于系统板上提供1024Hz信号,用分频器可得到这些信号。 1)原理图设计 原理图设计时,可用三个16进制计数器74161串接后得到1Hz、512Hz 两种脉冲信号。 分频器原理图: 分频器仿真波形:

《电子设计自动化(EDA)技术》课程实训报告 题目: 交通信号控制器VHDL设 计 ** 姓名: 院技术学应院系:用

业:电子信息工程(仪器仪表)专学号: ************ 坤指导教师:徐正

目录 1 课程设计题目、内容与要求…………………………………4页 设计题目…………………………………………………4页 设计内容…………………………………………………4页 具体要求…………………………………………………4页 2 系统设计………………………………………………………5页设计思路…………………………………………………5页 系统原理…………………………………………………5页 3 系统实现………………………………………………………5页 VHDL源程序的具体程序和说明………………………5页 交通信号控制器程序中使用到得信号及其对应的管脚…7页 4 系统仿真………………………………………………………7页

5 硬件验证(操作)说明………………………………………7页 页8…………………………………………………………总结6 7 参考书目……………………………………………………8页 交通灯控制器 周晓 重庆三峡学院应用技术学院电子信息工程(仪器仪表)2008级重庆万州 404000 摘要基于VHDL的交通灯控制器设计,芯片采用ALTERA公司的ACEX1K 系列的 EP1K10TC100-3,使用硬件描述语言 VHDL进行描述,对交通灯进行模块化,在VHDL编程环境Quartus II下编译通过。此报告对该设计的思想原理,详细程序和引脚配置以及波形仿真进行了详细的阐述。 关键词: VHDL 模块化交通灯设计 1 课程设计题目、内容与要求 设计题目 交通信号控制器VHDL设计 设计内容 交通信号控制器的VHDL源程序; 交通信号控制器的仿真波形; 交通信号控制器的硬件测试结果。 具体要求 设计一个交通信号控制器。 交通信号控制器原理框图如下图所示。.

湖南科技大学信息与电气 工程学院 《课题名称》 课程设计报告 题目:循环彩灯控制器 两人抢答器 数字显示秒表 专业:电子信息工程 班级:二 姓名: 学号:

目录 一、课程设计的目的…………………………………………………… 1.1设计目的………………………………………………………………… 1.2设计要求………………………………………………………………… 二、设计方案的论证…………………………………………………… 2.1循环彩灯控制器设计…………………………………………………… 2.2两人抢答器设计………………………………………………………… 2.3数字显示的秒表设计…………………………………………………… 三、设计仿真及结果分析……………………………………………… 3.1循环彩灯控制器………………………………………………………… 3.2两人抢答器……………………………………………………………… 3.3数字显示的秒表………………………………………………………… 四、设计及仿真中的体会……………………………………………… 五、对本次课程设计的体会和建议…………………………………… 六、参考文献……………………………………………………………附录………………………………………………………………………

课程设计任务书题目 设计时间 设计目的: 总体方案实现: 指导教师评语:

一课程设计的目的 1.1设计目的 本课程设计的目的是熟练掌握相关软件的使用和操作。能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。在成功掌握软件操作基础上,将所数字电路的基础课知识与VHDL语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。 1.1设计要求 为了使设计达到应有的效果,使学生充分掌握相应的软件操作使用,VHDL语言编程,数字逻辑电路设计的方法和思路,鼓励学生独立思考,自主研究。本课程设计要求达到如下目的: 1.使学生熟练掌握相关软件的使用,操作。能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判 断并改进所设计的电路。 2.在成功掌握软件操作基础上,让学生将所数字电路的基础课知识与VHDL语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。要求 学生自主设计电路,编写程序,鼓励新思路,新方法,新观点。 3.深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA 技术的开发创新有初步的理解。 踏实的完成此次课程设计的教学将为学生进一步深入了解电子产业的发展与内容,积极投身于工程技术的开发与研究特别是EDA技术的发展奠定一定的基础。 二、设计方案的论证 2.1循环彩灯控制器设计 方案一:采用if语句,对数字进行累加,取满足条件的数值,点亮相应彩灯。 方案二:使用case语句,对数字累加,取满足条件的数值,点亮相应彩灯。论证:if为顺序执行语句,case为并发执行语句。使用if语句,对数据区分明 显。Case并发执行,判断及时。但使用case思路清晰,易于实现,相比if语句简洁,可靠性更高。

交通信号控制器的VHDL的设计 一、设计任务 模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器.能达到的要求: (1)交通灯从绿变红时,有4秒黄灯亮的间隔时间; (2)交通灯红变绿是直接进行的,没有间隔时间; (3)主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒; (4)在任意时间,显示每个状态到该状态结束所需的时间. 支干道 主干道 图1 路口交通管理示意图 二、设计原理 1、设计目的: 学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用.通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制 2、设计说明 (1)第一模块:clk时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的.因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作. 模块说明: 系统输入信号: Clk: 由外接信号发生器提供256的时钟信号;

系统输出信号: full:产生每秒一个脉冲的信号; (2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号. 模块说明: 系统输入:full: 接收由clk电路的提供的1hz的时钟脉冲信号; 系统输出信号: t米: 产生显示电路状态转换信号 tl:倒计数值秒数个位变化控制信号 th:倒计数值秒数十位变化控制信号 (3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换. 模块说明: 系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号; t米: 接收计数秒数选择电路状态转换信号; 系统输出信号: co米b_out: 负责红绿灯的状态显示. (4)第四模块:时间显示电路 本电路负责红绿灯的计数时间的显示. 模块说明: 系统输入信号:tl:倒计数值秒数个位变化控制信号; th:倒计数值秒数十位变化控制信号; 系统输出信号: led7s1: 负责红绿灯的显示秒数个位. led7s2: 负责红绿灯的显示秒数十位. 三、设计方案

评阅老师 分数 数字系统课程设计 班级信息工程1班 组长 组员

1题目要求 设计要求 ●设计一个由甲、乙双方参赛的3人乒乓球游戏机。 ●用6个LED排成一条直线,两边各代表参赛双方的位置,其中一只点亮 的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。在其他时候击球视为犯规,给对方加1分;都犯规,各自加1分; ●当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按 下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。 ●设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满 11分为1局。 ●甲、乙双方可轮流发球 ●有一个按钮,可以使系统初始化。 2设计方案(或设计分析) 2.1.1设计原理 状态机设置了7个状态,分别是“等待发球状态”(waitserve),“第一盏灯亮状态”(light1on),“第六盏灯亮状态”(light6on),“球向乙移动状态” (ballmove2),“球向甲移动状态”(ballmoveto1),“允许甲击球状态”(allow1hit),“允许乙击球状态”(allow2hit)。开始的时候处于“等待发球状态”,若甲发球则转移到“第一盏灯亮状态”,若乙发球则则转移到“第六盏灯亮状态”,具体以甲发球为例。 若发球后乙没有提前击球(规定球移动到对方第一个发光二极管时允许击球),那么装体机从“第一盏灯亮”转移到“球向乙移动”。若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙击球状态”,在此状

态下若乙击球了,那么状态就转移到“球向甲移动状态”。在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得分,然后进入“等待发球状态”等待发球。“球向甲移动状态”之后的过程和前面的过程不过是甲乙角色的调换而已。 各个状态间的转移控制要根据要求来改变转移的状态由于设计要求实现LED灯依此从左到右,或从右到左的移动,同时球拍击球。若击中,则球向相反方向移动,若未击中,则对方得1。用VHDL中的状态机来实现其功能将非常简便和明了。就其功能,若要实现记分,就得用到7段数码管,考虑到硬件要求,考虑用动态扫描技术来解决。动态扫描前要进行译码,即把记数得分的结果译码成七段码。在等待状态里,在发球的条件上加上发球权属于谁。要求甲、乙双方参赛,即用两个输入信号代表,重新开始时,要求所有的计数器都清零,且进入等待状态。总的来说,要完成乒乓球游戏机的设计,可以以状态机为控制核心,附加其它功能模块来实现。 3模块实现 一、分频模块 这个模块主要是把开发板的50Mhz频率分频成1hz,这样可以使我们接下来的流水灯流动时间为1S。 具体代码如下: PROCESS(clk) VARIABLE time:integer RANGE0TO50000000; BEGIN IF rising_edge(clk)THEN time:=time+1; IF(time=25000000)THEN clk1<='1'; ELSIF(time=50000000)THEN clk1<='0'; time:=0; END IF; END IF; END PROCESS; 接下来的流水的代码就开始使用clk1时钟。 二、主程序状态机模块 这个模块式主程序模块,也是最重要的模块。采用状态机单进程的方法,一

相关文档