图表 27
2.4 实验结果分析
1.调用modelsim的仿真结果如下
图表 28
结果分析:由于本实验在区域六选择的是6分频,clkfx也是六分频,无位相移动因此可以从波形很直观的看出实验结果。即clkfx和clkdv都是六分频和clkin是同相位的
21
2.为了得到其他的频率输出可以对DCM参数进行修改,如将clkdv改成3分频后的仿真波形。可以看到clkdv输出变成了3分频,而clkfx不做改变
图表 29
3.将clk180选中,将clkfx180选中,两者都是六分频,仿真波形如图所示,从图形可以看出实验结果与预期的相符合。Clkfx180和clk180与clkfx和clkdv是反相关系。
图表 30
4. 实验心得和体会:通过本次实验操作,初步了解了利用DCM产生我们所需要的波形的
基本流程,也对DCM产生波形的利用有了更进一步的了解。为下下一步的进一步深入
22
学习起到一个好的开始。
5. 实验过程中存在的问题和解决方法
1) 无法在ise 里面调用modelsim进行仿真:可能是没有编译xilinx库文件,或者编译后并
没有在modelsim中进行添加。若还是不行,先进行常规仿真,看是否有软件有问题,有问题进行再次重装。
2) 修改了DCM参数后为何仿真波形没有改变:首先确认是否是将生成的dcm_test.v拷贝
至工程目录再添加,还是直接从dcm 工程里面的文件添加到ise工程文件中,拷贝的需要再次拷贝更新后的文件到工程中再添加,若是后者只要更新工程即可,若更改了输入输出需要对测试文件重新关联。
3) 如何更直观的去查看自己写出来的代码综合后的电路图:ise提供了可观察综合后的RTL
级电路结构和门级的电路结构原理图,可以让设计人员通过更直观的的原理图来观察自己所写代码的原理图,这样更能加深对硬件描述语言的了解。
23
实验三 按键检测实验
3.1 实验目的
1.学会鉴别信号的上升沿和下降沿,熟练掌握信号的检测。
2.学会按键检测原理,熟练掌握按键信号的检测,掌握和理解按键抖动对信号检测的影响。
3.2 实验原理
3.2.1 信号检测原理 信号的采集就是对信号的上升沿和下降沿进行采集,上图是一个信号enable,它变为高电平几个周期后再变为低电平。首先对信号的enable进行一拍时钟采样,也就是一个时钟周期的延迟,经过处理后的信号enably_dly是enable的一个延迟一个时钟周期后的信号,如图所示。
图表 31
3.2.2 键盘检测原理 按键检测原理是:当按键按下时,输入电平由高变低,按键松开后,输入电平有低变高,如此会产生一个下降沿和一个上升沿,只要扑捉到这两个沿,就可以确定按键按下。 3.2.3 键盘防抖原理 在按键被按下的瞬间,由于物理上的原因,导致按键在被按键的瞬间的过程中其实是处于高电平和低电平之间进行抖动,加上本实验的时钟频率很高,容易产生信号采集错误,导致检测失败,无法得到正确的结果。若要正确防抖,需要在检测到按键上升沿后延迟一小段信号在进行上升沿和下降沿检测。
3.3 实验步骤
1.建立ise 工程,建立按键检测文件和测试文件如图所示:
24
图表 32
键盘检测程序如下:
module key_scan(clk,reset_n,key,led); input clk; input reset_n; input key; output led;
reg key_dly; reg key_dly1;
reg key_pose_flag; reg key_nege_flag; reg key_pulse; reg led;
always @(negedge reset_n or posedge clk) begin
if(reset_n==1'b0) key_dly<=1'b0; else
key_dly<=key; end
always @(negedge reset_n or posedge clk) begin
if(reset_n==1'b0) key_dly1<=1'b0; else
key_dly1<=key_dly; end
always @(negedge reset_n or posedge clk) begin
if(reset_n==1'b0)
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库(ISE使用流程)逻辑设计实验(5)在线全文阅读。
相关推荐: