FPGA实验8位数码显示频率计设计Word文档格式.docx

上传人:b****1 文档编号:4207917 上传时间:2023-05-02 格式:DOCX 页数:9 大小:149.99KB
下载 相关 举报
FPGA实验8位数码显示频率计设计Word文档格式.docx_第1页
第1页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第2页
第2页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第3页
第3页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第4页
第4页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第5页
第5页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第6页
第6页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第7页
第7页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第8页
第8页 / 共9页
FPGA实验8位数码显示频率计设计Word文档格式.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

FPGA实验8位数码显示频率计设计Word文档格式.docx

《FPGA实验8位数码显示频率计设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《FPGA实验8位数码显示频率计设计Word文档格式.docx(9页珍藏版)》请在冰点文库上搜索。

FPGA实验8位数码显示频率计设计Word文档格式.docx

1秒计数结束后,计数值被锁入锁存器,计数器清零,为下一测频计数周期作好准备。

实验步骤:

i设]十生成1秒时钟信号“CLK

2•设计测频控制信号发生器一

3■设#1秒计磁值锁存器--

4•设计32位一进制计数器一彳设计十六进制7段译码器一

FTCTRL;

REG32B;

COUNTER32BDecoder

6■设计生成lKHz或lOKHz待测信号一Fin7•気成频率计设计、仿真和妓件实现.

频率计电路框图

 

频率计测频控制器FTCTRL测控时序图

实验目的:

实验原理及内容:

测定信号的频率必须有一个脉宽为1秒的输入信号脉冲计

数允许的信号;

1秒计数结束后,计数值被锁入锁存器,计数器清零,

为下一测频计数周期作好准备。

CLK

REG32B;

COUNTER32B

Decoder

1•设计生成1秒时钟信号--

2•设计测频控制信号发生器--

3•设计1秒计数值锁存器--

4•设计32位二进制计数器--

5•设计十六进制7段译码器--

6•设计生成1KHz或10KHz待测信号--Fin

7•完成频率计设计、仿真和硬件实现。

实验程序:

modulefrequenee(

rst,

inputoutputreg[31:

0]freq_out//频率输出

);

reg[31:

0]cnt1,num;

//cnt1,分频作用,产生脉宽一秒基准时钟//

num,用来计算1s内待测信号所发出的脉冲数用来计数

/****产生占空比为50%,周期为2s的单位脉冲sec****/

always@(posedgeclk)

begin

if(cnt仁=50_000_000)//50000000分频,产生脉宽1s脉宽基准时

钟(要基准时钟为50M)

cnt1<

=0;

sec<

=~sec;

end

else

=cnt1+1;

/****统计待测信号在单位时间1s内产生的脉冲数****/

always@(posedgeCLK_X)

if(!

rst)

freq_out<

num<

state<

=1;

if(sec)//sec为高电平期间(1s),统计待测信号

产生的脉冲数

=num+1;

else//sec为低电平期间(1s),读取待测信号产生的脉冲数

case(state)

0:

beginfreq_out<

=num;

state<

end//读取脉冲数(由于freq为reg型,在下一次sec低电平到来之前,会一直保持当前值不变)

1:

num<

//将num清零,为下一个

sec高电平期间脉冲数的统计做准备//

endcase

//如果待测时钟频,比1秒脉宽的基准时钟还小,才会出现一只增数字的情况,即num未来的及清零

endendmodule

modulenewclk(clk,reset,clk_out);

inputclk,reset;

outputclk_out;

regclk_out;

reg[100:

0]count;

parameterN=5000;

//分频产生1KHZ脉的时钟

if(!

reset)

count<

=1'

b0;

clk_out<

if(count<

N/2-1)

=count+1'

b1;

endmodule

moduleshili(outputreg[6:

0]h1,

input[3:

0]c,

inputclk

=~clk_out;

always@(c)begin

case(c[3:

0])

4'

b0000:

h1<

='

b1000000;

b0001:

b1111001;

b0010:

b0100100;

b0011:

b0110000;

b0100:

b0011001;

b0101:

b0010010;

b0110:

b0000010;

b0111:

b1111000;

b1000:

b0000000;

b1001:

b0010000;

b1010:

b0001000;

b1011:

b0000011;

b1100:

b1000110;

b1101:

b0100001;

b1110:

b0000110;

b1111:

b0001110;

default:

h1<

//H必

moduletop_sevev(output[63:

0]H,须为wire行变量

input[31:

0]freq,inputclk

//八个

shiliseven_0(H[7:

0],freq[3:

0],clk);

七段数码管的模块的实例化

shiliseven_1(H[15:

8],freq[7:

4],clk);

shiliseven_2(H[23:

16],freq[11:

8],clk);

shiliseven_3(H[31:

24],freq[15:

12],clk);

shiliseven_4(H[39:

32],freq[19:

16],clk);

shiliseven_5(H[47:

40],freq[23:

20],clk);

shiliseven_6(H[55:

48],freq[27:

24],clk);

shiliseven_7(H[63:

56],freq[31:

28],clk);

endmodule

原理图:

实验结果:

1000Hz的测量结果

100000Hz的测量结果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2