欢迎来到天天文库
浏览记录
ID:18780279
大小:61.00 KB
页数:5页
时间:2018-09-23
《实验四 状态机设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验四状态机设计实验目的1.进一步熟悉QuartusII软件使用流程。2.理解和掌握状态机的概念。3.学习和掌握用状态机设计电路的方法。实验内容在QuartusII软件中使用状态机的方法设计并实现一个10进制计数器,要求使用一位数码管显示0~9的循环计数过程。脉冲使用1Hz信号源。要求计数器具备一个清零端,“0”时清零;“1”时正常计数。实验仪器PC机、R&C型EDA实验箱实验原理(1)状态机分为moore和mealy两种,区别在于输出是否只和当前状态有关。(2)状态机的两种基本操作:一是状态机内部状态的转换,另一是产生输出信号序列。(3)状态机
2、的分析可以从状态图入手,同样,状态机的设计也可以从状态图入手。设计状态机时一般先构造出状态图。构造状态图的一般方法是从一个比较容易描述的状态开始,通常初始态是一个很好开始的状态,也就是状态机复位以后开始的状态。在建立每个状态时最好都清楚的写出关于这个状态的文字描述,为硬件设计过程提供清晰的参考资料,也为最后完成的设计提供完整的设计文档。R&C型EDA实验箱中,8位数码管的连接方式如图所示,数据端为数码管的7个段和小数点段;位选端为SEL0、SEL1、SEL2三个段,接3-8译码器。数码管为共阴极数码管。实验中只需给位选端赋一个固定的值,确定某一位
3、数码管做计数显示。实验步骤1.在QuartusII软件中新建工程,新建VHDL文件,输入代码,进行编译,仿真。2.指定目标器件,并对编译通过的IO分配管脚(可参考开发板硬件电路图),分配完后再编译一次。3.将USB连接计算机机箱进行下载。4.在开发板中验证设计结果。注意,本次实验使用了CyloneEP1C6Q240C8的24和37引脚,而这两个引脚为复用引脚,因此需要按附录所示方法进行设置。程序清单:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYnum_displayISPORT(CLK:instd_l
4、ogic;RESET:instd_logic;COUNT:outstd_logic_vector(7downto0));ENDnum_display;ARCHITECTUREsimpleOFnum_displayISTYPESTATEIS(ZERO,ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE);SIGNALCR_STATE,NEXT_STATE:STATE;BEGINSEQ:PROCESS(CLK,RESET)BEGINifRESET='1'thenCR_STATE<=ZERO;elsif(CLK'e
5、ventandCLK='1')thenCR_STATE<=NEXT_STATE;endif;ENDPROCESSSEQ;COMB:PROCESS(CR_STATE)BEGINCASECR_STATEISwhenZERO=>COUNT<="00111111";NEXT_STATE<=ONE;whenONE=>COUNT<="00000110";NEXT_STATE<=TWO;whenTWO=>COUNT<="01011011";NEXT_STATE<=THREE;whenTHREE=>COUNT<="01001111";NEXT_STATE<=FO
6、UR;whenFOUR=>COUNT<="01100110";NEXT_STATE<=FIVE;whenFIVE=>COUNT<="01101101";NEXT_STATE<=SIX;whenSIX=>COUNT<="01111100";NEXT_STATE<=SEVEN;whenSEVEN=>COUNT<="00000111";NEXT_STATE<=EIGHT;whenEIGHT=>COUNT<="01111111";NEXT_STATE<=NINE;whenNINE=>COUNT<="01100111";NEXT_STATE<=ZERO;E
7、NDCASE;ENDPROCESSCOMB;ENDSIMPLE;仿真波形图:实验感想:在程序的设计之初输出为四位,需要经过译码显示才能在试验箱上显示,由于试验箱的硬件限制,修改了输出为八位(即直接的数码编码)后显示正常。
此文档下载收益归作者所有