《FPGA—约翰逊计数器(共5页).docx》由会员分享,可在线阅读,更多相关《FPGA—约翰逊计数器(共5页).docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上约翰逊计数器一、 实验目的1、 熟悉ISE软件的使用;2、 掌握用原理图设计数字电路的办法;3、 掌握利用层次结构描述法设计电路;二、 实验原理1、约翰逊计数器(扭环计数器)是一种环形计数器,其原理框图如下所示:图1 约翰逊计数器原理框图它由一个移位寄存器和一个组合反馈逻辑电路闭环构成,扭环计数器是将移位寄存器最后一级的输出取反后反馈到第一级输入端而构成的。2、本次设计一共有八个端口:一个时钟输入CLK;三个控制输入端:左移控制端LEFT、右移控制端RIGHT和停止控制端STOP,控制信号都是低电平有效;四个计数输出端:q(0)q(3)。输入端口引脚接目标板的四个按键
2、,输出端口引脚接目标板的四个LED。三、 实验步骤1、 原理图设计,新建工程然后用原理图设计的方式设计约翰逊计数器。图2 新建原理图工程图3 约翰逊计数器电路原理图画出的电路图如图3所示。2、 对设计进行综合,如出现错误请按照错误提示进行修改。图4 综合3、 添加测试文件,进行电路仿真。图5 建立激励文件激励文件的设计可以分别在stop信号有效与无效的时候进行左移或右移操作,来验证设计的正确性。4、 根据板子锁定引脚,并生成下载文件。本次试验中,输入端口LEFT,RIGHT,STOP,CLK信号分别用一个拨动开关来产生,分别为端口p20,p26,p32,p54。数据输出用LED灯显示,q0q3
3、分别对应端口p22,p23,p24,p25。在实验板上,拨动开关在上面是低电平,在下面是高电平。低电平时LED灯发光,高电平时不发光。生成下载文件。图6 生成下载文件四、 实验结果及分析1、 仿真波形:图7 仿真时间0ns250ns由图形可以看出此时STOP信号为低电平即无效,由于是时序仿真所以在LEFT信号有效后,输出数据开始移动,并且移动正确。图8 仿真时间250ns500ns从图中不难看出,在STOP信号有效时,输出数据不变,即是停止移动。2、 结果分析:本次设计为4位约翰逊计数器,通过仿真波形可知LEFT控制端控制寄存器向左移位,RIGHT控制端控制寄存器向右移位,并将最后一位输出取反
4、后输入到第一位。所以设计正确,在下载到板子上之后,拨动开关2、3打到低电平,拨动开关1打到高电平,然后反复拨动拨动开关4,会发现LED灯依次向左点亮后有依次熄灭这样循环。所以设计结果满足功能。五、 体会这一次的实验让我感到自己有很大的不足,对ISE的运用还欠缺许多,基本可以说是一窍不通。所以,这次实验以后还要花大量的时间在FPGA的学习上,希望可以从中学习到很多的东西。同时通过这个简单的实验,让我感受到了数字电路设计的魅力,这将是不同于以往单片机编程的一种体验。六、 附件1、 激励文件:timescale 1ns / 1psmodule jc2_jc2_sch_tb();/ Inputs re
5、g LEFT; reg RIGHT; reg STOP; reg CLK;/ Output wire 3:0 q;/ Bidirs/ Instantiate the UUT jc2 UUT (.LEFT(LEFT), .RIGHT(RIGHT), .STOP(STOP), .CLK(CLK), .q(q) );/ Initialize Inputsinitial beginCLK = 0;forever #10 CLK = CLK;end initial beginLEFT = 0; RIGHT = 1; STOP = 1; #100 LEFT = 1; RIGHT = 0; STOP = 1;#100 LEFT = 0; RIGHT = 1; STOP = 0; #100 LEFT = 1; RIGHT = 0; STOP = 0; #100 $stop;endendmodule2、引脚锁定net LEFT loc = p20;net RIGHT loc = p26;net STOP loc = p32;net CLK loc = p54;net q0 loc = p22;net q1 loc = p23;net q2 loc = p24;net q3 loc = p25;net CLK CLOCK_DEDICATED_ROUTE = FALSE;专心-专注-专业
限制150内