admin管理员组文章数量:1531904
2024年4月5日发(作者:)
浅谈VHDL学习
一,检查时钟clk上升沿
有以下三种途径:
1,clk'EVENT AND clk ='1';
2,NOT clk'STABLE AND clk ='1';
3,RISING_EDGE(clk);
发生事件,就是电平发生变化.
The rising_edge and falling_edge functions are defined in the std_logic_1164 package
二,检查时钟clk下降沿
有以下三种途径:
1,clk'EVENT AND clk ='0';
2,NOT clk'STABLE AND clk ='0';
3,FALLING_EDGE (clk);
VHDL是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed
Integrated Circuit) Hardware Description Language。 与另外一门硬件描述语言Verilog
HDL相比,VHDL更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和
行为级(寄存器传输级),而且VHDL具有设计重用、大型设计能力、可读性强、易于编译
等优点逐渐受到硬件设计者的青睐。但是,VHDL是一门语法相当严格的语言,易学性差,
特别是对于刚开始接触VHDL的设计者而言,经常会因某些小细节处理不当导致综合无法
通过。为此本文就其中一些比较典型的问题展开探讨,希望对初学者有所帮助,提高学习进
度。
一. 关于端口
VHDL共定义了5种类型的端口,分别是In, Out,Inout, Buffer及Linkage,实际设计时只会
用到前四种。In和Out 端口的使用相对简单。这里,我们主要讲述关于buffer和inout使
用时的注意事项。
与Out端口比,Buffer端口具有回读功能,也即内部反馈,但在设计时最好不要使用buffer,
因为buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子
模块元件例化,不利于大型设计和程序的可读性。若设计时需要实现某个输出的回读功能,
可以通过增加中间信号作为缓冲,由该信号完成回读功能。
双向端口Inout是四种端口类型中最为特殊的一种,最难以学习和掌握,为此专门提供一个
简单程序进行阐述,部分程序如下:
... …
① DataB<=Din when CE=‘1‘ and Rd=‘0‘ else
② (others=>‘Z‘);
③ Dout<=DataB when CE=‘1‘ and Rd=‘1‘ else
④ ( others=>‘1‘ );
… …
程序中DataB为双向端口,编程时应注意的是,当DataB作为输出且空闲时,必须将其设
为高阻态挂起,即有类似第②行的语句,否则实现后会造成端口死锁。而当DataB作为有效
输入时, DataB输出必须处于高阻态,对于该例子中即,当 CE=‘1‘ and Rd=‘1‘时,输出
DataB应处于高阻态。
二.信号和变量
常数、信号和变量是VHDL中最主要的对象,分别代表一定的物理意义。常数对应于数字
电路中的电源或地;信号对应某条硬件连线;变量通常指临时数据的局部存储。信号和变量
功能相近,用法上却有很大不同。
表1 信号与变量主要区别
信号 变量
版权声明:本文标题:VHDL学习经验 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1712272012a352166.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论