亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL

掌握VHDL端口映射实例化实战指南

在VHDL中,模块是通过其实体与外部世界通信的自包含单元。实例化的端口映射子句将实体的形式端口连接到周围设计中的信号。

模块、实体与测试平台

为FPGA或ASIC开发时,设计逻辑驻留在具有明确定义输入输出端口的模块中。无端口的模块是测试平台——仿真包装器,向被测器件(DUT)提供激励但从不出现在物理芯片上。

早期帖子将所有VHDL写在单文件,便于快速实验但不适合生产设计。分离DUT与测试平台提升可读性、复用性,使仿真层次清晰。

常见命名约定

许多团队遵循简单方案:设计文件MyModule.vhd,测试平台MyModuleTb.vhd。DUT架构常称rtl(寄存器传输级),测试平台架构称sim。此约定瞬间告知文件是用于综合还是仿真。

掌握VHDL端口映射实例化实战指南

VHDL端口映射实例化语法

用entity关键字定义模块接口:

 entity <entity_name> is port( <entity_signal_name> : in|out|inout <signal_type>; ... ); end entity; 

在另一VHDL文件中用显式端口映射实例化模块:

 <label> : entity <library_name>.<entity_name>(<architecture_name>) port map( <entity_signal_name> => <local_signal_name>, ... ); 

<label>出现在仿真器层次中,<library_name>默认work,每个形式端口必须绑定到本地信号。

实战示例:4选1多路选择器

下面是实现无符号8位4选1多路选择器的完整测试平台与DUT对。

测试平台代码

 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity T15_PortMapTb is end entity; architecture sim of T15_PortMapTb is signal Sig1 : unsigned(7 downto 0) := x"AA"; signal Sig2 : unsigned(7 downto 0) := x"BB"; signal Sig3 : unsigned(7 downto 0) := x"CC"; signal Sig4 : unsigned(7 downto 0) := x"DD"; signal Sel : unsigned(1 downto 0) := (others => '0'); signal Output : unsigned(7 downto 0); begin -- Instantiate the MUX with architecture rtl i_Mux1 : entity work.T15_Mux(rtl) port map( Sel => Sel, Sig1 => Sig1, Sig2 => Sig2, Sig3 => Sig3, Sig4 => Sig4, Output => Output); -- Stimulus process process is begin wait for 10 ns; Sel <= Sel + 1; wait for 10 ns; Sel <= Sel + 1; wait for 10 ns; Sel <= Sel + 1; wait for 10 ns; Sel <= Sel + 1; wait for 10 ns; Sel <= "UU"; wait; end process; end architecture; 

模块代码

 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity T15_Mux is port( -- Inputs Sig1 : in unsigned(7 downto 0); Sig2 : in unsigned(7 downto 0); Sig3 : in unsigned(7 downto 0); Sig4 : in unsigned(7 downto 0); Sel : in unsigned(1 downto 0); -- Output Output : out unsigned(7 downto 0) ); end entity; architecture rtl of T15_Mux is begin process(Sel, Sig1, Sig2, Sig3, Sig4) is begin case Sel is when "00" => Output <= Sig1; when "01" => Output <= Sig2; when "10" => Output <= Sig3; when "11" => Output <= Sig4; when others => Output <= (others => 'X'); end case; end process; end architecture; 

波形分析

在ModelSim运行测试平台产生波形,匹配MUX预期行为。下方波形快照确认DUT随Sel信号变化正确在四个输入信号间切换。

掌握VHDL端口映射实例化实战指南

关键要点

进入下一教程深入了解VHDL设计模式。

VHDL

  1. 刀具磨床实战技法指南:从入门到精通
  2. 钼如何塑造现代工业:用途、优势与供应动态
  3. VHDL 字符串列表创建:最佳实践与示例
  4. 基于 Tcl 驱动的 VHDL 密码锁模块测试平台
  5. 优雅结束 VHDL 测试平台仿真
  6. VHDL 实现 PWM 控制器:设计、仿真与 FPGA 演示
  7. VHDL 生成随机数:从均匀分布到 OSVVM
  8. 利用进程内过程简化VHDL状态机设计
  9. 使用VHDL不纯函数提升FSM可读性与可维护性
  10. 掌握VHDL函数:高效设计实战指南
  11. 用VHDL设计有限状态机:红绿灯实战范例
  12. 在VHDL中使用过程:用可复用代码简化设计