版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种基于状态机设计的串并行转换电路摘要:利用有限状态机等设计一种将ltc1196(adc)的串行输出数据转换成并行数据的转换电路, adc的时钟由转换电路提供,cs信号由转换电路处理后提供给adc,以保证ltc1196的时序要求。编好的程序在quartus ii上调试并仿真通过,实现了把八位的串行数据转换成并行数据的目的。关键词:有限状态机;ltc1196(adc);串并行转换 abstract: by using finite state machine to design a conversion circuit which can change the serial data into
2、parallel data, the serial data is the output of ltc1196(adc). the clock of the conversion circuit is provided by the clock of adc. cs signal is provided to adc after processing by conversion circuit, to ensure the schedule requiring of ltc1196. the edited program was debugging in quartus ii and runn
3、ing well. the end realized the goal of converting the serial data to 8 bits parallel data.keywords: fsm; tc1196(adc); converting serial to parallel 引言:有限状态机在vhdl语言中有着广泛的应用,许多实际问题都是通过状态机来实现的,尤其是同步时序逻辑电路的设计。有限状态机把复杂的控制逻辑分解为有限个稳定状态,在每个状态上判断所发生的事件,将连续处理变成离散处理,特别适合于vhdl数字系统设计的工作特点。同时,因为有限状态机具有有限个状态所以在实际的
4、工程应用中很容易实现。本文就是充分利用有限状态机的特点设计一种把串行输出数据转换为并行数据的电路。这个串行输出的数据由ltc1196(adc)提供。ltc1196的时钟是由设计的转换电路提供,并且经过转换电路处理后把cs信号提供给ltc1196以满足其时序的要求。1 有限状态机 有限状态机(finite state machine)主要用于顺序逻辑电路的建模,在顺序逻辑电路设计中,因不同阶段具有明确的顺序状态,所以其显得非常有用。图1是一个状态机的基本结构。有限状态机的主要功能是用来实现一个数字电路设计的控制部分,其功能和cpu的功能十分相似。在进行数字系统的电路设计时,如果考虑实现一个控制功
5、能,通常会选择状态机或者是cpu来实现,但是在执行耗费时间和执行时间的确定性方面,状态机要比cpu好。 有限状态机可以有多种不同的描述方式。描述状态机的vhdl代码必须遵守一定的规则。(1) 至少要包括一个用来指定状态机状态的状态信号;(2) 状态转移指定和输出指定,它们对应于控制单元中与每个控制步有关的转移条件;(3) 用来进行同步的时钟信号;(4) 复位信号。使用枚举数据类型来定义状态机的状态,并使用多进程方式来描述状态机的内部逻辑,可以得到高效、可综合的vhdl状态机描述。状态变量不能是接口或端口信号,而且状态变量的操作只限于等于或不等于的比较操作。在描述有限状态机的过程中常使用的描述方
6、式有单进程方式、双进程方式和三进程方式。三进程方式就是将有限状态机的次态逻辑、状态寄存器和输出逻辑分别使用三个进程来描述。这种描述方式可以把状态机的组合逻辑部分和时序逻辑部分分开,有利于对状态机的组合逻辑部分和时序逻辑部分分别进行测试。双进程描述方式是将有限状态机的次态逻辑、状态寄存器和输出逻辑分别用两个进程来描述。同样一个单进程描述方式就是将有限状态机的次态逻辑、状态寄存器和输出逻辑使用一个进程来描述。输入状态译码器(组合逻辑)状态寄存器(时序逻辑)输出译码器状态图1 状态机的基本结构2 ltc1196(adc)ltc1196是一个8位、1msps 、3线高速串行低功耗ad 转换器,模拟信号
7、输入范围05v。内含采样和保持电路,具有高阻抗方式的串行接口,完成一次转换需要12个时钟周期。下图2就是ltc1196(adc)。 05v模拟输入输出数据到asic,pld,mpu,dsp或移位寄存器图2 ltc1196(adc)由图2知ltc1196能够把05v范围的模拟信号转换为数字信号,可以使转换后的数据连接到asic,pld,mpu,dsp或移位寄存器等。本文设计的电路就是在每个转换周期内把输出的数字信号相当于存在一个移位寄存器中,当8位的数据转换完成时就把这8位的数据一次性的输出,从而达到使这些串行数据转化为并行数据的目的。此芯片的控制信号时序图如图3所示。图3中的cs为片选信号,低
8、电平有效,它的下降沿离上一个clk上升沿至少13ns,离下一个clk上升沿至少26ns(建立时间);clk为时钟信号,cs低电平后,约经过2.5个clk开始输出转换结果的最高位,所以单次转换不少于12个时钟频率,且时钟频率不得高于12mhz。图3 ltc1196控制信号时序图由图3 ltc1196的控制信号时序图可以看出在cs高电平变为低电平后大约经过三个时钟周期开始输出转换后的高位数据,到第11个时钟周期结束时正好8个数据输出完,此时cs由低电平变为高电平,准备下一个时钟周期数据的输出。在cs处于高电平状态时,输出都是高阻信号,在每12个时钟周期的第一个到第二个周期是没有任何的数据输出的。在
9、充分了解了ltc1196的控制信号时序图之后就可以编写vhdl语言来实现把ltc1196在每12个时钟周期内输出的8位数据进行输出,因为ltc1196输出的是串行数据这样就可以达到这8位数据的并行输出。下图4是该实现电路设计时用到的状态机的状态图。count< 9cs=0count=1st2st1st0resetcs=1cs=0count >1count=10图4 状态图由时序图可知从cs的下降沿开始的第三个周期开始有数据输出,此时输出的是8位数据中的最高位,在接下来的8个时钟周期中把这8位数输完,也就是计数count从0010计到1001,在计数到1010时转换到状态st0,如上
10、图所示,当计到1011时此时12个周期计满,并且在reset=1的条件下把这个8位数据输出。然后再进入下一个串行数据的输出。3 仿真把编好的程序运行在quartus ii上,本程序采用的三进程的有限状态机描述方式。仿真的结果如下图5所示。此仿真图是取一次转换即12个时钟周期的数据转换结果。其中的ltc1196out是ltc1196的输出,在仿真的时候任意设置其取值,从仿真结果上可以看出当计数到1010时开始有数据输出,计到1011时,整个数据便输出,然后再接着下一组数据的输出。由程序设计可知当计数为0010时开始输出数据的最高位,从图5中可知在这个12时钟周期中,第三个时钟周期的下降沿ltc1
11、196out处于高电平,而输出的最高位为1,在接着往下的每个时钟周期的下降沿ltc1196out依次是1110100,输出的也是1110100。所以此程序设计是正确的,达到了把8位串行数据并行输出的目的。4 结束语本文利用有限状态机等完成了把ltc1196(adc)的串行输出数据转换成并行数据的转换电路。并且通过实验仿真实现了8位串行到并行的输出。结果验证是正确的。通过本次设计对有限状态机有了一个比较深刻的理解,同时也加深了对quartus ii的熟悉和使用,对于以前没有接触过vhdl和quartus ii的我是一个很好的锻炼机会。但是对有限状态机和quartus ii仍然还有很多地方要学习,
12、希望在以后的学习和锻炼中进一步提高。参考文献1 江思敏数字电路及系统设计机械工业出版社,2006,1561752 侯伯亨等现代数字系统设计西安电子科技大学出版社,20043 齐洪喜等vhdl电路设计实用教程清华大学出版社,2004,192197所用的代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity liu isport(ltc1196out: in std_logic; clk:in std_logic; cs:out std_logic; y:out std_logic_v
13、ector(7 downto 0) );end liu;architecture behav of liu istype state is (st0,st1,st2);signal current_state,next_state:state;signal reset:std_logic;signal a:std_logic ;signal q:std_logic_vector(7 downto 0);signal count:std_logic_vector(3 downto 0);begincom:process (current_state ) begin case current_st
14、ate is when st0=> -q<="zzzzzzzz" reset<='1' cs<='1' ; next_state<=st1; when st1=> reset<='0' cs<='0' if(count="0001") then next_state<=st2; else next_state<=st1; end if; when st2=> if(count<="1001") the
15、n cs<='0' reset<='0' next_state<=st2; end if; if(count="1010") then next_state<=st0; reset<='0' cs<='0' end if; end case; end process com;reg:process(clk) begin if(clk'event and clk='0') then if(reset='0') then count<
16、=count+1; else count<="0000" end if; a<=ltc1196out; current_state<=next_state; end if; end process reg;count1:process(count) begin if(count="0010") then q(7)<=a; elsif(count="0011") then q(6)<=a; elsif(count="0100") then q(5)<=a; elsif(count="0101") then q(4)<=a; elsif(count="0110") then q(3)<=a; elsif(count="0111") th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 闲置物品交易模式-洞察分析
- 压力管理培训方法-洞察分析
- 网络化环境监测系统设计-洞察分析
- 云服务高可用性保障-洞察分析
- 冶金固废资源化制备新材料-洞察分析
- 预测模型与优化策略-洞察分析
- 双氯芬酸钾炎症抑制机制-洞察分析
- 2025年粤教沪科版选修4历史下册阶段测试试卷
- 2024年枣庄市中医医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年05月广东东莞银行东莞分行招考笔试历年参考题库附带答案详解
- 《苏宁电器的内部控制与评价研究》18000字(论文)
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之12:“6策划-6.1应对风险和机遇的措施”(雷泽佳编制-2025B0)
- 《IT企业介绍》课件
- 2024年研究生考试考研思想政治理论(101)试卷及解答参考
- 年终奖发放通知范文
- 油田员工劳动合同范例
- Unit 5 Music Listening and Talking 说课稿-2023-2024学年高一英语人教版(2019)必修第二册
- 《临床检验仪器与技术》考试复习题库(含答案)
- 04S519小型排水构筑物(含隔油池)图集
- 三年级上册《劳动》期末试卷及答案
- 人工智能概论PPT全套完整教学课件
评论
0/150
提交评论