数电课程设计可变模计数器,模为4、8、12、16。在控制信号的控制下实现变模计数

如题所述

第1个回答  2011-12-30
module counter(clk,rst,out);
input clk,rst;
output out;
reg [3:0]k;
reg [3:0]n;//控制变模
reg [3:0]m;//模系数
always@(posedge clk or negedge rst)
if(!rst)
begin
n<=4'b0000;
m<=4'b0000;
k<=4'b0000;
end
else if(k==m)//当k等于模系数(3.7.11.15)时将k置成0
begin
k<=4'b0000;
end
else
begin
k<=k+1'b1;
end

always@(posedge clk or negedge rst)
if(!rst)
begin
m<=4'b0000
n<=4'b0000;
k<=4'b0000;
end
else
case(n)
4'b0001:m=4'b0011;
4'b0010:m=4'b0111;
4'b0100:m=4'b1011;
4'b1000:m=4'b1111;
endcase
endmodule追问

额 谢谢 但是因为是课程设计报告 你能稍微的详细点么…… 要是有个原理图 仿真图什么的更好

追答

这个仿真可以自己做一下,用modelsim
再编写一个测试文件就可以看波形了。
你可以在延时10.20.30.40的时候将输入n置成0001,0010,0100,1000.然后看k的变化。

本回答被提问者采纳
相似回答