VHDL语法点滴
1. cnt <= (others => '0');
这个是给cnt赋零的意思,还可以这样用
比如说cnt是std_logic_vector(7 downto 0);
那么cnt<=(1=>'1',others=>'0');就表示给cnt的第1位赋1,其他位的全部都赋0,结果cnt=“00000010”;
2.f1_fi_din <= conv_std_logic_vector(8, DW/2-10) & AD_B & conv_std_logic_vector(4, DW/2-10) & AD_A;
-- "00"-ch2(2bit)-"00"-ADB-"00"-ch1(2bit)-"00"-ADA
conv_std_logic_vector 类型转换函数 把integer类型数8转换为6位标准逻辑矢量类型std_logic_vector(5 downto 0)即"001000" .
& 相当于Verilog语法中的{},"连接"的意思。
3.component 元件例化就是引入一种连接关系,将预先设计好的设计实体entity定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而实现结构化设计。语法如下:第一部分:元件定义语句例如:
COMPONENT 元件名IS
PORT ( 信号1,信号2 : in std_logic;
信号3 : out std_logic_vector(7 downto 0);
信号4,信号5 : inout std_logic );
END COMPONENT;
第二部分:连接说明语句:
例化名:元件名PORT MAP ( 连接端口名1, 连接端口名2 , …… );
语法举例:
COMPONENT or_gate
PORT( a,b : IN std_logic;
c : OUT std_logic);
END COMPONENT;
BEGIN
U0: or_gate PORT MAP((tmp3,tmp2,Co_F);
4. 实体有实体名。实体名×××可以取英文名,且不能以数字开头;注意在编写完VHDL文本存盘时,设计文件×××.vhd的前缀一定要和实体名×××完全相同,否则有的EDA软件无法编译。
5. ARCHITECTURE ...
TYPE string IS ARRAY (1 TO 10) OF INTERGER;
SIGNAL AA: string;
begin
AA <= (0,0,0,2,2,1,5,7,4,7);
如果单独给AA中的某个元素赋值,可: AA(2) <= 110;
=================
TYPE matrix_index IS ARRAY (3 downto 0) OF STD_LOGIC_VECTOR(7 downto 0);
constant R : matrix_index :=(x"15", x"0f", x"0a", x"0b"); ---define a constant array.
because of "...3 downto 0...", R(0)等于x"0b",R(3)等于x"15".
(fr:http://zhidao.baidu.com/question/274057527.html)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf