VHDL之Port map and open

用的一些基本的库文件,有些端口自己不想用,恰巧好二哥(不知年龄的数字组组长,本名Holger),于是请教之,告曰open关键词。后来深感自己VHDL水平太水,下了一本电子书恶补语法。明白了open,顺带了port mapping

<<Circuit Design With VHDL>> chapter 10, 10.4

现摘录如下,

Two ways to map the PORTS of a COMPONENT during its instantiation:

COMPONENT inverter IS
   PORT (a: IN STD_LOGIC; b: OUT STD_LOGIC);

END COMPONENT;
...
U1: inverter PORT MAP (x, y);

Positional mapping, that is, PORTS x and y correspond to a and b, respectively.

On the other hand, a nominal mapping would be the following:

U1: inverter PORT MAP (x=>a, y=>b);

Positional mapping is easier to write, but nominal mapping is less error-prone.

Ports can also be left unconnected (using the keyword OPEN).

U2: my_circuit PORT MAP (x=>a, y=>b, w=>OPEN, z=>d);
时间: 2024-10-19 15:28:28

VHDL之Port map and open的相关文章

VHDL学习之TEXTIO在仿真中的应用

TEXTIO 在VHDL 仿真与磁盘文件之间架起了桥梁,使用文本文件扩展VHDL 的仿真功能.本文介绍TEXTIO 程序包,以一个加法器实例说明TEXTIO 的使用方法,最后使用ModelSim 对设计进行仿真,并分析仿真结果.在对VHDL 源程序进行仿真时, 由于有的输入输出关系仅仅靠输入波形或编写testbench 中的信号输入是难以验证结果正确性的,例如, 设计8 位加法器,如果将所有的输入都验证一遍, 是非常麻烦的,因为要全面判断输出是否正确需要一个个的验证.此外,若用VHDL 设计一个

VHDL之Serial-Parallel Multiplier

1 Serial-parallel multiplier Figure 12.1 shows the RTL diagram of a serial-parallel multiplier. One of the input vectors (a) is applied serially to the circuit (one bit at a time, starting from the LSB), while the other (b) is applied in parallel (al

VHDL基础2

Signals & Variables VHDL 提供了 signal 和 variable 两种对象来处理非静态数据:提供了 constant 和 generic 来处理静态数据. constant 和 signal 是全局的,可以在顺序执行的代码中,也可以在并发执行的代码中:variable 是局部的,只能值顺序代码中,并且它们的值是不能向外传递的(如果想传递出去,必须先把这个变量值传递给一个信号,再由这个信号传递出去). constant constant 可以定义在 package, e

VHDL与Verilog硬件描述语言TestBench的编写

VHDL与Verilog硬件描述语言在数字电路的设计中使用的非常普遍,无论是哪种语言,仿真都是必不可少的.而且随着设计复杂度的提高,仿真工具的重要性就越来越凸显出来.在一些小的设计中,用TestBench来进行仿真是一个很不错的选择.VHDL与Verilog语言的语法规则不同,它们的TestBench的具体写法也不同,但是应包含的基本结构大体相似,在VHDL的仿真文件中应包含以下几点:实体和结构体声明.信号声明.顶层设计实例化.提供激励:Verilog的仿真文件应包括:模块声明.信号声明.顶层设

移位寄存器的设计(VHDL)及testbench的编写

移位寄存器是一种常用的存储元件,此处由D触发器构成,如下图所示. 当时钟边沿到来时,存储在移位寄存器的数据朝一个方向移动一个BIT位. 移位寄存器的功能主要为:串并转换,并串转换和同步延迟. vhdl代码如下: 1 library ieee; 2 use ieee.std_logic_1164.all; 3 4 entity shiftreg_rb is --实体说明及端口说明 5 port( 6 si,clr_bar,clk:in std_logic; 7 qout:buffer std_lo

VHDL语言实现的任意整数分频器

fpga中,一般外接的晶振是50Mhz,如果电路中一个模块需要25mhz时钟,那么进行一个2分频,这个是相当容易的,下面是一种方法,还有可以用一个二进制计数器实现.这里就不写代码了.easy.同样的原理 ,四分频也很容易. process(clk)--clk输入时钟:begin  if(rst = '0') then  --rst复位信号:     clkout <= '0';  elsif(clk;event and clk = '1')then     clkout <= not clk;

VHDL库

http://wenku.baidu.com/link?url=SsRPUVQAOKDR8yWfDhQlceCwfZQkI-KQMLFKTDGAh3KAPr2NwEgvj0d_EZjdnsB99Upp6hLzqWdxqHGGNZQcRJQCQpVBF8H8qkACAJY7A4_ 这篇文章里说Function和Package中不能有时序电路,只能是组合逻辑电路. 任务:把常用的逻辑编译成库(不知道这个要干啥) 不理解库是干嘛用的 把当前理解做下笔记 1 这个是顶层模块 library ieee;u

VHDL设计时参数定义的方法 例子

-- SPtb LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; use std.textio.all; use ieee.std_logic_textio.all;   -- Uncomment the following library declaration if using -- arithmetic functions wit

用VHDL设计正弦信号发生器

正弦信号发生器的结构由3部分组成: 1.计数器或地址信号发生器,要根据ROM大小来确定地址发生器宽度.(其实验选择6位地址信号发生器给ROM) 2.正弦信号数据存储ROM(地址宽度6位,数据宽度8位),包含64个字的完整正弦波数据(1个完整周期) 3.8位D/A模块(采用TLC5602超高频数模转换器),实现数模转换,输出模拟正弦波信号. 结构图 在正弦信号发生器结构图中,地址信号发生器的时钟信号有clk提供,假设其频率为f0,正弦波数据ROM中存放每周期64个字节的波形数据,则8位 D/A转换