使用VHDL语言设计FPGA的几个常见问题的探讨

技术分类: 可编程器件  | 2008-02-15
来源:国外电子元器件 | 作者:南京理工大学 孙建东

  2.3 双向电路

  在工程应用中,双向电路是设计者必须面对的问题。

  使用VHDL语言设计FPGA时,经常会遇到很多接口控制电路的设计,例如FPGA与外部存储设备的接口电路设计、FPGA与DSP接口电路的设计、FPGA与CPU接口电路的设计等,其中数据总线的设计是不可避免的,而数据总线往往是双向的。因此,如何正确处理数据总线是进行时序逻辑电路设计的基础。

  在程序设计过程中,双向信号既作为信号的输入又作为信号的输出。常见双向信号的模式有二种,第一种是双向信号作为一个信号的输入,作为另一信号的输出;第二种是双向信号既作为输出又作输入。经常用的数据总线就是第二种模式。要很好地进行双向电路的设计,关键在于实体部分必须对端口属性进行说明,端口属性必须为inout类型;在构造体内需要对输出信号进行有条件的高阻控制。

  下面结合一段程序说明用VHDL编写数据总线时应注意的问题,第一种模式的双向信号编写与此类似。

  DBus为数据总线,datal6(15 downto 0)和SA(18downto 0)为16位和19位的寄存器,dlyL和dlyH为datal6的使能端,AddrLReg、AddrMReg、AddrHReg为SA的使能端。

  dlyL或dlyH为高电平时FPGA从数据总线上读取数据(延时量),锁存在数据寄存器datal6

里;AddrLReg、AddrMReg、AddrHReg有1个为高电平时FPGA把状态寄存器SA的值送到数据总线上。

程序

程序

点击看原图

  在双向电路程序设计中,DBus输入是普通的in类型,而在输出时需要加一定的控制条件来控制高阻状态。最后一句不可省去,它说明了双向信号的三态输出,更要注意when后面语句的条件限制,如果条件限制太宽就会错误占用双向信号总线,引起总线的误操作;如果条件限制太窄,输出寄存器的数据就不能正确地送到数据总线,引起数据的丢失。一般可以使用枚举法一一把用到的地址线罗列出来,表示只有在这样的地址线的情况下才会用到数据总线,否则其他状态对数据总线进高阻,表示不占用数据总线。

  3 结束语

  DSP技术在许多领域具有广泛的用途,以往经常采用的固定功能的DSP或ASIC可以提供很好的实时性能,但其灵活性差,不适合在实验室或技术开发等场合使用;DSP在软件算法上受到一定的限制,因此使用DSP和FPGA结合是进行数字信号处理的一种趋势,而使用VHDL/VerilogHDL硬件描述语言设计CPLD/FPGA也是电子设计师们应该掌握的一门技术。

1】【2
加载中

对文章的评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销