VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能

目录

1. 示例说明

2. 创建EG9工程

3. 在EG8工程下创建Eg1.vhd文件

4. 在EG8工程下创建Eg2.vhd文件

5. 执行语法综合检测

6. 显示语法综合检测结果

7. 点到Eg1.vhd文件执行Create Symbel

8. Create Symbel创建完成后提示

9. 创建一个bdf文件

10. 在bdf文件中引入Eg1符号

11. 保存此bdf文件为Eg9.bdf

12. 点到Eg2.vhd文件执行Create Symbel

13. Create Symbel创建完成后提示

14. 在bdf文件中引入Eg2符号

15. 给Eg9.bdf文件个元件符号添加输入输出引脚

16.引脚添加完成后显示

17. 查看两个模块是否生效

18. 编译结果

19. 创建仿真文件

20. 构造仿真参数(根据自己的需要设置)

21. 构造仿真选项

22 功能仿真结果


1. 示例说明

本例实现将两个独立模块的功能引入到顶层文件EG9.bdf中,实现两个独立功能在一个工程中实现的功能。

1. 创建两个独立的vhd文件,

2. 给vhd文件生成相应bsf文件

2. 创建顶层文件EG9.bdf,在顶层文件中引入bsf文件;

4. 给各个模块的文件连接引脚,编译。

工程文件关系如下:

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第1张图片

 

2. 创建EG9工程

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第2张图片

 

3. 在EG8工程下创建Eg1.vhd文件

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第3张图片

 

Eg1.vhd源码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Eg1 is

port(

                   in1:  IN STD_LOGIC_VECTOR(15 DOWNTO 0);

                   in2:  IN STD_LOGIC_VECTOR(15 DOWNTO 0);

                   cnt1: IN bit;

                   pout: out STD_LOGIC_VECTOR(15 DOWNTO 0)

);

end Eg1;

architecture func of Eg1 is

begin

process(cnt1)

begin

         if (cnt1 = '1') then pout <= in1+in2;

         end if;

end process;

end func;

4. 在EG8工程下创建Eg2.vhd文件

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第4张图片

 

Eg2.vhd源码如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

-- 无控制端口的加法器

entity Eg2 is

port(

                   in1:  IN STD_LOGIC_VECTOR(15 DOWNTO 0);

                   in2:  IN STD_LOGIC_VECTOR(15 DOWNTO 0);

                   pout: out STD_LOGIC_VECTOR(15 DOWNTO 0)

);

end Eg2;

architecture func of Eg2 is

begin

         process(in1, in2)

         begin

                   pout <= in1 + in2 after 2ns;

         end process;

end func;

5. 执行语法综合检测

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第5张图片

 

6. 显示语法综合检测结果

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第6张图片

 

7. 点到Eg1.vhd文件执行Create Symbel

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第7张图片

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第8张图片

 

 

8. Create Symbel创建完成后提示

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第9张图片

 

9. 创建一个bdf文件

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第10张图片

 

10. 在bdf文件中引入Eg1符号

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第11张图片

 

11. 保存此bdf文件为Eg9.bdf

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第12张图片

 

12. 点到Eg2.vhd文件执行Create Symbel

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第13张图片

 VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第14张图片

 

13. Create Symbel创建完成后提示

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第15张图片

 

14. 在bdf文件中引入Eg2符号

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第16张图片

 

15. 给Eg9.bdf文件个元件符号添加输入输出引脚

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第17张图片

 

16.引脚添加完成后显示

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第18张图片

 

17. 查看两个模块是否生效

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第19张图片

 VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第20张图片

 

18. 编译结果

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第21张图片

 

19. 创建仿真文件

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第22张图片

 

20. 构造仿真参数(根据自己的需要设置)

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第23张图片

 

21. 构造仿真选项

 

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第24张图片

22 功能仿真结果

VHDL11:VHDL两个独立的vhdl文件在同一个工程中使用,加载到顶层文件中,实现模块化的功能_第25张图片

 

你可能感兴趣的:(VHDL学习,fpga开发)