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=