FPGA实验报告北信科.doc_第1页
FPGA实验报告北信科.doc_第2页
FPGA实验报告北信科.doc_第3页
FPGA实验报告北信科.doc_第4页
FPGA实验报告北信科.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实 验 报 告 课程名称 复杂可编程逻辑器件及数字系统设计 实验项目 FPGA上机实验 实验仪器 计算机 quartusII软件 系 别 仪器科学与光电工程学院 专 业 测控技术与仪器 班级/学号 测控1001 学生姓名 实验日期 2012.12 成 绩 指导教师 实验三 时序逻辑电路的设计一、 实验目的1设计8位锁存器、60分频器,并在实验装置上验证所设计的电路;2了解时序逻辑电路的设计特点。二、实验要求 用原理图输入方式设计8位锁存器、用AHDL输入方式设计60分频器。验证电路的外围器件可选用按键输入、数码管输出。三、实验程序1、LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY keep ISPORT(clk,cr,cd:IN std_logic;d:IN std_logic_vector(7 DOWNTO 0);q:OUT std_logic_vector(7 DOWNTO 0);END;ARCHITECTURE w1 OF keep ISBEGINPROCESS(clk,cr)-进程的敏感信号为时钟clk和清零信号crBEGINIF cr=1 THEN q0);-如果cr=1则异步清零ELSIF rising_edge(clk)THEN-否则如果检测到时钟上升沿则嵌套IF语句IF cd=1THEN q=d;-如果同步使能信号cd=1,则所存d的信号END IF;-否则保持原存数据END IF;END PROCESS;END;2、60分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity frq_div is port( clk : in std_logic; -输入时钟 clk_out : out std_logic); -输出时钟end frq_div;architecture behavioral of frq_div issignal cnt : std_logic_vector(28 downto 0); -计数器值signal clk_temp : std_logic;constant PRD : integer := 29; -计数器范围,PRD=N/2-1beginprocess ( clk ) -计数器begin if clkevent and clk=1 then if cnt = PRD then -计数器值等于PRD时,clk_temp翻转 cnt = 00000000000000000000000000000 ; clk_temp = not clk_temp; else cnt = cnt + 1; end if; end if;end process;clk_out = clk_temp; end behavioral;3、RTL原理图思考题:如何消除险象竞争? 竞争险象消除的方法有很多,如增加冗余项、引入封锁脉 冲、加通脉冲及接入滤波电容等。 增加冗余项的方法 1,是通过在原函数表达式中增加多余 的“与”项或“或”项,使原函数在任何条件下都不会出现 或 的形式,从而消除险象的产生。对逻辑险象一般可通过增加冗余项或乘上A+或A的形式。在卡诺图上相当于把相切的小方块用一个复合圈包围起来。通过在输出端连接一个RC低通滤波器来消除险象。因为干扰脉冲的频率远远高于正常输出信号的频率,利用RC的“隔高频通低额”特性,可基本滤掉干扰脉冲。实验四 数字电路系统实验设计交通灯控制器一、 实验目的1设计一个简易交通灯控制器,并在实验装置上验证所设计的电路;2学习层次化设计方法。二、实验要求位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,亮灭顺序如表所示,1表示亮,0表示灭,假设灯亮灭时间均为1S。本实验设计输入方法、验证器件不限,最终需建立一个元件符号。A方向B方向红灯黄灯绿灯红灯黄灯绿灯100001100010010010010100001100010100010010100010三、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity frq_div is port( clk : in std_logic; -输入时钟 clk_out : out std_logic); -输出时钟end frq_div;architecture behavioral of frq_div issignal cnt : std_logic_vector(22 downto 0); -计数器值signal clk_temp : std_logic;constant PRD : integer := 4999999; -计数器范围,PRD=N/2-1beginprocess ( clk ) -计数器begin if clkevent and clk=1 then if cnt = PRD then -计数器值等于PRD时,clk_temp翻转 cnt = 00000000000000000000000 ; clk_temp = not clk_temp; else cnt = cnt + 1; end if; end if;end process;clk_out 0); -等效于cqi:=0000 elsif clk event and clk=1 thenif en=1 then if cqi 0); end if;end if;end if; if cqi=7 then cout= 1; else cout= 0; end if; cq =cqi;end process;p=1;end; 思考题:如何实现各灯亮灭时间可调?通过改变计数器的计数值来实现各灯亮灭的时间。实验五 数字电路系统实验设计一个方波信号输出电路一、 实验目的1设计一个方波信号产生电路,并在实验装置上验证所设计的电路;2建立自顶向下的设计思路。二、实验要求设计一个占空比为20、周期为1S的方波信号,并用末位数码管进行指示当方波信号为高电平时,数码管显示2;当方波信号为低电平时,数码管显示8。三、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fang_bo isport(sysclk:in std_logic; clk_1hz:out std_logic; led:out std_logic_vector(6 downto 0); pp: out std_logic );end entity;architecture rtl of fang_bo is signal count:integer range 0 to 10000000; signal tmp_clk:std_logic;beginprocess(sysclk)begin if(rising_edge(sysclk)then if(count=9999999)then count=0; else count=count+1; end if; end if;end process;process(count)begin if(count2000000)then -20% is 0.2s tmp_clk=1; else tmp_clk=0; end if;end process;process(tmp_clk) -display by ledbegin if(tmp_clk=1)then led=1011011; else led=1111111; end if;end process;clk_1hz=tmp_clk;pp=1;end architecture;实验六 数字电路系统实验设计两人掷骰子比较点大小的游戏电路一、 实验目的1设计一个游戏电路并在实验装置上验证所设计的电路;2建立自顶向下的设计思路。二、实验要求A、 B两人玩掷骰子的游戏,当A的点数大于B的点数时,输出H=“1”、L=E=“0”;当A的点数小于B的点数时,输出L=“1”、H=E=“0”;当A的点数等于B的点数时,输出E=“1”、H=L=“0”;并同时用两个数码管显示A、B两人的点数。三、实验程序LIBRARY ieee; USE ieee.std_logic_1164.ALL;ENTITY wx IS PORT(a0,a1,a2,b0,b1,b2,s:IN std_logic; y:OUT std_logic_vector(2 DOWNTO 0);END;ARCHITECTURE m1 OF wx ISBEGINWITH s SELECT y=a2&a1&a0 WHEN1, b2&b1&b0 WHEN0; END m1;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity frq_div is port( clk : in std_logic; -输入时钟 clk_out : out std_logic); -输出时钟end frq_div;architecture behavioral of frq_div issignal cnt : std_logic_vector(21 downto 0); -计数器值signal clk_temp : std_logic;constant PRD : integer := 250000; -计数器范围,PRD=N/2-1beginprocess ( clk ) -计数器begin if clkevent and clk=1 then if cnt = PRD then -计数器值等于PRD时,clk_temp翻转 cnt = 0000000000000000000000 ; clk_temp = not clk_temp; else cnt = cnt + 1; end if; end if;end process;clk_out = clk_temp; end behavioral;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6 is port(clk,rst,en: in std_logic; cq:out std_logic_vector(2 downto 0); cout:out std_logic;-进位信号 p: out std_logic ); end ;architecture one of cnt6 isbeginprocess(clk,rst,en)variable cqi:std_logic_vector(2 downto 0);beginif rst=1 then cqi:=001; -等效于cqi:=0000 elsif clk event and clk=1 thenif en=1 then if cqi 6 then cqi:=cqi+1; else cqi:=001; end if;end if;end if; if cqi=6 then cout= 1; else cout= 0; end if; cq =cqi;end process;pb then y1=1;y2=0;y3=0;elsif a=b then y1=0;y2=1;y3=0;else y1=0;y2=0;y3=1;end if;end process;end;LIBRARY ieee; USE ieee.std_logic_1164.ALL;ENTITY gate_led IS PORT(a0,a1,a2:IN std_logic; y:OUT std_logic_vecto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论