在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_adderisport(X:instd_logic;Y:instd_logic;C_in:instd_logic;Sum:outstd_logic;C_out:outstd_logic);endh_adder;--Thearchitecturebody:architecturebehavofh_dderisbeginprocess(X,Y,C_in)beginSum=(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_addrisport(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_Addriscomponenth_adderport(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_adderportmap(X(0),Y(0),C_in,sum(0),C_temp);A2:h_adderportmap(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从仿真结果来看,模块功能正常。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功