BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #14740同步于 2010/8/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

[求助]在VHDL中如何把几个端口拼成一个数组啊?

bupteinstein
2010/8/3镜像同步14 回复
在VHDL中,我有四个端口,名字分别是PORT0、PORT1、PORT2、PORT3,想把它们拼成一个数组。 我看到alias的使用方法,基本是把一个端口拆成多个端口,如: alias PH: std_logic_vector(7 downto 0) is PORT(15 downto 8); alias PL: std_logic_vector(7 downto 0) is PORT(7 downto 0); 但是我想用它来实现我的想法的时候,却不能通过编译: alias PORTS: std_logic_vector(3 downto 0) is (PORT3,PORT2,PORT1,PORT0); 没办法,我只好用signal来实现了: signal SIG_PORTS: std_logic_vector(3 downto 0); SIG_PORTS(0) <= PORT0; SIG_PORTS(1) <= PORT1; SIG_PORTS(2) <= PORT2; SIG_PORTS(3) <= PORT3; 所以有两个问题想请教版上大牛: 1. 我只想实现对端口的直接引用,就是向alias那样使用,不需要其他额外的逻辑,VHDL有语言机制能实现吗? 2. 使用signal实现的时候,系统是直接给我连接到端口,还是会生成一个寄存器?电平从端口到信号会不会有额外的传输时延?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
bupteinstein机器人#1 · 2010/8/3
大牛们都回家了。
police机器人#2 · 2010/8/3
今天看见你和老朱了。。。 表示只会verilog了。。。 【 在 bupteinstein (相期以茶) 的大作中提到: 】 : 在VHDL中,我有四个端口,名字分别是PORT0、PORT1、PORT2、PORT3,想把它们拼成一个数组。 : 我看到alias的使用方法,基本是把一个端口拆成多个端口,如: : alias PH: std_logic_vector(7 downto 0) is PORT(15 downto 8); : ...................
police机器人#3 · 2010/8/3
话说altera太贱了。。 给了一堆DDR,DDRII,DDRIII的ip core 不给SDRAM的。。。 第三方的是要钱的。。。难道我手写一个么。。。 【 在 police (又是一年毕业时) 的大作中提到: 】 : 今天看见你和老朱了。。。 : 表示只会verilog了。。。
police机器人#4 · 2010/8/3
ms有很多现成的。。。唔 【 在 police (又是一年毕业时) 的大作中提到: 】 : 话说altera太贱了。。 : 给了一堆DDR,DDRII,DDRIII的ip core : 不给SDRAM的。。。 : ...................
police机器人#5 · 2010/8/3
擦 在我一本烂书上找到一个连仿真都有的 xx培训中心威武。。。 【 在 police (又是一年毕业时) 的大作中提到: 】 : ms有很多现成的。。。唔
chrischen25机器人#6 · 2010/8/4
XXXX<=PORT1&PORT2&PORT3&PORT4 这样试试
shoren机器人#7 · 2010/8/4
【 在 bupteinstein 的大作中提到: 】 : 在VHDL中,我有四个端口,名字分别是PORT0、PORT1、PORT2、PORT3,想把它们拼成一个数组。 : 我看到alias的使用方法,基本是把一个端口拆成多个端口,如: : alias PH: std_logic_vector(7 downto 0) is PORT(15 downto 8); : ................... 貌似可以用 SIG_PORTS <= PORT3 & PORT2 & PORT1 & PORT0 ,你的想法实现和例子的格式不一致啊。 忘得差不多了。。 再找书查一下吧。
shoren机器人#8 · 2010/8/4
注意高低位。
huanyu机器人#9 · 2010/8/4
1. 我只想实现对端口的直接引用,就是向alias那样使用,不需要其他额外的逻辑,VHDL有语言机制能实现吗? --VHDL 的不懂,你哪种实现方式就可以了 6、7楼的也应该可以,但是他们把四个port组合成了一个更长的vector,而不是数组,用的时候注意点。 2. 使用signal实现的时候,系统是直接给我连接到端口,还是会生成一个寄存器?电平从端口到信号会不会有额外的传输时延? --不会引入额外的延时或生成任何寄存器,除非你把它放到process里面用时钟出发。不管altera还是xilinx的综合器都会把多余的逻辑自动优化掉的。 【 在 bupteinstein 的大作中提到: 】 : 在VHDL中,我有四个端口,名字分别是PORT0、PORT1、PORT2、PORT3,想把它们拼成一个数组。 : 我看到alias的使用方法,基本是把一个端口拆成多个端口,如: : alias PH: std_logic_vector(7 downto 0) is PORT(15 downto 8); : ...................