程序包表示嵌入或链接信息的图标。此信息可以包含整个文件(如位图文件)或部分文件(如电子表格中的某个单元)。当选择此数据包时,用于创建对象的应用程序将播放对象(如声音文件)或者打开并显示对象。如果更改原始信息,链接的信息将自动更新。但必须手动更新嵌入信息。
可以利用包(package)将过程和函数安排在逻辑分组中。包含有两个分离的部件;包说明(规范、包头)和包体(主体)。包说明和包体都存储在数据字典中。包与过程和函数的一个明显的区别时,包仅能存储在非本地的数据库中。除了允许相关的对象结合为组之外,包与依赖性较强的存储子程序相比其所收的限制较少。除此之外,包的效率比较高。
从本质上讲,包是一个命名的声明部分。任何可以出现在块声明中的语句都可以在包中使用,这些语句包括过程、函数、游标、类型和变量。把上述内容放入包中的好处是,用户可以从其他PL/SQL块中对其进行引用,包为PL/SQL语言提供了全程变量。
LIBRARY ieeeUSE ieee.std_logic_1164.all
USE ieee.std_logic_arith.all
USE ieee.std_logic_unsigned.all
跟C类似,把这些库象头文件一样加到程序前面
1.std_logic_1164 IEEE的标准库,仅定义了std_ulogic, std_ulogic_vector, std_logic, std_logic_vector等类型以及他们的逻辑 *** 作(and, or, xor, not, nand, nxor, nor)
2.numeric_std IEEE的标准库,定义了unsigend/signed以及他们的算术运算(包括与integer),+,-,*,/, rem, mod, abs ,to_integer/to_signed/to_unsigned也都在这个库里面定义。
3.std_logic_arith 是synopsys的一个扩展,定义了unsigned, signed与integer, std_ulogic之间的算术运算、关系运算(>, <, >=, <=, =, /=)算术运算返回类型可以是signed, unsigned或std_logic_vector还定义了unsigned, signed, integer, std_logic_vector机种类型之间的转换函数CONV_STD_LOGIC_VECTOR, CONV_INTEGER, CONV_SIGNED, CONV_UNSIGNED
4.std_logic_unsigned 是synopsys的一个扩展,定义了基于std_logic_vector与std_logic_vector、std_logic_vector与integer之间的算术运算, >, <, >=, <=, =, /=返回类型是std_logic_vector或boolean注意这里面的function的运算都是基于unsigned,就是说std_logic_vector和integer都变成unsigned之后再用std_logic_arith库中的function完成
std_logic_signed跟std_logic_unsigned类似,唯一的差别是,这里面的function都是先把 *** 作数(std_logic_vector或integer类型)都转换成signed之后再用std_logic_arith库中的function完成
在用这些库的时候,基本原则是要知道你想要EDA软件实现什么样的运算。大部分情况下,std_logic_vector应该作为unsigned参与运算。如果一定要std_logic_vector作为signed参与运算,最好用显示的to_integer来做。
Tips: 看到有人说, std_ulogic比std_logic好的地方在于,simulator能报告多个driver shorted together的bug。其他方面,std_ulogic与std_logic完全兼容。
二个文件同一个目录,StaticImport.java也应该加上相同的package吧,否则这个类编译出来全名也是StaticImport,不是com.cjg.StaticImport欢迎分享,转载请注明来源:内存溢出
评论列表(0条)