求大神帮忙写个verilog HDL代码 设计一个具有异步清零功能的同步计数器

设计一个具有异步清零功能的同步计数器,要求计数器从1,2,3....计到12,1,2....不断循环。上电后计数器其初始状态为12,然后整计数从12,1,2....12,... 设计一个具有异步清零功能的同步计数器,要求计数器从1,2,3....计到12,1,2....不断循环。上电后计数器其初始状态为12,然后整计数从12,1,2....12,1不断循环,当有异步清零信号时,计数器被清零,在清零信号撤去后,从12开始计数。给出verilog HDL代码 展开
 我来答
kafe801
2013-07-23
知道答主
回答量:3
采纳率:0%
帮助的人:2.8万
展开全部

`timescale 1ns / 1ps

module top(

input clk,

input rst_n,

output reg [3:0] cnt

);

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

cnt<=0;

else  if(cnt==0)

cnt<=12;

else if(cnt>=12)

cnt<=1;

 else

cnt<=cnt+1;

end 

endmodule 

代码贴在这格式就乱了,不过比较简单,应该不会有阅读障碍,应该是符合你的要求的。附件上也上传了.v文件!

AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
一系列的门
2013-07-09 · TA获得超过194个赞
知道答主
回答量:72
采纳率:0%
帮助的人:42.7万
展开全部
module(clk, aclr,cunt);
output reg [3:0] cunt;
input clk;
input aclr;

initial begin cunt<= 4'hc; end; //初始状态设为12
always@(posedge clk or posedge aclr)//把清零信号rst列在这里面就代表异步清零
if(rst) cunt<= 4'hc;
else begin
if(cunt==4'hc) cunt<= 1;
else cunt<= cunt+ 1; end

endmodule
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等待嫁给_ing
2013-07-09 · TA获得超过128个赞
知道答主
回答量:49
采纳率:0%
帮助的人:36.7万
展开全部
module(clk, aclr,cnt);
output [3:0] cnt;
input clk;
input aclr;

reg [3:0] cnt;

always@(posedge clk or posedge aclr)
begin
if(aclr)
cnt[3:0] <= 4'hc;
else
begin
if(cnt[3:0] == 4'hc)
cnt[3:0] <= 4'h1;
else
cnt[3:0] <= cnt[3:0]+ 1'b1;
end
end
endmodule
追问
请问下 你这个和下面的答案 哪个比较好啊?
追答
上面的那位同学写错了一些,比如rst信号没有定义,代码不规范等,思想都是一样的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式