- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在Quartus II下使用VHDL语言编程实现模块间相互调用的步骤
在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
您可能关注的文档
- 国际电子商务复习资料.doc
- 国际私法复习资料.doc
- 国际私法考试重点.doc
- 国际私法试卷.doc
- 国际税收计算题例题.doc
- 国际经济与贸易专业人才市场需求报告.doc
- 国际经济学习题.doc
- 国际经济学习题库.doc
- 国际经济贸易阅读参考书目.doc
- 国际结算中信用证的操作流程.doc
- 2025年贵州省黔东南苗族侗族自治州三穗县高三英才班下学期数学限时训练试题.docx
- 2025年贵州省黔东南苗族侗族自治州丹寨县高三下学期考前数学适应性演练(二)试题.docx
- 2025年零食店市场研究.pptx
- 2025年贵州省黔东南苗族侗族自治州三穗县高三下学期3月联考数学试卷.docx
- 2025年零食店市场营销策划方案.pptx
- 2025年贵州省黔东南苗族侗族自治州三穗县高三下学期考前数学适应性演练(二)试题.docx
- 2025年零食店创业项目计划书范文大全集.pptx
- 中国窑外分解窑水泥熟料项目创业投资方案.docx
- 2025年贵州省铜仁地区铜仁市高三下学期第八周周测数学试卷.docx
- 2025年零食行业可行性研究.pptx
文档评论(0)