FPGA编程, VHDL语言, 芯片ALTERA Cyclone EP1C60240C8, UP3-1C6实验板, Quartus II.

VHDL语言中一般定义一个Entity, Entity中定义引脚之类的与其他模块交互的接口. 一个Entity可能对应N个Architecture, 并且具体的对应可以定义Configuration进行配置.

一个Architecture可以包含多个Process, 这些Process是并行的, Process由其后括包里的任一Signal触发, 触发点是在这个Process结尾的End Process处, 也就是在程序运行完即运行到End Process了才能被触发, 这就保证了一个过程被运行完 (Process也可以由其包含的 Wait 语句触发, 此时触发点在 Wait 语句处). 各Process之间的数据传递由Architecture头部声明的Signal传递, 而对Signal的赋值一般用>=进行, 个人的理解是这个赋值允许延迟, 即没执行完便执行下一个语句, 但它会尽量早的执行. 赋值语句若要立即执行需用:=, 一般Variable变量都这样赋值.

如果在不同进程中对同一信号量进行赋值, 就会出现如下错误(Quartus II), 因为两处赋值由于是同步的, 会冲突:

Error: Can't resolve multiple constant drivers for net  " SHOW_MODE[3] "  at UP3_CLOCK.vhd( 462 )
Error: Constant driver at UP3_CLOCK.vhd( 498 )
Error: Can't elaborate top-level user hierarchy
Error: Quartus II Analysis & Synthesis was unsuccessful.  3  errors ,   6  warnings
    Error: Processing ended: Sun Sep  03   11 : 16 : 41   2006
    Error: Elapsed time:  00 : 00 : 02
Error: Quartus II Full Compilation was unsuccessful.  3  errors ,   6  warnings

代码如:

SIGNAL SHOW_MODE: STD_LOGIC_VECTOR( 3  DOWNTO  0 );

PROCESS (MODE_SWITCH)
BEGIN
    SHOW_MODE  <=  X " 1 " ;
END PROCESS;

PROCESS (MODE_SWITCH)
BEGIN
    SHOW_MODE  <=  X " 0 " ;
END PROCESS;

有的时候两个Process要同步, 只要在一个Process中加一个Signal, 比如:sig <= NOT sig; 再由sig触发另一个Process即可.

VHDL语言Process相关推荐

  1. VHDL语言入门整理

    1.2选1多路选择器 Library ieee; Use ieee.std_logic_1164.all; Entity L1 is Port ( a,b,s:in std_logic; y:out ...

  2. FPGA笔记:VHDL语言总结

    VHDL语言总结 前言 一. VHDL是什么? 1. 缩写 2. 作用 3. VHDL与原理图描述的比较 4. VHDL语言特点 5. 与其他语言比较 二.VHDL程序架构 VHDL基本结构 1. 实 ...

  3. (萌新的数电学习)用VHDL语言设计CPU

    一.目的: 完整.连贯地运用<数字逻辑>所学到的知识,熟练掌握 EDA 工具基本使用方法,为学习好后续<计算机原理>课程做铺垫. 二.设计内容 (一) 按照给定的数据通路.数据 ...

  4. 基于VHDL语言的状态机设计

    基于VHDL语言的状态机(FSM)设计 状态机(Finite State Machine,FSM) 状态机的组成:如图所示 状态机的种类: Mealy型:当前状态.当前输入相关 Moore型:仅当前状 ...

  5. 笔记:FPGA与VHDL语言学习2

    FPGA与VHDL语言学习2 目录 1. 7位2进制计数器程序,要求计算器从0开始计数,计数到59(十进制的59,看到的是二进制数)后归零,重新循环计数 2. 2位十进制计数器程序,要求计数器从00开 ...

  6. 笔记:FPGA与VHDL语言学习1

    FPGA与VHDL语言学习1 目录 1.EDA,fpga,asic 2.CPLD与FPGA 3.设计一个三选一FPGA程序 4.使用由半加器与全加器程序生成一个f_adder全加器图形模块.试用4个f ...

  7. vhdl计算机语言,vhdl语言编程实例.doc

    vhdl语言编程实例 实现各种逻辑功能: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENT ...

  8. VHDL语言的基本结构(结构框架说明)

    VHDL语言的基本结构 一.实体说明 主要描述的是一个设计单元的外部特征,即对外的输入/输出接口及一些用于结构体的参数定义. 规则一:建议将VHDL的标识符或基本语句关键词,以大写方式表示:而又设计者 ...

  9. D触发器的VHDL语言实现

    D触发器的VHDL语言实现 library ieee; use ieee.std_logic_1164.all; entity DFlip is port (clk,d:in std_logic;q: ...

最新文章

  1. 【HDOJ】4579 Random Walk
  2. linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
  3. Android AsyncTask简单用法
  4. linux 实时 网口 速率_Linux 命令行网络端口速度测试
  5. 2.2 基本算法之递归和自调用函数 1751 分解因数 python
  6. UVa 12657 - Boxes in a Line ( 双向链表 )
  7. Visual studio 2013安装及单元测试
  8. Spring4.x()--Spring整合Jdbc的HelloWorld
  9. r语言 不同长度 list 转 dataframe_解决R效率问题—parallel多线程启动
  10. java ee自学_自学JavaEE难度大不大?
  11. 从TextBox的升级看VB6与VB2010的不同~
  12. 谈谈CompoundButton的OnCheckedChangeListener
  13. Go学习笔记—定时器、打点器
  14. codeforces 337 D(树的直径性质)
  15. python 二进制的数为啥带0b?,怎样去掉0b?
  16. KubernetesAPI审计日志方案
  17. Vue 的渐进式是什么意思?
  18. Foxmail:完美配置QQ邮箱、163邮箱、Google邮箱
  19. 文字绕圆排列:vue
  20. 关于大数据的视频资料

热门文章

  1. Zcash:工作原理
  2. hdmi接口有什么用_(转)电视上各种各样的接口有什么用?你能知道几个?
  3. 上海纽约大学2020年本科招生简章正式公布,最优一本线!
  4. CPU和cache的区别、RAM和ROM的区别、常见的名称缩写
  5. 真空本质和对称性破缺
  6. Memory DFX特性
  7. Scriptable Render Pipeline-Baked Shadows
  8. C语言学习C程序设计——变量(详解)
  9. 分割数据集label转换为目标检测boundingbox
  10. 创客学院9天C语言五