美文网首页
vhdl入门(一)-vhdl的代码结构

vhdl入门(一)-vhdl的代码结构

作者: 今日你学左米啊 | 来源:发表于2019-07-21 22:47 被阅读0次

    vhdl入门(一)-vhdl的代码结构

    @(study)[Maxe, markdown_study, LaTex_study]
    [TOC]

    序言

    因为最近的涉及到了一些通信和传统dsp的开发,虽然现在比较火verilog,但是大部分轮子都是建立在vhdl上面的.那就在verilog的基础上拓展一下VHDL的技术栈

    代码

    talk is cheap , show me the code
    这次由于是小小拓展一下,所以就不系统写教程了.所有知识点和细节都在注释里面.

    --是注释,vhdl不区分大小写,教程一般是全部大写的,那我就全部小写吧
    -------------------------------------------------------------------------
    --首先是vhdl的库声明,有三个常用的库:
    library ieee;
    use ieee.std_logic_1164.all;
    --  库名 .包名           .引用部分
    
    --以下两个库在程序中都是默认"包含"的,所以可以不写
    library standard;
    use std.standard.all;
    
    library work;
    use work.all;
    --------------------------------------------------------------------------
    --接下来是实体(entity)声明,相当于verilog里面的module声明
    entity D_NAND is 
        port (
            a,b,clk : IN  BIT;
            q       : OUT BIT
        );
    end D_NAND;
    --vhdl有些时候语法看起来就像是英语一样. 
    --里面涵盖的信息,相当于verilog里面的外部端口声明.
    --可以看出有三个端口,ab是输入端口,c是输出端口,数据类型都是BIT.
    --端口类型有四种:in(输入),out(输出),inout(双向引脚),buffer(反馈引脚)
    --信号类型有比较多种,常见的有:BIT,STD_LOGIC,INTEGER等
    ---------------------------------------------------------------------------
    
    --接下来是结构体(architecture)部分,用来描述电路功能.
    --多封装了一层architecture我个人觉得可以便捷地进行电路的版本管理吧,综合器只会选用一个结构体.
    architecture d_a_b of D_NAND is 
        signal temp : BIT ;
    begin
        temp <= a nand b ;
        process (clk)
        begin 
            if(clk'event and clk = '1') 
                then q <= temp ;
            end if;
        end process;
    end d_a_b;
    --d_a_b是architecture的名字
    --注意: <= 不再是verilog里面的阻塞赋值,在这里是信号的赋值而已
    -- nand是RTL级电路描述,与非
    -- process是顺序执行语句,括号里面是敏感信号,类比verilog里面always后面的括号
    --程序中,除了process之外,其它的都是并行在走的.相当于always
    --在vhdl里面会分清楚触发process的事件,如代码便表示在时钟上升沿时触发if
    ------------------------------------------------------------------------------
    

    结语

    博学笃行,与时俱进

    想我尽早更新的方法之一

    相关文章

      网友评论

          本文标题:vhdl入门(一)-vhdl的代码结构

          本文链接:https://www.haomeiwen.com/subject/lwkblctx.html