收藏 分销(赏)

VHDL实验报告沈金凯).doc

上传人:w****g 文档编号:2670361 上传时间:2024-06-04 格式:DOC 页数:20 大小:1.48MB 下载积分:10 金币
下载 相关 举报
VHDL实验报告沈金凯).doc_第1页
第1页 / 共20页
VHDL实验报告沈金凯).doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
VHDL实验报告沈金凯) ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 《VHDL与数字系统计》 实验报告 班级 电信103 姓名 沈金凯 学号 110023089 王新华 编写 信息与电子工程学院 2011年10月 实验一 简单逻辑电路设计与仿真 一、实验目的 1、学习并掌握MAX+PLUSⅡ CPLD开发系统的基本操作。 2、学习在MAX+PLUSⅡ下设计简单逻辑电路与功能仿真方法. 二、实验仪器设备 1、PC机一台. 2、MAX+PLUSⅡ CPLD软件开发系统一套。 三、实验内容 1、用D触发器设计一个4进制加法计数器并进行功能仿真. (1)设计1个时钟脉冲输入端CLK; (2)设置2个计数状态输出端Q1、Q0; (3)按二进制加法规律计数; (4)进行电路功能仿真与验证。 2、设计一个2—4线译码器并进行静态功能仿真。 (1) 2个输入端,A0和A1; (2) 4个输出端,Y0至Y3; (3) 电路功能真值表如表1-1示,输出为高电平有效: (4) 进行电路功能静态测试与验证。 表1-1 2—4译码器真值表 A1 A0 Y0 Y1 Y2 Y3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 四、实验操作步骤 (一)4进制加法计数器设计与仿真 1、开机,进入MAX+PLUSⅡCPLD开发系统。 2、在工具条中选择新建文件,弹出NEW界面,在该界面中选择Text Edit File项,然后点击OK,进入文本编辑状态。然后点击工具条中的保存按钮,在弹出的Save As 界面中选择后缀 .VHD,并为当前的实验选择恰当的路径并创建项目名称。 3、 编辑输入相应的程序代码。 4、在File菜单中选Project项,选择其中的Set Project to Current File,将项目设置为当前文件.然后保存当前文件。 5、选择器件.点击Assign 菜单的Device项,在弹出的Device界面中选择ACEX1K系列的EP1K100QC208-3.注意界面中的Show Only Fastest Speed Grades 不要选中,否则显示不出该器件。 6、点击MAX+PlusII菜单下的Compiler进行编译,然后点击START按钮开始编译。对编译的结果进行观察,如果出现错误或告警,检查输入的源代码排除语法错误并重新编译,重复此过程直到编译通过。 7、点击MAX+PLUSⅡ菜单下的Waveform Editor 子菜单出现Waveform Editor窗口。点击鼠标右键,选择Enter Nodes From SNF子菜单,在Enter Nodes From SNF对话框中点击List按钮、“=>”按钮和Ok按钮,填入电路节点名称。 8、在时钟输入端CLK处设置好方波脉冲,点击MAX+PLUSⅡ菜单下的Simulaotr子菜单,进行波形仿真以验证电路的逻辑功能。 9、点击MAX+PLUSⅡ菜单下的Timing Analyzer子菜单,进行信号延迟时间分析,估算工作速度。 10、本次实验暂不进行芯片下载操作. (二)、设计一个2—4线译码器并进行静态功能仿真。 完成该译码器的源代码,并进行仿真调试。操作步骤同上。 五、实验报告 1、写出第一个实验的源代码并画出仿真波形图。 2、写出第二个实验的源代码并画出仿真波形图。 2、讨论用VHDL语言进行逻辑电路设计的特点,并与高级语言的调试过程作比较。 LIBRARY ieee; USE ieee。std_logic_1164。all; ENTITY counter IS PORT(clk:IN STD_LOGIC; Q1:OUT INTEGER RANGE 0 TO 3); END counter; ARCHITECTURE counter OF counter IS BEGIN count:PROCESS(clk) VARIABLE Q2:INTEGER RANGE 0 TO 4; BEGIN IF(clk'EVENT AND clk=’1’)THEN Q2:=Q2+1; IF(Q2=4)THEN Q2:=0; END IF; END IF; Q1〈=Q2; END PROCESS count; END counter; library ieee; use ieee.std_logic_1164。all; entity decoder is port ( ena:in std_logic; A: in std_logic_VECTOR(1 downto 0); Y: out std_logic_vector(3 downto 0)); end decoder; architecture decoder of decoder is begin process (ena,A) variable temp1: std_logic_vector (y’high downto 0); variable temp2: integer range 0 to y’high ; begin temp1 := (others=〉’1'); temp2 := 0; if(ena='1') then for i in A'RANGE LOOP if(A(i)=’1’)then temp2:=2*temp2+1; else temp2:=2*temp2; end if; end loop; temp1(temp2):='0'; end if; y<=temp1; end process; end decoder ; 实验二 计数器和分频器的设计及仿真 一、实验目的 1、学习VHDL语言的行为描述语句。 2、学习计数器和分频器电路的设计算法。 3、学习掌握波形的仿真过程. 二、实验仪器 1、PC机一台 2、MAX+PLUSⅡ CPLD开发系统一套 3、KHF-4型CPLD实验/开发系统一套 4、CPLDDN-3型下载软件一套 三、实验内容与步骤 1、设计一个分频器 分频器与计数器类似,它也是对时钟脉冲进行计数,但它的输出不是对信号的计数值,而是频率与时钟信号成固定比例关系的脉冲信号.一般希望分频输出信号的占空比为50%,若不要求,则可直接利用计数器作为分频器使用。 设计一个占空比为50%的60分频器。该分频器有一个时钟输入端clk ;一个清零端clr(clr低有效);一个一位数据输出端q。 (1) VHDL语言输入。 (2) 编译。 (3) 进行波形仿真,验证电路的逻辑功能. 2.设计一个计数器 计数器是数字系统中用得最多的逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲和脉冲序列等。计数器的种类很多。按时钟脉冲输入方式的不同,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器和非二进制计数器;按计数过程中数字增减趋势的不同,可分为加计数器、减计数器和可逆计数器。 在此设计一个模60的 异步清零、同步二进制的可逆计数器。 (1) VHDL语言输入(参考程序另外提供)。 (2)指定器件并编译。 (3)分配管脚后编译,生成下载文件。 (4)进行下载,并观察实验结果。 四、实验报告 1、写出实验一的代码,画出仿真波形。 2、写出实验二的代码。 3、在实验二程序中进程P1的功能是什么?输入端口direction的功能是什么? 4、实验二程序中计数的基本时间单位是多少?多长时间计满一次? 5、实验二中如果要将计数的基本时间增加一倍,程序如何修改?写出其中的关键语句。 library ieee; use ieee.std_logic_1164。all; entity freq_divider is port (clk,clr: in std_logic; Q: buffer std_logic); end freq_divider; architecture example of freq_divider is signal count:integer range 0 to 61; begin process (clr,clk) begin if(clr=’1’) then q〈= '0'; count<= 0; elsif (clk’event and clk='1') then count〈= count+1; if (count=59) then Q 〈= not Q; count<= 0; end if ; end if; end process; end example; 实验三 译码器电路的设计与仿真 一、实验目的 1、学习CASE分之语句及选择信号赋值语句。 2、掌握使用KHF—4型CPLD实验/开发系统的数码管显示。 二、实验仪器设备 1、PC机一台 2、MAX+PLUSⅡ CPLD开发系统一套 3、KHF—4型CPLD实验/开发系统一套 三、实验内容及步骤 1、用文本输入法设计译码器 (1) 在文本框中输入VHDL语言设计的程序(参考程序另外提供)。 (2) 选择器件并编译。点击Assign菜单的Device项,选择ACEX1K系列的EP1K100QC208-3。 (3) 点击floorplan editor按钮进行管脚分配,注意将输出分配到SEG1数码管对应的引脚。 (4) 对电路进行编译后,启动CPLDDN-3下载软件进行下载。 (5) 设置不同的输入值,观察数码管的显示值是否为预期的结果. 2、设计动态扫描及静态显示电路 在实验中经常需要将测量或运算结果用十进制数码显示出来。七段显示译码器用于对一个四位二进制数(8421BCD码)进行译码,在七段LED显示器上显示出相应的十进制数。实验箱上配置的10个数码管(SEG1——SEG10),采用共阴极8段LED显示。其中SEG1——SEG2采用静态显示方式,SEG3——SEG10采用动态扫描显示方式。本次实验显示一位静态码及8位动态显示码。 (1) 在文本框中输入VHDL语言设计的程序(参考程序单独提供)。 (2) 按照先前操作步骤下载程序,观察运行结果。 四、实验报告 1、写出实验一的代码. 2、写出实验二的代码。 3、说明何为静态,何为动态显示?。 4、在动态扫描显示时如果要反转扫描的顺序,如何修改程序?写出其中修改后的部分。 实验四 交通管理器的设计 一、 实验目的 1、学习VHDL语言状态机的设计方法。 2、掌握综合性电路的设计方法。 二、 实验仪器 1、PC机一台 2、MAX+PLUS Ⅱ CPLD开发系统一套 3、KHF—4型CPLD实验/开发系统一套 一、 实验要求 设计一个交通灯控制电路,其技术要求如下: 1、 A方向的道路绿灯亮,B方向道路红灯亮。 2、 经过一段时间后A方向的黄灯亮较短的时间。 3、 A方向黄灯熄灭后红灯亮,而同时B方向的绿灯亮,红灯熄灭。 4、 B方向的绿灯亮一段时间后熄灭,同时黄灯亮。 5、 B方向黄灯熄灭后红灯亮,同时A方向的绿灯亮,红灯熄灭。 二、 设计步骤 (1) 根据设计要求确定设计方案,状态转换如下图。 (2) 输入代码。 (3) 按照正常步骤操作,分配管脚,将输入和输出信号分配到SW1到SW16所对应的器件引脚上。注意输出的LED发光管由于颜色相同,因此输出信号在分配引脚时分成两组,每组3个灯,按顺序模拟红黄绿三种信号灯。 三、 实验报告 1、 写出实验代码。 2、 说明该状态机为哪一种状态机类型?为什么? 3、 如果要使绿灯亮的时间更长,同时不改变黄灯亮的时间,可以怎样修改程序? - 17 -
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服