基FPGA Cyclone II_EP2C5 EP2C8的频率计
基FPGA_Cyclone_II_EP2C5/EP2C8的频率计
功能描述:按4*4键盘上的1,2,3...号按键可依次测出
25000000Hz ,12500000Hz ....的分频信号并显示在8个数码管上.
本设计由以下四个模块组成.
freqtest.v -8位十进制频率计 (顶层模块)
KeyBoard.v -4*4键盘扫描模块 (选择不同的被测信号)
cnt10.v -十进制计数器模块 (测频计数)
scan_led.v -数码管动态扫描模块 (显示测量结果)
/* freqtest.v -8位十进制频率计*/
/* Copyright 2008-2018 */
/*
modification history
--------------------
01a,16jan08,52mcu 163haole@163.com
*/
/*
DESCRIPTION
Cyclone II EP2C5Q208C
*/
module freqtest(clock,freq_input,dig,seg,test,col,row,rstkey);
input clock; //系统时钟
inout freq_input; //被测信号时钟
output[2:0] dig; //数码管选择输出
output[7:0] seg; //数码管段输出引脚
output[9:0] test;//输出频率信号,用于测试
output [3:0] col ;
input [3:0] row ;
input rstkey ;
reg[25:0]counter; //时钟分频计数器
reg[31:0]freq_result; //频率测量结果寄存器
wire [31:0]pre_freq; //脉冲计数寄存器
reg rst;
wire divide_clk; //1Hz闸门信号
wire clk_scan; //数码管扫描时钟
wire cout1,cout2,cout3,cout4,cout5,cout6,cout7;
assign clk_scan = counter[15]; //动态扫描时钟
assign test = counter[9:0];//输出频率信号,用于测试
reg [31:0] Mega_cnt;
reg[3:0]key;
reg freq_input_r;
//时钟分频进程:分出1hz基准信号
always @(posedge clock)
begin
if(divide_clk)
counter<=26'd0;
else
counter<=counter+1'b1;
end
assign divide_clk=(counter>=26'd50000000);//
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !