FPGA作业二

这篇博客详细介绍了FPGA作业中的Verilog设计,包括使用左移运算符和case语句实现的4-16译码器,以及12位和20位计数器的设计。在设计中,讨论了竞争冒险现象导致的毛刺问题,并概述了往复计数器的状态机实现。
摘要由CSDN通过智能技术生成

FPGA作业二


一 Verilog设计作业1中功能电路

1 4-16译码器

使用两种方法实现3-8译码器。一种参考夏宇闻 《verilog数字系统设计教程》的译码器写法,使用了左移运算符,另一种使用case语句

1.1使用左移运算符完成4-16译码器
1.1.1代码
module decoder_v(
input [3:0] data_in,
output reg [15:0]data_out
);
always @(data_in)
begin data_out=1'b1<<data_in; end
endmodule
1.1.2RTL电路

如图可看出,使用左移运算符将1’b1向左移动data_in位,用data_out输出。输出为高电平。
这里写图片描述

1.1.3vwf波形

data_in和data_out没有同时改变;由于竞争冒险现象的存在,有毛刺产生这里写图片描述

1.2使用case语句完成4-16译码器
1.2.1代码
module decoder(
input [3:0] data_in,
output reg [15:0]data_out
);

always @(data_in)
begin
    case(data_in)
    4'b0000:begin data_out=16'b0000_0000_0000_0001; end
    4'b0001:begin data_out=16'b0000_0000_0000_0010; end
    4'b0010:begin data_out=16'b0000_0000_0000_0100; end
    4'b0011:begin data_out=16'b0000_0000_0000_1000; end
    4'b0100:begin data_out=
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值