pld与数字系统设计实验 旋钮开关new

pld与数字系统设计实验 旋钮开关new

ID:20220492

大小:103.73 KB

页数:7页

时间:2018-10-11

pld与数字系统设计实验 旋钮开关new_第1页
pld与数字系统设计实验 旋钮开关new_第2页
pld与数字系统设计实验 旋钮开关new_第3页
pld与数字系统设计实验 旋钮开关new_第4页
pld与数字系统设计实验 旋钮开关new_第5页
资源描述:

《pld与数字系统设计实验 旋钮开关new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、PLD与数字系统设计实验报告实验二(B组):旋转开关一实验要求:利用Spartan-3StarterBoard实验板上的旋转开关,设计一个通过旋转开关的方向来控制LED灯的依次点亮顺序的实验,并且要求可以循环点亮。二实验原理及算法分析本次实验总体上来讲可以分为两大部分来思考:第一部分为由旋转旋钮的方向决定LED灯点亮的顺序,使实现旋钮向右旋转时LED灯向右点亮,旋钮向左旋转时LED灯向左点亮,这部分的关键在于如何根据电路板的引脚输入判断旋钮旋转的方向;第二部分为通过旋转旋钮构建时钟来实现旋钮旋转一格时可循环地

2、依次点亮一个LED灯,关键在于如何构建实验所需要的时钟。1°旋钮方向下面这幅图取自《XilinxUG230Spartan-3EStarterKitBoardUserGuide》,是Spartan-3电路板上的旋钮的编码电路图:上页图所示的是旋钮旋转中A、B两个引脚的一个状态,实际中旋钮旋转一格使A和B与GND导通的开关(分别记为K1、K2)的状态变化(K1、K2)分别为:向右旋转时:(断开,断开)(闭合,断开)(闭合,闭合)(断开,闭合)(断开,断开)向左旋转时:(断开,断开)(断开,闭合)(闭合,闭合)(闭

3、合,断开)(断开,断开)根据用户手册中A、B两个引脚的UCF文件所述:“NET"ROT_A"LOC="K18"

4、IOSTANDARD=LVTTL

5、PULLUP;NET"ROT_B"LOC="G18"

6、IOSTANDARD=LVTTL

7、PULLUP;”Vcco接高电平,当K1断开时,A输出为高电平,即输出为“1”;当K1闭合时,A输出为低电平,即输出为“0”。对B同理可得出相同结果。可得到旋钮旋转一格(A,B)状态的变化如下:向右旋转时:(1,1)(0,1)(0,0)(0,1)(1,1)向左旋转是:(1,1)(

8、1,0)(0,0)(0,1)(1,1)因此可以根据A、B两个引脚输入值的变化来判断旋钮的旋转方向,主要依据的状态为状态2和状态4。下图为用户手册中的关于旋钮向右旋转时的A、B引脚的电平变化时序图,仅供参考(注:实际中经过实验测试A、B两个引脚的初始态应该是高电平、高电平):由上图可以看出,引脚电平变化时会出现抖动现象(实际上按键抖动是机械按键和旋钮的普遍现象)。实验中所用电板的时钟频率为50MHz,须使用分频降低频率获得新的更大周期的时钟来避免受到抖动的影响。2°可循环地依次点亮LED灯为了得到可通过旋转旋钮

9、构建可实现旋钮旋转一格时可循环地依次点亮一个LED灯的按钮的时钟CLK,可以令下一个LED灯亮的动作发生在CLK的上升沿,由1°中的分析可知,旋钮旋转一格总共经历五个状态,可以设置CLK初始状态为“1”,当得到前三个状态时,改变CLK状态为“0”,当到达第四个状态时就可以对点亮LED灯的方向做出判断,当到达某一格的第五个状态(也可以看成是下一个的第一个状态)时,改变CLK状态为“1”,这就得到了旋转一格控制LED点亮的时钟过一个周期的效果。根据用户手册中LED灯的UCF文件所述:NET"LED<7>"LOC=

10、"F9"

11、IOSTANDARD=LVTTL

12、SLEW=SLOW

13、DRIVE=8;LED驱动强度为“8”,为高电平点亮。所以对LED灯可循环地依次点亮的实现,可以通过控制8个LED灯的电平来实现,这个比较简单,代码实现见实验报告“三实验算法及核心代码实现”。三实验算法及核心代码实现1°分频CLK介于分频在实际应用中的重要性,在此给出本次实验中用到的分频实现代码:inputclk;integeri;regCLK;parametercount=10_0000;always@(posedgeclk)beginif(i

14、==count)begini=0;CLK=~CLK;endelsei=i+1;endclk为电路板的50MHz时钟,上面的代码很好的实现了50M/(50M/count)Hz频率的时钟。通过合理调节CLK频率即可有效避免抖动的影响,如上,实验所用count=10_0000。2°旋钮方向判断及得到依次点亮LED灯的时钟clk0以{fir,sec}记录AB第二个和第四个状态的值,据此作出判断依据,这里在clk0从“0”变到“1”放在第三个状态而不放在第四个状态可以避免order和clk0上升沿发生竞争:always

15、@(posedgeCLK)begincase({ab,fir,sec})//第一种情况,向右旋转6'b11_00_00:clk0=1;6'b01_00_00:fir=2'b01;6'b00_01_00:clk0=0;6'b10_01_00:beginsec=2'b10;order=2'b01;//LED灯向右点亮end6'b11_01_10:beginfir=2'b00;sec=2'b00;clk0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。