我要发布
仪器网/ 仪器社区/ 频率计/ 简易数字频率计 verilog语言设计

简易数字频率计 verilog语言设计

奢侈地走下去    2014-06-30    频率计    浏览 455 次

要求:1、设计一个数字频率计,闸门时间为1秒,Z高可测频率为100Mhz.
2、频率由8位数码管显示输出。

精彩问答
查水表的路过 发布日期:2014-07-01
假设 秒时间高电平为1秒钟。
参考代码如下,
module button( clk, rst, pp1s, disp);
input rst,clk;
input pp1s; //秒时钟基准
output reg [7:0] disp[8:0]; //9个10进制数码管显示。
reg reg [3:0] cnt[8:0]; //9个十进制。
always@(posedge clk_dut or negedge rst)
if(!rst)
begin cnt[0] <= 3'b0; cnt[1] <= 3'b0; ...... cnt[8] <= 3'b0; end
else if (!pp1s)
begin cnt[0] <= 3'b0; cnt[1] <= 3'b0; ...... cnt[8] <= 3'b0; end
else
begin
if (cnt[0] >= 4'h9) cnt[0] <= 4'b0; else cnt[0] <= cnt[0] + 1'b1;
if (cnt[0] >= 4'b9)
begin
if (cnt[1] >= 4'h9) cnt[1] <= 4'b0; else cnt[1] <= cnt[1] + 1'b1;
end
if (cnt[0] >= 4'b9 && cnt[1] >= 4'b9)
begin
if (cnt[2] >= 4'h9) cnt[2] <= 4'b0; else cnt[2] <= cnt[2] + 1'b1;
end
.....
if (cnt[0] >= 4'b9 && cnt[1] >= 4'b9 && cnt[2] >= 4'b9 && cnt[3] >= 4'b9 && cnt[4] >= 4'b9 && cnt[5] >= 4'b9 && cnt[6] >= 4'b9 && cnt[7] >= 4'b9)
begin
if (cnt[8] >= 4'h9) cnt[8] <= 4'b0; else cnt[8] <= cnt[8] + 1'b1;
end
end
//数码管编码
always@(*)
case (cnt[0])
4'h0 disp[0] = 0x3f;
4'h1 disp[0] = 0x06;
4'h2 disp[0] = 0x5b;
4'h3 disp[0] = 0x4f;
4'h4 disp[0] = 0x66;
4'h5 disp[0] = 0x6d;
4'h6 disp[0] = 0x7d;
4'h7 disp[0] = 0x07;
4'h8 disp[0] = 0x7f;
4'h9 disp[0] = 0x6f;
default:disp[0] = 0x3f;
endcase

always@(*)
case (cnt[8])
4'h0 disp[8] = 0x3f;
4'h1 disp[8] = 0x06;
4'h2 disp[8] = 0x5b;
4'h3 disp[8] = 0x4f;
4'h4 disp[8] = 0x66;
4'h5 disp[8] = 0x6d;
4'h6 disp[8] = 0x7d;
4'h7 disp[8] = 0x07;
4'h8 disp[8] = 0x7f;
4'h9 disp[8] = 0x6f;
default:disp[8] = 0x3f;
endcase
endmodule
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控