收藏 分销(赏)

在Quartus II下使用VHDL语言编程实现模块间相互调用的步骤.doc

上传人:s4****5z 文档编号:8729062 上传时间:2025-02-28 格式:DOC 页数:8 大小:268.50KB
下载 相关 举报
在Quartus II下使用VHDL语言编程实现模块间相互调用的步骤.doc_第1页
第1页 / 共8页
在Quartus II下使用VHDL语言编程实现模块间相互调用的步骤.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述
在Quartus II下使用VHDL语言编程实现元件例化 为了有效应用现有开发资源,往往需要实现模块间的调用。即实现元件的声明和例化。作为示例,这里建立了两个模块:一个是两个1位数相加的半加器h_adder,另一个是两个2位数相加的全加器twobit_addr,twobit_addr需要调用h_dder。步骤如下: 第一步: 首先在D:\ 建立一个文件夹,命名为job1: 图1 第二步: 打开Quartus II,点击file—new project wizard,在出现的对话框里面,选择job1作为工程路径,并在下面的工程名处输入“h_adder”。如图3所示。 图2 图3 第三步:点击file—new,在出现的对话框里面选择VHDL文件,如图4所示。界面上将会出现一个空白的.vhd的文件,点击“保存按钮”,将该文件的文件名取为“h_adder”(必须与工程名一致)。 图4 第四步:在h-adder.vhd文档中,键入如下程序(可复制粘贴): library ieee; use ieee.std_logic_1164.all; entity h_adder is port( X: in std_logic ; Y: in std_logic ; C_in: in std_logic; Sum : out std_logic ; C_out : out std_logic ) ; end h_adder ; -- The architecture body : architecture behav of h_dder is begin process(X,Y,C_in) begin Sum <= (X xor Y) xor C_in; C_out <= (X and Y)or (C_in and X) or (C_in and Y); end process; end Behav; 上述程序主要是实现X与Y的相加,同时包括进位输入C_in、进位输出C_out、相加的和Sum。 第五步:点击“编译”按钮(紫色的图标)进行编译。直至编译成功(该过程需持续30s左右。) 图5 第六步:点击file—new,建立波形文件,并将其命名为h_adder.vwf. 图6 第七步:加入仿真节点(node),设置好输入后,点击simulation按钮,可进行仿真。这里应将end time (edit 下拉菜单)设置为1000 us,将时钟设置为1us。 最终的仿真结果如图7所示。 图7 至此为止,被调用模块h_adder的编写全部完毕。 第八步:按照上述过程,在D:\ 建立一个文件夹,命名为job2. 重新打开Quartus II,选择job2文件夹,建立工程名twobit_addr。点击file—new新建twobit_addr.vhd文件。并敲入如下代码: library ieee; use ieee.std_logic_1164.all; entity twobit_addr is port( X: in std_logic_vector(1 downto 0); Y: in std_logic_vector(1 downto 0); C_in: in std_logic; Sum : out std_logic_vector(1 downto 0); C_out : out std_logic ) ; end twobit_addr ; -- The architecture body : architecture Behav of Twobit_Addr is component h_adder port( X: in std_logic ; Y: in std_logic ; C_in: in std_logic; Sum : out std_logic ; C_out : out std_logic ) ; end component ; signal C_temp: std_logic; begin --Sum <= (X(0) xor Y(0)); --C_out <= (X(0) and Y(1)); --wait on X,Y; A1: h_adder port map(X(0),Y(0),C_in,sum(0),C_temp); A2: h_adder port map(X(1),Y(1),C_temp,sum(1),C_out); end Behav; 注意:上面程序中的黄色部分就是调用h_adder模块的语句。为了实现调用,需要添加包含h_adder的文件夹job1,具体过程如下: (1) 点击assignment下拉菜单中的settings选项,并选中user libraries选项,则出现图8界面: 图8 (2) 在图8界面中,点击library name 后面的“…” 按钮,找到job1文件夹,点击Add,则出现图9所示界面。至此,完成h_adder库的添加。 图9 第九步:点击编译按钮,对twobit_addr工程进行编译(设置好的话,这一过程不会有错误)。 第十步:点击file—new,建立波形文件,并将其命名为twobit_addr.vwf。加入仿真节点(node),设置好输入后,点击simulation按钮,可进行仿真。这里应将end time (在edit 下拉菜单里面)设置为1000 us,将数据的变化时钟设置为1us。 最终的仿真结果如图10所示。 图10 从仿真结果来看,模块功能正常。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 社会民生

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服