Veirlog 学习记录(1) ,十(多)进制可加计数器的实现
【Veirlog 学习记录(1) ,十(多)进制可加计数器的实现】最近在学校上FPGA这门课,课上做了一些小实验,现在记录一下。
我用的软件是vivado2015.4
代码如下:
module M10_counter(
input EN,//使能端
input CP, //时钟
input Rd, //清零
output reg Cout, //进位
output reg [3:0] Q //输出
);
always @ (posedge CP,negedge Rd)
if(~Rd) Q<=4'b0000;
//异步清零
else if(EN) begin
if(Q<4'b1001) Q<=Q+1'b1;
//加计数
else Q<=4'b0000;
end
else Q<=Q;
always @ (Q)
if(Q==4'b1001) Cout =1;
//进位
else Cout=0;
endmodule
测试文件:
module M10_counter_tb();
reg EN,CP,Rd;
wire Cout;
wire [3:0] Q;
M10_counter test(.EN(EN),
.CP(CP),
.Rd(Rd),
.Cout(Cout),
.Q(Q));
initial fork
CP=0;
EN=1;
#20 EN=0;
#50 EN=1;
Rd=0;
#30 Rd=1;
join
always #8 CP=~CP;
endmodule
仿真图:
文章图片
同理可以改成任意进制,或者是可以改成减计数。
我也写了几篇关于Veirlog的文章,感兴趣的同学可以去看看。该模块链接如下:
https://blog.csdn.net/weixin_43877139/article/category/8778400
希望会对你有所启发。
推荐阅读
- 20170612时间和注意力开销记录
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)