module counter_24 ( input clk, input rst, input cnt_in ,output reg cnt_out )
reg [4:0] cnt
always @ (posedge clk or posedge rst_n) begin
if (rst) cnt <= 5'b0
else if (~cnt_in) cnt <= cnt
else if (cnt == 5'b10110) cnt <= 5'b0
else cnt <= cnt + 1'b1
end
always @ (posedge clk or posedge rst) begin
if (rst) cnt_out <= 1'b0
else if (cnt_in &&cnt == 5'b10110) cnt_out <= 1'b1
else cnt_out <= 1'b0
end
endmodule
input add//为1时加 *** 作
input dec//为1时减 *** 作
output [5:0] counter
reg [5:0] counter
always @(add and dec) begin
if(add &&!dec) begin
if(counter == 6'd38) begin
counter <= 6'd0
扩展资料:
有一种记数系统便是24进制的,其中1~24有专门的符号来表示,大于24的数便可以像24进制那样写成多位数,如tokaputokapuŋgayepoko代表24进制中的P0(552)。malapu talusupuŋga talu代表24进制中的H2G(9856)。
为了避免混淆1和I,0和O,故跳过字母I、O,18~~23分别计作J、K、L、M、N、P。比如:16计作G、22计作N。
等于或大于24的数字计作:24→10、25→11、26→12??25→11中标粗体的1代表24。同一个数字在不同的位置代表的值是不一样的。
参考资料来源:百度百科-二十四进制
module shift(in,
clk,
en,
clr,
set,
out
)
input [7:0]in//input data
input clk//input clock
input en //input enable high enable
input clr//input clear low enable
input [2:0]set//input set :set num of shift bit
output [7:0]out
always@(posedge clk or negedge clr) begin: shift_reg
if(!clr) //asychro reset_n low enable
out <= 8'b0
else if(en) begin //enable signal
case(set[2:0])
3'b0: out <= in[7:0]//no shift
3'b1: out <= {in[0],in[7:1]}//shift 1bit
3'd2: out <= {in[1:0],in[7:2]//shift 2bit
... ...
//中间这段自己写,要是不会我就撞墙了
default: out <= in[7:0]
endcase
end
end
module CNT10 (CLK, RST, EN, CQ, COUT)input CLK,RST,EN
output[3:0] CQ
output COUT
reg[3:0] CQ,CQI
reg COUT
always @(posedge CLK)//检测时钟上升沿
begin : u1
if (RST == 1'b1)//计数器复位
begin
CQI={4{1'b0}}
end
begin
if(EN==1'b1)//检测是否允许计数
begin
if (CQI<9)
begin
CQI=CQI+1//允许计数
end
else
begin
CQI={4{1'b0}}//大于9,计数值清零
end
end
end
if (CQI==9)
begin
COUT<=1'b1 //计数大于9,输出进位信号
end
else
begin
COUT<=1'b0
end
CQ<=CQI //将计数值向端口输出
end
endmodule
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)