资源描述:
《实验三用状态机实现序列检测器的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FPGA实验报告实验名称:用状态机实现序列检测器的设计姓名:班级:电子1002班指导老师:时间:2013年3月27日一、实验要求1、应用有限状态机的设计思路,检测输入的串行数据是否是8’b。2、拟用SW3---SW0,J4接口的E8,F8,C7,D7作为系统输入(系统由此需要设计一个8bits并行数据转串行的模块)3、一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为””,显示A,否则显示b(系统需要设计一个7段数码显示译码器模块)4、为了显示可控,清晰,拟用V16,D18实现时钟,复位信号的输入。二、
2、任务分析顶层模块并转串
模块串行检测模块数码管显示模块并行8bits数据clk串行数据4bits数据reset7bits数据图2.1设计任务框图系统共包括4个模块:1、并行数据转串行数据模块(xulie.v);异步复位,在时钟控制下,将并行输入数据din8[7:0],按照din[7],din[6],din[5],din[4],din[3],din[2],din[1],din[0]的顺序输出至串行检测模块的输入端口din。2、串行检测模块;输入信号:din-----1bit的串行输入数据clk-----同步输入时钟
3、clr------异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作。输出信号:AB--------4bits数据,如果系统检测到8’b的串行输入,AB=4’b1010,否则,AB=4’b1011。3、数码管显示模块;输入:data_in[3:0]-------待显示的数值输出:data_out[6:0]-------驱动数码管的七位数值4、消抖模块。由于需要用按键V16作为时钟输入,为保证实验效果,调用实验二中应用的消抖模块,对时钟clk输入信号进行消抖。三、实验过程1、构建一个工程名为XULIEQI
4、的工程,正确选择器件和EDA工具。2、设计串行检测模块(schk.v)a)、建立新VerilogHDL模块编辑窗口,选择资源类型为VerilogModule,并输入合法文件名图3.1工程建立及工具选择b)、在文本编辑窗口输入代码图3.2文本编辑附:moduleschk(din,clk,clr,AB);inputdin,clk,clr;output[3:0]AB;reg[3:0]AB;reg[7:0]Q;parameters0=8'b,a=8'b,b=8'b,c=8'b,d=8'b,e=8'b,f=8'b,g=8'
5、b,h=8'b,data=8'b;always@(posedgeclkorposedgeclr)if(clr)beginQ<=s0;endelsebegincase(Q)s0:beginif(din==data[7])Q<=a;elseQ<=s0;enda:beginif(din==data[6])Q<=b;elseQ<=s0;endb:beginif(din==data[5])Q<=c;elseQ<=s0;endc:beginif(din==data[4])Q<=d;elseQ<=c;endd:beginif(
6、din==data[3])Q<=e;elseQ<=a;ende:beginif(din==data[2])Q<=f;elseQ<=s0;endf:beginif(din==data[1])Q<=g;elseQ<=b;endg:beginif(din==data[0])Q<=h;elseQ<=s0;endh:beginif(din==data[7])Q<=a;elseQ<=s0;enddefault:Q<=s0;endcaseendalways@(Q)beginif(Q==h)AB<=4'b1010;elseAB<
7、=4'b1011;endendmoduled)、执行综合得到综合后的电路,并进行功能仿真。图3.3功能仿真3、串行检测模块(schk.v)步骤同2,附上设计结果,如下图所示:图3.4功能仿真4、数码管显示模块(decled7s.v)同样的步骤,参考实验二的数码显示模块。3、消抖模块设计同样的步骤,参考实验二的消抖模块。4、编写顶层设计,进行综合、仿真。图3.5综合结构图图3.6功能仿真7、在顶层添加消抖模块,综合后,锁定引脚。拟用SW3---SW0,J4接口的E8,F8,C7,D7作为系统输入din8[7:0];
8、采用D18按键为复位信号输入;采用V16按键作为时钟输入;仍采用J2,J1的引脚为数码管输出引脚;50MHZ板上时钟为消抖计时时钟。8、验证程序后,下载。9、连接输入信号到FPGA,改变拨动开关和按键,观察结果。下载成功后,可以看到,按下按键即给一定的时钟后,检测到数据后,数码管显示A,否则显示b。四、思考题并行转串行模块采用Moore型状态机:次态=f(现状,输入),输