约翰逊计数器实验报告

约翰逊计数器实验报告

ID:12494675

大小:10.21 MB

页数:6页

时间:2018-07-17

约翰逊计数器实验报告_第1页
约翰逊计数器实验报告_第2页
约翰逊计数器实验报告_第3页
约翰逊计数器实验报告_第4页
约翰逊计数器实验报告_第5页
资源描述:

《约翰逊计数器实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、约翰逊计数器的设计功能描述:运用约翰逊计数器的计数特点,编写一个verilog程序从初始值0000_0000开始,八位的二进制数每次只改变最后一位,而实现的计数。一、设计方案:如下图所示的顶层文件设计图,该计数器的输入端有clk(时钟控制端),reset(使能控制端)。输出out是一个八位的二进制数用来计数。通过了解约翰逊计数器的计数规则,当 reset是高电平是计数器不工作, reset低电平时计数器有效并开始工作。当时钟clk每来一次上升沿时计数一次初始时:out=0000_0000;计数一次后:out=0000_0001;计数两次后:

2、out=0000_0011;计数三次后:out=0000_0111;......相当于每一次只需将前7位向左移(即 out[7:1]<=out[6:0];  )然后将最高位的值取反后给最低位(即 out[0]=~out[7];  )就可以完成实现的要求。用 always 语句将以上思路整合在一起,并使用if_else语句判断 reset是否为高电平,若为高电平可以直接将out赋值为0,若为低电平再将执行上述的移位赋值操作。这样就可以写出约翰逊计数器的代码。但由于在FPGA开发板上的始终频率过快,需要引入一个中间分频变量b和一个24位的c,定

3、义c的最高位的值赋给b,当时钟clk上升一次给c加1,直到加入最高位为1时,b才变化一次,把此时的b作为时钟来控制计数器闪动的频率即可。一、验证方案:使用Modelsim做前仿真,写出对应的测试文件。定义测试文件的输入为reset和clk,,输出八位二进制数out(对应到源文件里的out)采用函数调用将测试文件中的reset和源文件里的reset关联,clk和源文件clk关联,out和out关联起来使用。再用initial语句给数据赋值。对于时钟clk让它每过10个时钟周期翻转一次即计数一次。因为  reset为低电平有效,需要给  res

4、et赋值为0方可完成计数。如果仿真结果运行正确,再利用ISE软件将源文件下载到FPGA的开发板上,写出管教分配的ucf文件,输入reset的用一个开关表示,输出结果out可以用8个led灯来表示,时钟clk则用开发板上的时钟来控制,拨动reset的开关使之为低电平时计数器将自动按照约翰逊的方式计数,灯亮表示1,灭表示为0,灯每变化一次就计数一次,即可表示计数的输出结果。开发板型号:Spartan3E-XC3S100E-CP132-(-4)[如下图所示]管脚分配的ucf文件:四、设计代码://源文件module count(reset,clk

5、,out);    input reset,clk;     output out;     reg [7:0] out;    reg[23:0]c;regb; always @(posedge clk)  begin if(reset)    c<=0;elsebeginc<=c+1’b1;b=c[23];endend always @(posedge b)     begin     if(reset)        out<=8'b0;     else        begin  out[0]<=~out[7];   out[7:

6、1]<=out[6:0];      end     end endmodule //激励文件 module sti;  reg clk,reset;  wire [7:0] out;count test(reset,clk,out);     initial     clk<=8'b0;     always        #10 clk<=~clk;     initial        begin            reset<=1;        #50 reset<=0;       end Endmodule四、仿真结果分析

7、(1)逻辑仿真结果:由仿真波形可知reset为0时开始计数,每当时钟出现一次上升沿时,就计数一次,并且满足约翰逊计数的规则,证明逻辑前仿真成功。(1)逻辑仿真结果:N3的开关控制reset,clk由B8的总时钟控制(但真实看到的频率是中间变量b的上升沿所致),输出的8位二进制数用8个灯来表示。有以下几张图为证:时钟第一次到来M5(灯亮了),其余灭。时钟第二次到来M5和M11(灯亮了),其余灭。时钟第三次到来M5,M11和P7(灯亮了),其余灭。时钟第四次到来M5,M11,P7,P6(灯亮了),其余灭。以此类推,可知下载到开发板程序正确。

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

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

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