您的位置:首页 > 其它

【翻译】在Verilog设计中使用参数化模块库(Quartus II)(Verilog)

2010-05-17 17:28 393 查看
本文介绍如何在Quartus II里使用Altera的模块库。

Contents:

范例电路

参数化模块库

使用LPM的扩展电路(Arguemented Circuit)

扩展设计的结果

实际设计中经常包含通用的电路块,比如:加法器、减法器、乘法器、译码器、计数器和移位寄存器。Altera以模块库的

形式提供这些电路块,可在Verilog设计中例化。编译器可以识别模块库里用Verilog代码指定的标准功能,这样就会自动推断这个模块。但是,很多模块库提供太复杂的功能而不能被自动识别。这些模块必须被用户在设计里明确的例化。

Quartus II包含一个参数化的模块库(LPM)。这些模块采用通用结构,并且需要修该指定的参数值来实现指定的应用。

完成本文,读者将学会:

参数化的模块库(LPMs)

在电路里配置一个LPM

在设计电路里例化一个LPM

本文范例的细节由Quartus II 9.1截取,其他版本类似。

1. 范例电路

作为范例,我们使用图1所示的加/减器电路。它可以加、减,并以2的补码表示运算n-bit的数。2个主要的输入是数A=

an-1an-2…a0和B=bn-1bn-2…b0,主要的输出是Z=zn-1zn-2…z0。另一个输入是控制信号AddSub,当AddSub

=0时Z=A+B;当AddSub=1时,Z=A-B.第2个输入控制信号Sel被用来选择运算模式的操作。当Sel=0时,Z=A+-B;

当Sel=1时,B被从当前Z的值加到或减去。如果加法或减法操作的结果溢出,一个输出信号Overflow被激活。

为了较容易处理异步输入信号,在时钟上升沿它们被加载到触发器。因此,输入A和B将被加载到寄存器Areg和Breg,

而Sel和AddSub将被加载到触发器SelR和AddSubR。加/减器电路的结果放在寄存器Zreg。

代码

//Top-level module
module addersubtractor2(A,B,Clock,Reset,Sel,AddSub,Z,Overflow);
parameter n=16;
input [n-1:0]A,B;
input Clock,Reset,Sel,AddSub;
output [n-1:0]Z;
output Overflow;
reg SelR,AddSubR,Overflow;
reg [n-1:0]Areg,Breg,Zreg;
wire [n-1:0]G,M,Z;
wire over_flow;

//Define combinational logic circuit
mux2to1 multiplexer(Areg,Z,SelR,G);
defparam multiplexer.k=n;
megaddsub nbit_adder(~AddSubR,G,Breg,M,over_flow);
assign Z=Zreg;

//Define flip-flop and register
always @(posedge Reset or posedge Clock)
if(Reset==1)
begin
Areg<=0;
Breg<=0;
Zreg<=0;
SelR<=0;
AddSubR<=0;
Overflow<=0;
end
else
begin
Areg<=A;
Breg<=B;
Zreg<=M;
SelR<=Sel;
AddSubR<=AddSub;
Overflow<=over_flow;
end
endmodule

//k-bit 2-to-1 multiplexer
module mux2to1(V,W,Selm,F);
parameter k=8;
input [k-1:0]V,W;
input Selm;
output [k-1:0]F;
reg [k-1:0]F;

always @(V or W or Selm)
if(Selm==0)
F=V;
else
F=W;
endmodule


添加megaddsub.v到工程。选择Porject > Add/Remove Files in Project(图13)。文件addersubtractor2.v已经存在,添加megaddsub.v,单击Ok。





图 13





图 14

4 结果

编译设计,查看总结,图15.注意修改后的电路使用52个le。因为本例比较简单,使用LPM的优势并不明显。在更复杂的设

计中使用LPM,优势比较明显。当有合适的LPM时,建议使用。





图 15

Seealso

Using Library Modules in Verilog Designs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐