文档详情

实验 QUARTUSII软件及状态机设计.ppt

发布:2018-01-22约2.93千字共24页下载文档
文本预览下载声明
组合逻辑 Not and or A = b and c; 等效于 A = b when c = ‘1’ else ‘0’; = 赋值符,右边赋值给左边。 D触发器 process(clk) if clkevent and clk = 1 then q = d; end if; end process; q 次态;d 激励 带异步复位的D触发器 process(rst,clk) if rst = 0 then q = 0; elsif clkevent and clk = 1 then q = d; end if; end process; rst 异步复位;q 次态;d 激励 计数器 if rst = 0 then q = (others = ‘0’); (所有比特位置0) elsif clkevent and clk = 1 then q = q +1; (左边的q是次态,右边的q是现态) end if; 模60计数器 if rst = 0 then q = (others = 0); elsif rising_edge(clk) then (注意这种描述方式) if q = 59 then q = (others = 0); else q = q +1; end if; end if; process内部顺序 process(rst,clk) if rst = 0 then q = 0; elsif clkevent and clk = 1 then q = d; if a = 1 then q = b; else q = q; end if; end if; end process; 你觉得上面这段代码中,q 到底在怎样变化? process内部顺序 process(rst,clk) if rst = 0 then q = 0; elsif clkevent and clk = 1 then if a = 1 then q = b; else q = q; end if; q = d; end if; end process; 本页中,q 到底在怎样变化? 状态机 在数字系统中,控制单元主要由状态机实现。 一个状态机就是一组触发器 状态机根据系统当前所处的不同状态,对输入和激励指向不同的次态。 SS就是这样一个状态机,对应于上页PPT图纸的Q1,Q0两个D触发器。 信息处理单元根据状态机的现态和输入,决定信息处理的算法。比如在东西通行的时候,60秒计数器才会计数。 最少几个触发器可以实现 计数器能不能共同使用一个? 请设计。 实验1 QUARTUSII软件及状态机设计 实验目的:学习FPGA设计软件 教学基本要求:掌握软件流程,掌握状态机编程 实验内容提要:设计一个状态机 状态机设计是数字电路中使用非常广泛和方便的时序设计工具。由于硬件是并行的触发,相对软件是串行执行,那么让硬件电路按照节拍执行串行操作指令就成为一个问题, 这就是状态机的主要功能。相应的,软件指令中的几十条简单顺序执行代码可能需要硬件的几十上百个触发器去实现其功能。所以,软件与硬件的设计思路有相当大的区别。 当然,随着FPGA规模的不断扩大,这些问题也越来越容易解决了。我们可以用软件的思路去描述自己的设计,可能最终实现的电路是几十万门级的器件,但是你只要花费几美元就能买到。状态机是数字电路的基础,因此,FPGA和VHDL语言的学习也从这个实验开始。 四个环节: 环节1 FPGA课件学习 40分钟 参见《数字系统设计与FPGA专题实验》 环节2 VHDL语言学习 20分钟 打开lab/lab1/sync.vhd 环节3 sync实验; 30分钟 lab/lab1/sync.vhd 环节4 红绿灯实验; 150分钟 lab/lab1/states 环节1 FPGA课件学习 40分钟 参见《数字系统设计与FPGA专题实验》 环节2 VHDL语言学习 20分钟 打开lab/lab1/step1/sync.vhd 环节2 VHDL语言学习 20分钟 VHDL语言结构 库文件 芯片输入输出定义(也可能是电路模块) 内部功能描述 内部功能描述分两部分 信号声明 布尔等式 process内部的按照逻辑条件互斥书写 有两类 1,if (逻辑条件成立) then elsif (逻辑条件成立) then else (该行根据情况可以没有,表示保持) end if; 2,case Q is when Q0 = when Q1 =
显示全部
相似文档