文档库 最新最全的文档下载
当前位置:文档库 › 数控分频verilog

数控分频verilog

数控分频verilog
数控分频verilog

EDA实验报告

数控分频器

实验目的

1.掌握数控分频器的工作原理并能够用virlog语言编写代码,熟悉EDA6000实验箱的

使用方法。

2.进一步熟悉quartusII建立程序编译、仿真及下载的操作流程并学会数控分频器的

V erilog硬件设计

实验步骤

1.新建V erilog工程,编写代码并保存至与模块名对应的文件夹。注意:项目应存为系

统盘以外的盘内,路径中不含中文字符。

2.编译程序,编译无误后,在【tools】里面选择RTL视,观察电路结构。

3.新建波形文件进行仿真。保存时要和源程序存放在同一目录下。设置好输入波形参数

后,开始仿真。在仿真后输入输出波形中观察逻辑关系是否正确。

4.将实验箱和PC合理连接起来。打开EDA6000软件,设置好芯片类型为ACEX1K

(EP1K30TC144-3),载入模式9.

5.根据EDA6000界面内管脚对应芯片的实际管脚在QUARTUSII里面设定

管脚号并检查无误。

6.将程序下载至FPGA内,并在EDA6000软件界面内进行验证测试。

程序代码1

/////偶数分频占空比50%,奇数分频没做要求//////////

module divider(clk,data,fout); //数控分频器

input clk; //时钟输入

input[7:0]data; //预置数控分频数(对应的十进制数)

output fout; //分频输出

reg [7:0]m;

reg cout1;

always @(posedge clk)

begin

if(m==data-1)begin m<=0;cout1=~cout1;end

else m<=m+1;

if(m==(data-1)/2)begin cout1=~cout1;end

else begin cout1<=cout1;end

end

assign fout=cout1;

endmodule

/////奇数分频占空比50%//////////////////////////////////// ////////// module divider1(clk,data,fout,cout1,cout2); //数控分频器input clk; //时钟输入input[7:0]data; //预置分频数output fout,cout1,cout2; //分频输出reg [7:0]m,n;

reg cout1,cout2;

wire fout;

assign fout=cout1|cout2;

always @(posedge clk)

begin

if(m==data-1)begin m<=0;cout1=~cout1;end

else m<=m+1;

if(m==(data-1)/2)begin cout1=~cout1;end

else begin cout1<=cout1;end

end

always @(negedge clk)

begin

if(n==data-1)begin n<=0;cout2=~cout2;end

else n<=n+1;

if(n==(data-1)/2)begin cout2=~cout2;end

else begin cout2<=cout2;end

end

endmodule编译结果1

相关文档