Verilog的135个经典设计实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Verilog的135个经典设计实例
1、立即数放大器:立即数放大器是一种用于将输入电平放大到更高电平的电路,它可以实现任意输入到输出的映射,并且可以在Verilog中使用。立即数放大器的Verilog实现如下:
module immedamp(in, out);
input in;
output out;
reg [3:0] immed;
assign out = immed[3];
begin
case (in)
4'b0000: immed = 4'b1000;
4'b0001: immed = 4'b1001;
4'b0010: immed = 4'b1010;
4'b0011: immed = 4'b1011;
4'b0100: immed = 4'b1100;
4'b0101: immed = 4'b1101;
4'b0110: immed = 4'b1110;
4'b0111: immed = 4'b1111;
4'b1000: immed = 4'b1000;
4'b1001: immed = 4'b1001;
4'b1010: immed = 4'b1010;
4'b1011: immed = 4'b1011;
4'b1100: immed = 4'b1100;
4'b1101: immed = 4'b1101;
4'b1110: immed = 4'b1110;
4'b1111: immed = 4'b1111;
endcase
end
endmodule
2、多路复用器:多路复用器是一种用于将多个输入选择转换为单个输出的电路,它可以实现由多种方式选择的输出,并可以使用Verilog实现。多路复用器的Verilog实现如下:
module multiplexer ( sel, d1, d2, d3, d4, q);
input [1:0] sel;
input d1, d2, d3, d4;
output q;
reg q;
begin
case (sel)
2'b00:q=d1;
2'b01:q=d2;
2'b10:q=d3;
2'b11:q=d4;
endcase
end
endmodule
3、压缩器:压缩器是一种用于将较大的数据字缩小的电路,它可以实现由较大的数据字放大到较小的数据字的映射,并可以使用Verilog实现。
input a,b,c,d,e,f,g,h;
output out1,out2;
reg [3:0] temp;
assign out1 = temp[3];
assign out2 = temp[2:0];
begin
case ({a,b,c,d,e,f,g,h})