完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
module jishuqi(clk_1khz,reset,pause,MH,ML,SH,SL,MSH,MSL);//计数模块 input clk_1khz,reset,pause; output reg [3:0]MH; output reg [3:0]ML; output reg [3:0]SL; output reg [3:0]SH; output reg [3:0]MSL; output reg [3:0]MSH; reg clk_100hz_r; reg [2:0]cnt_clk; reg cnt_ms;//MSÏòS½øλ reg cnt_s;//SÏòM½øλ always@(posedge clk_1khz or negedge reset) begin if(!reset) begin cnt_clk<=1'b0; clk_100hz_r<=1'b0; end else begin if(cnt_clk<=3'd5) begin cnt_clk<=1'b0; clk_100hz_r<=~clk_100hz_r; end else cnt_clk<=cnt_clk+1'b1; end end always@(posedge clk_100hz_r or negedge reset) begin if(!reset) begin MSL<=4'd0; MSH<=4'd0; cnt_ms<=1'b0; end else begin if(!pause) begin if(MSL==9) begin MSL<=4'd0; if(MSH==9) begin MSH<=4'd0; cnt_ms<=1'b1; end else begin MSH<=MSH+1'b1; cnt_ms<=1'b0; end end else begin MSL<=MSL+1'b1; cnt_ms<=1'b0; end end end end always@(posedge cnt_ms or negedge reset) begin if(!reset) begin SL<=4'd0; SH<=4'd0; cnt_s<=1'b0; end else begin if(!pause) begin if(SL==9) begin SL<=4'd0; if(SH==5) begin cnt_s<=1'b1; SH<=4'd0; end else begin cnt_s<=1'b0; SH<=SH+1'b1; end end else begin SL<=SL+1'b1; cnt_s<=1'b0; end end end end always@(posedge cnt_s or negedge reset) begin if(!reset) begin ML<=4'd0; MH<=4'd0; end else begin if(!pause) begin if(ML==9) begin ML<=4'd0; if(MH==5) begin MH<=4'd0; end else MH<=MH+1'b1; end else begin ML<=ML+1'b1; end end end end endmodule ........................................................................................................................................................................................... module segscan(clk_1khz,reset,MSL,MSH,SL,SH,ML,MH,sel,data,dp); input clk_1khz,reset; input [3:0]MSL;//?????? input [3:0]MSH;//?????? input [3:0]SL;//??? input [3:0]SH;//??? input [3:0]ML;//??? input [3:0]MH;//??? output reg [3:0]data;//????????????? output reg [5:0]sel;//???? output reg dp; reg [2:0]cnt; reg [3:0]MSL_reg; reg [3:0]MSL_r; reg [3:0]MSH_reg; reg [3:0]MSH_r; reg [3:0]SL_reg; reg [3:0]SL_r; reg [3:0]SH_reg; reg [3:0]SH_r; reg [3:0]ML_reg; reg [3:0]ML_r; reg [3:0]MH_reg; reg [3:0]MH_r; always@(posedge clk_1khz or negedge reset) begin if(!reset) begin MSL_r<=4'd0; MSH_r<=4'd0; SL_r<=4'd0; SH_r<=4'd0; ML_r<=4'd0; MH_r<=4'd0; end else begin MSL_r<=MSL; MSH_r<=MSH; SL_r<=SL; SH_r<=SH; ML_r<=ML; MH_r<=MH; MSL_reg<=MSL_r; MSH_reg<=MSH_r; SL_reg<=SL_r; SH_reg<=SH_r; ML_reg<=ML_r; MH_reg<=MH_r; end end always@(posedge clk_1khz or negedge reset) begin if(!reset) cnt<=4'd0; else cnt<=cnt+1'b1; end always@(posedge clk_1khz) begin case(cnt) 3'b000:sel<=6'b111111; 3'b001:sel<=6'b011111; 3'b010:sel<=6'b101111; 3'b011:sel<=6'b110111; 3'b100:sel<=6'b111011; 3'b101:sel<=6'b111101; 3'b111:sel<=6'b111110; default:sel<=6'b111111; endcase end always@(posedge clk_1khz) begin case(sel) 6'b111110:begin dp<=1'b1;end 6'b111101:begin dp<=1'b1;end 6'b111011:begin dp<=1'b1;end 6'b110111:begin dp<=1'b0;end 6'b101111:begin dp<=1'b1;end 6'b011111:begin dp<=1'b1;end default:begin dp<=1'b1;end endcase end always@(posedge clk_1khz) begin case(sel) 3'b111:begin data<=MH_reg;end 3'b101:begin data<=ML_reg;end 3'b100:begin data<=SH_reg;end 3'b011:begin data<=SL_reg;end 3'b010:begin data<=MSH_reg;end 3'b001:begin data<=MSL_reg;end 3'b000:begin data<=4'd0;end default:begin data<=4'd0;end endcase end endmodule ........................................................................................................................................................................................ 补充内容 (2017-11-21 20:19): module shuzipaobiao_top (clk_in,rst,sw_onoff,sel,decout,dp); input clk_in,rst,sw_onoff; output wire[6:0]decout;//7位段选数码管 output wire[5:0]sel;//位选 output wire dp; paobiao_fenpin fp(.clk_in(clk_in),.rst(rst),.clk_1khz(clk_1khz)); xiaodou xiao(.clk_1khz(clk_1khz),.rst(rst),.sw_onoff(sw_onoff),.reset(reset),.on_off(on_off)); jishuqi jishu(.clk_1khz(clk_1khz),.reset(reset),.pause(pause),.MH(MH),.ML(ML),.SH(SH),.SL(SL),.MSH(MSH),.MSL(MSL)); control_cnt cntrol(.clk_1khz(clk_1khz),.reset(reset),.on_off(on_off),.pause(pause)); segscan scan_tb(.clk_1khz(clk_1khz),.reset(reset),.MH(MH),.ML(ML),.SH(SH),.SL(SL),.MSH(MSH),.MSL(MSL),.sel(sel),.dp(dp),.data(data)); 顶层模块: decode4_7 decode(.clk_1khz(clk_1khz),.reset(reset),.data(data),.decout(decout)); endmodule |
|
相关推荐
13个回答
|
|
全连上就不会有3NC的提示了,你再看看你的顶层文件,我们用的是VHDL,所以不太懂那个verilog语言的顶层怎么写,你再看看其他人的顶层文件吧。
最佳答案
|
|
|
|
你的顶层模块呢?看看顶层模块的调用是不是有问题。
|
|
|
|
是前仿真还是后仿真呢
|
|
|
|
|
|
|
|
|
|
|
|
你可以看看你的RTL图。
|
|
|
|
|
|
|
|
RTL模块电路图 |
|
|
|
非常感谢,我这个是顶层里面没有对模块的连线定义导致的,已经解决了。但是我还有个疑问,就是为什么像clk,reset等1位的数据不定义就可以呢,而这个4位信号没有定义就出现了这个3NC,难道是不定义就默认为一位数据吗? |
|
|
|
非常感谢,我这个是顶层里面没有对模块的连线定义导致的,已经解决了。但是我还有个疑问,就是为什么像clk,reset等1位的数据不定义就可以呢,而这个4位信号没有定义就出现了这个3NC,难道是不定义就默认为一位数据吗? |
|
|
|
非常感谢,我这个是顶层里面没有对模块的连线定义导致的,已经解决了。但是我还有个疑问,就是为什么像clk,reset等1位的数据不定义就可以呢,而这个4位信号没有定义就出现了这个3NC,难道是不定义就默认为一位数据吗? |
|
|
|
非常感谢,我这个是顶层里面没有对模块的连线定义导致的,已经解决了。但是我还有个疑问,就是为什么像clk,reset等1位的数据不定义就可以呢,而这个4位信号没有定义就出现了这个3NC,难道是不定义就默认为一位数据吗? |
|
|
|
无影000 发表于 2017-11-23 21:30 这个就看编译器或者是Verilog的语法规定了。编程要有规范的,有了规范就可以规避这类的错误了! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1287 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1036 浏览 0 评论
2359 浏览 1 评论
2067 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2325 浏览 0 评论
1855 浏览 49 评论
6003 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 19:14 , Processed in 0.829556 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号