zoukankan      html  css  js  c++  java
  • VHDL

    数字逻辑VHDL

    信号与变量

    • signal是全局的,在整个结构体中都有效,它的赋值是在进程结束, 也就是最后的赋值是有效的。
    • variable是局部的,它的赋值是立即生效的。
    • 一般变量是在进程的说明部分中定义的
    
    PROCESS(a, b, c)
    -- 在说明部分声明变量
    VARIABLE vector: STD_LOGIC_VECTOR(3 DOWNTO 0);
    BEGIN
    
    -- a <= '0' HEN b = '0' ELSE '1'; 在进行中只能使用顺序类型的语句, WHEN-ELSE是并行的, 不能写在PROCESS中, 这里应该换成IF-ELSE语句
    IF b = '0' THEN
    a <= '0';
    ELSE
    a <= '1';
    END PROCESS;
    
    • 一般信号定义在ARCHITECTURE和PROCESS之间, 在ENTITY的PORT中定义的也是信号, 可以直接在ARCHITECTURE中直接访问, 因为是全局的。
    
    ARCHITECTURE JHArc OF JHEncoder IS
    SIGNAL vector: STD_LOGIC_VECTOR(3 DOWNTO 2);
    BEGIN
    a <= '0' HEN b = '0' ELSE '1'; -- 并行语句
    END JHArc;
    

    进程

    • process之间是并行的,但是在内部是按照顺序执行的。

    标准头

    ```vhdl
    LIBRARY IEEE;
    USE IEEE.STD_LOGIC_1164.ALL;
    USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    ```
    
    • 定义ENTITY的注意点

      ENTITY comp IS
      PORT(
      A1: IN STD_LOGIC;
      B1: IN STD_LOGIC;
      A0: IN STD_LOGIC;
      B0: IN STD_LOGIC;
      altb: OUT STD_LOGIC;
      agtb: OUT STD_LOGIC;
      aeqb: OUT STD_LOGIC -- 没有分号!
      );
      END comp;
      

      并行语句和顺序语句

      • 并行语句

        • WHEN-ELSE
        • WITH-SELECT
      • 顺序语句(可以在PROCESS中使用)

        • IF-ELSE
        • IF-ELSIF
        • CASE-WHEN
  • 相关阅读:
    作业
    Java总结
    十四周总结
    十二周课程总结
    十一周总结
    自我介绍
    第二次
    第十二周作业
    第九周作业
    第十三周课程总结
  • 原文地址:https://www.cnblogs.com/megachen/p/9948860.html
Copyright © 2011-2022 走看看