最新在QuartusII下使用VHDL语言编程实现模块间相互调用的步骤.docx
- 文档编号:8824818
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:9
- 大小:176.97KB
最新在QuartusII下使用VHDL语言编程实现模块间相互调用的步骤.docx
《最新在QuartusII下使用VHDL语言编程实现模块间相互调用的步骤.docx》由会员分享,可在线阅读,更多相关《最新在QuartusII下使用VHDL语言编程实现模块间相互调用的步骤.docx(9页珍藏版)》请在冰豆网上搜索。
最新在QuartusII下使用VHDL语言编程实现模块间相互调用的步骤
在Quartus-II下使用VHDL语言编程实现模块间相互调用的步骤
在QuartusII下使用VHDL语言编程实现元件例化
为了有效应用现有开发资源,往往需要实现模块间的调用。
即实现元件的声明和例化。
作为示例,这里建立了两个模块:
一个是两个1位数相加的半加器h_adder,另一个是两个2位数相加的全加器twobit_addr,twobit_addr需要调用h_dder。
步骤如下:
第一步:
首先在D:
\建立一个文件夹,命名为job1:
图1
第二步:
打开QuartusII,点击file—newprojectwizard,在出现的对话框里面,选择job1作为工程路径,并在下面的工程名处输入“h_adder”。
如图3所示。
图2
图3
第三步:
点击file—new,在出现的对话框里面选择VHDL文件,如图4所示。
界面上将会出现一个空白的.vhd的文件,点击“保存按钮”,将该文件的文件名取为“h_adder”(必须与工程名一致)。
图4
第四步:
在h-adder.vhd文档中,键入如下程序(可复制粘贴):
libraryieee;
useieee.std_logic_1164.all;
entityh_adderis
port(
X:
instd_logic;
Y:
instd_logic;
C_in:
instd_logic;
Sum:
outstd_logic;
C_out:
outstd_logic);
endh_adder;
--Thearchitecturebody:
architecturebehavofh_dderis
begin
process(X,Y,C_in)
begin
Sum<=(XxorY)xorC_in;
C_out<=(XandY)or(C_inandX)or(C_inandY);
endprocess;
endBehav;
上述程序主要是实现X与Y的相加,同时包括进位输入C_in、进位输出C_out、相加的和Sum。
第五步:
点击“编译”按钮(紫色的图标)进行编译。
直至编译成功(该过程需持续30s左右。
)
图5
第六步:
点击file—new,建立波形文件,并将其命名为h_adder.vwf.
图6
第七步:
加入仿真节点(node),设置好输入后,点击simulation按钮,可进行仿真。
这里应将endtime(edit下拉菜单)设置为1000us,将时钟设置为1us。
最终的仿真结果如图7所示。
图7
至此为止,被调用模块h_adder的编写全部完毕。
第八步:
按照上述过程,在D:
\建立一个文件夹,命名为job2.重新打开QuartusII,选择job2文件夹,建立工程名twobit_addr。
点击file—new新建twobit_addr.vhd文件。
并敲入如下代码:
libraryieee;
useieee.std_logic_1164.all;
entitytwobit_addris
port(
X:
instd_logic_vector(1downto0);
Y:
instd_logic_vector(1downto0);
C_in:
instd_logic;
Sum:
outstd_logic_vector(1downto0);
C_out:
outstd_logic);
endtwobit_addr;
--Thearchitecturebody:
architectureBehavofTwobit_Addris
componenth_adder
port(
X:
instd_logic;
Y:
instd_logic;
C_in:
instd_logic;
Sum:
outstd_logic;
C_out:
outstd_logic);
endcomponent;
signalC_temp:
std_logic;
begin
--Sum<=(X(0)xorY(0));
--C_out<=(X(0)andY
(1));
--waitonX,Y;
A1:
h_adder
portmap(X(0),Y(0),C_in,sum(0),C_temp);
A2:
h_adder
portmap(X
(1),Y
(1),C_temp,sum
(1),C_out);
endBehav;
注意:
上面程序中的黄色部分就是调用h_adder模块的语句。
为了实现调用,需要添加包含h_adder的文件夹job1,具体过程如下:
(1)点击assignment下拉菜单中的settings选项,并选中userlibraries选项,则出现图8界面:
图8
(2)在图8界面中,点击libraryname后面的“…”按钮,找到job1文件夹,点击Add,则出现图9所示界面。
至此,完成h_adder库的添加。
图9
第九步:
点击编译按钮,对twobit_addr工程进行编译(设置好的话,这一过程不会有错误)。
第十步:
点击file—new,建立波形文件,并将其命名为twobit_addr.vwf。
加入仿真节点(node),设置好输入后,点击simulation按钮,可进行仿真。
这里应将endtime(在edit下拉菜单里面)设置为1000us,将数据的变化时钟设置为1us。
最终的仿真结果如图10所示。
图10
从仿真结果来看,模块功能正常。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 QuartusII 使用 VHDL 语言 编程 实现 模块 相互 调用 步骤