实验一 实用计数器的VHDL设计
更新时间:2023-10-08 17:42:01 阅读量: 综合文库 文档下载
- 实验一小推荐度:
- 相关推荐
实验一 实用计数器的VHDL设计
一. 实验目的
熟悉quartusII的VHDL文本设计流程全过程,学习计数器的设计,仿真,进一步了解异步的概念。
二. 实验原理
实用的D触发器除含有时钟端CLK外,还含有异步清零端CLR和时钟使能端ENA。这里的异步并非时序逻辑的异步,而是指独立于时钟控制的复位控制端,在任何时候,只要CLR=’1’,此时D触发器的输出端即可清零,与时钟信号无关。
三. 程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS
PORT(CLK,RST,EN,LOAD:IN STD_LOGIC; DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC); END CNT10;
ARCHITECTURE BEHAV OF CNT10 IS BEGIN
PROCESS(CLK,RST,EN,LOAD)
VARIABLE Q : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
IF RST='0' THEN Q :=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF EN='1' THEN
IF(LOAD='0') THEN Q:= DATA; ELSE IF Q<9 THEN Q:=Q+1; ELSE Q:=(OTHERS=>'0'); END IF; END IF; END IF; END IF;
IF Q=\ ELSE COUT<='0'; END IF; DOUT <=Q; END PROCESS; END BEHAV;
四. 程序分析
该程序的进程语句中含有两个独立的IF语句。第一个IF语句是非完整性条件语句,因而将产生计数器时序电路;第二个IF语句产生一个纯组合逻辑的多路选择器。
五. RTL电路图
六. 工作时序图
通过对上图的观察可知:
(1) 当计数器使能EN为高电平时允许计数;RST低电平时计数器
被清零。
(2) 图中出现的加载信号LOAD由于是同步加载控制信号,其第一
个负脉冲恰好在CLK的上升沿处,故将5加载于计数器,此后由5到9,出现了第一个进位脉冲。由于LOAD第二个负脉冲未在CLK上升沿处,故没有发生加载操作,而第3,第4个负脉冲都出现了加载操作,这是因为它们都处于CLK上升沿处。
实验二 LPM计数器模块使用方法
一. 实验目的
熟悉调用quartusII中的LPM计数器,掌握流程的设置以及时序仿真。
二. 实验原理
掌握LPM计数器的调用方法,流程的测试,同类宏模块的一般使用方法及不同特性的仿真测试方法。
三. 设计过程
(1)LMP_COUNTER计数器模块文本调用
实验三 基于LPM的流水线乘法累加器设计
一.实验目的
熟悉调用quartusII中的LPM计数器,掌握流程的设置以及时序仿真。通过一个八位流水线乘法累加器的实例介绍顶层原理图工程,VHDL文本描述和宏功能块为原理图元件的输入和设计方法。
二.实验原理
通过TOOLS中的MegaWizard Plug- In Manager命令分别生成LPM加法器模块,乘法模块及寄存器模块。最后有序的将他们连接在一起构成八位乘法累加器顶层文件。
三.设计过程
(1)LPM加法器模块设置调用
begin
adda<='0'; lock_t<=lock; com:process(cs,eoc) begin case cs is when
s0=>ale<='0';
start<='0';oe<='0';lock<='0';next_state<=s1; when
s1=>ale<='1';
start<='1';oe<='0';lock<='0';next_state<=s2; when s2=>ale<='0'; start<='0';oe<='0';lock<='0'; if (eoc='1') then next_state<=s3; else next_state<=s2; end if; when
s3=>ale<='0';
start<='0';oe<='1';lock<='0';next_state<=s4; when
s4=>ale<='0';
start<='0';oe<='1';lock<='1';next_state<=s0; when
others=>ale<='0';
start<='0';oe<='0';lock<='0';next_state<=s0; end case; end process com;
reg:process(clk,rst) begin if rst='1' then cs<=s0;
elsif clk'event and clk='1' then cs<=next_state; end if;
end process reg;
latch1:process(lock) begin
if lock='1' and lock'event then regl<=d; end if; end process latch1; q<=regl; end behav;
实验九 序列检测器之状态机设计
一.实验目的
1、进一步熟悉和掌握Quartus软件的各模块功能的使用方法。 2、加深对VHDL语言的了解,熟悉VHDL语言的语法特点,深刻了解Quartus软件仿真中出现的各种问题并能加以解决。 3、学习使用和查看状态转换图。
二.实验原理
状态机用于序列检测器的设计比之其他方法更能显示其优越性。序列检测器可用于一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。
三.设计程序(见附录) 四.设计过程及结果分析
(1)产生的symbol
(2)时序波形图
(3)状态图
五. 附录
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS
PORT (DIN,CLK,RST:IN STD_LOGIC; SOUT:OUT STD_LOGIC); END SCHK;
ARCHITECTURE behav OF SCHK IS
TYPE states IS(s0,s1,s2,s3,s4,s5,s6,s7,s8); SIGNAL ST,NST: states :=s0; BEGIN
COM:PROCESS(ST,DIN) BEGIN CASE ST IS
WHEN s0=> IF DIN='1' THEN NST <=s1; ELSE NST<=s0; END IF;
WHEN s1=> IF DIN='1' THEN NST <=s2; ELSE NST<=s0; END IF; WHEN s2=> IF DIN='0' THEN NST <=s3; ELSE NST<=s0; END IF; WHEN s3=> IF DIN='1' THEN NST <=s4; ELSE NST<=s0; END IF; WHEN s4=> IF DIN='0' THEN NST <=s5; ELSE NST<=s0; END IF; WHEN s5=> IF DIN='0' THEN NST <=s6; ELSE NST<=s0; END IF; WHEN s6=> IF DIN='1' THEN NST <=s7; ELSE NST<=s0; END IF; WHEN s7=> IF DIN='1' THEN NST <=s8; ELSE NST<=s0; END IF; WHEN s8=> IF DIN='0' THEN NST <=s3; ELSE NST<=s0; END IF; WHEN OTHERS=>NST<=s0; END CASE; END PROCESS;
REG:PROCESS(CLK,RST) BEGIN IF RST='1' THEN ST<=s0; ELSIF CLK'EVENT AND CLK='1' THEN ST<=NST; END IF; END PROCESS REG;
SOUT<='1' WHEN ST=s8 ELSE '0'; END behav;
三.设计结果及分析
(1)生成symbol
(2)时序波形图
通过分析波形,进一步了解状态机的工作特性。需要注意,reset信号是低电平有效的,而clk是上升沿有效的,所以reset有效脉冲后的第一个时钟脉冲是第二个clk脉冲,第三个脉冲的上升沿后,现态c_st即进入状态S1.同时输出8,即“1000”。
(3)状态图
四.程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY FSM_EXP IS
PORT (CLK,reset :IN STD_LOGIC;
state_inputs :IN STD_LOGIC_VECTOR(0 TO 1); comb_outputs :OUT INTEGER RANGE 0 TO 15); END FSM_EXP;
ARCHITECTURE behav OF FSM_EXP IS TYPE FSM_ST IS (s0,s1,s2,s3,s4); SIGNAL c_st,next_state:FSM_ST; BEGIN
REG:PROCESS (reset,clk) BEGIN IF reset='0' THEN c_st<=s0;
ELSIF CLK='1' AND CLK'EVENT THEN c_st <=next_state; END IF; END PROCESS REG;
COM:PROCESS ( c_st,state_inputs) BEGIN CASE c_st IS
WHEN s0=> comb_outputs <=5;
IF state_inputs =\ ELSE next_state <=S1;END IF; WHEN s1=> comb_outputs <=8;
IF state_inputs =\ ELSE next_state <=S2;END IF; WHEN s2=> comb_outputs <=12;
IF state_inputs =\
ELSE next_state <=S3;END IF; WHEN s3=> comb_outputs <=14;
IF state_inputs =\ ELSE next_state <=S4;END IF;
WHEN s4=> comb_outputs <=9;next_state <=S0; WHEN OTHERS=> next_state <=S0; END case; END PROCESS COM; END behav;
实验八 ADC采样控制设计及多进程结构状态机
一.实验目的
1、进一步熟悉和掌握Quartus软件的各模块功能的使用方法。 2、加深对VHDL语言的了解,熟悉VHDL语言的语法特点,深刻了解Quartus软件仿真中出现的各种问题并能加以解决。 3、学习使用和查看状态转换图
二. 实验原理
本设计中的组合过程可以分为两个组合进程:一个负责状态译码和状态转换,另一个负责对外控制信号输出,从而构成一个三进程结构的有限状态机,其功能与前者一样,但程序结构更加清晰,功能分工更加明确。Moore型状态机的输出仅为当前状态的函数,这类状态机在你输入发生变化时还必须等待时钟的到来,时钟使状态发生变化时才
导致输出的变化,所以比Mealy机要多等待一个时钟周期。
三. 设计程序
见附录
四. 设计结果及分析
(1)生成symbol
(2)时序波形图
上图显示了一个完整的采样周期。复位信号后即进入状态s0,第二个时钟上升沿后,状态机进入状态s1(即cs=s1),由start、ale发出启动采样和地址选通的控制信号。之后,eoc由高电平变为低电平,0809的8位数据输出端呈现高阻态“ZZ”。在状态s2,等待clk数个时钟周期之后,eoc变为高电平,表示转述结束。
(3)状态图
五.附录
library ieee;
use ieee.std_logic_1164.all; entity ADC0809 is
port(d:in std_logic_vector(7 downto 0); clk,rst:in std_logic; eoc :in std_logic; ale :out std_logic; start,oe:out std_logic; adda,lock_t:out std_logic;
q :out std_logic_vector(7 downto 0)); end ADC0809;
architecture behav of ADC0809 is type states is(s0,s1,s2,s3,s4); signal cs,next_state:states:=s0;
signal regl :std_logic_vector(7 downto 0); signal lock :std_logic;
正在阅读:
实验一 实用计数器的VHDL设计10-08
高中数学必修四 第3章 三角恒等变换 范永凯精品习题03-01
水深而流缓,人贵而语迟08-02
小学数学五年级下册第三单元测试题(人教)04-19
玻璃棉板和岩棉板在外墙外保温系统中应用关键技术研究05-23
Btzwgva股指期货交易规则12-28
English song01-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 计数器
- 实验
- 实用
- 设计
- VHDL
- 中国陆基中段反导系统评析
- 福建优秀企业及企业家名单部分
- 校园网规划与设计 - 1毕业论文
- 2018残联年终工作总结
- 气液两相流与沸腾传热笔记-李双双
- 钦州市环境保护局 - 图文
- 质量控制图
- 一建学习讲义
- 02221021关于印发当涂县国民经济和社会发规划的通知(1)
- 中西跨文化交际课程情景案例分析
- 物理化学思考题 - 傅献彩
- 《职业生涯规划与就业创业》期末试卷
- 建筑工程劳务分包招投标程序及管理办法
- 沉井(湿沉)施工方法
- 荆轲刺秦王 英语剧本(整理版)2
- 在全市信访暨社会矛盾纠纷调处工作会议上的讲话
- 洛阳理工学院2015年毕业生就业质量报告
- 5800程序线元及隧道超欠挖
- 如何使用八爪鱼批量下载网页
- 西藏重点项目-民族手工业加工基地项目可行性研究报告