我是靠谱客的博主 鲜艳黑猫,这篇文章主要介绍【verilog_9】: 设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位2.设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位,现在分享给大家,希望可以做个参考。
2.设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位
法一
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38author : Mr.Mao e-mail : 2458682080@qq.com module CNT_16B2(rst_a, en_s, load_s, clr_s, clk, q, cnt, data) ; input rst_a, en_s, load_s, clr_s, clk ; input [0:15] data ; output reg [0:15] cnt ; //2^16 = 65536 output reg q ; always@(posedge clk or negedge rst_a) begin if(!rst_a) cnt <= 0 ; else if(en_s) begin if(load_s) cnt <= data ; else if(clr_s) cnt <= 0 ; else if(cnt < 65536) cnt <= cnt + 1 ; else cnt <= cnt ; end end always@(posedge clk) begin if(cnt == 65535) q <= 1'b1 ; else q <= 1'b0 ; end endmodule
法二
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37author : Mr.Mao e-mail : 2458682080@qq.com module cntx ( input clk, input reset, input [5:0] d, input en, input load, input sclr, input sset, output reg[15:0] q, output cout ); always @(posedge clk,posedge reset) if(reset) q <= 0; else if(sclr) q <= 0; else if(sset) q <= -1; else if(load) q <= d; else if(en) q <= q + 1'b1; assign cout = (q==60-1); endmodule
最后
以上就是鲜艳黑猫最近收集整理的关于【verilog_9】: 设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位2.设计16位二进制计数器,带异步复位、同步使能、同步装载、同步清零、同步置位的全部内容,更多相关【verilog_9】:内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复