基于fpga的等精度频率计的设计与实现毕业论文(编辑修改稿)内容摘要:
if。 基于 FPGA 的等精度频率计的设计与实现 16 end if。 if t=1001 then i=1。 else i=0。 end if。 end process。 end decade。 程序说明:此程序为十进制加法计数器,整个计数器的工作方式是在时钟脉冲信号上升沿之际,计数值就会加 1,且计数器的计数范围是 0~ 9(即十进制的 0~9)。 计数器的仿真波形如下图: 图 计数器仿真波形图 计数器仿真波形说明:计数器的复位信号( reset)为零和使能信号( en)置一时钟的上升沿时,计数器开始计数,当计数达到九以后且在时钟的上升延, co由低电平变为 高电平,但由于信号的传输延迟, co 产生了延迟。 ( 2)脉冲产生的 VHDL 程序: library ieee。 use。 entity onepluse is port(apluse,clk,reset: in std_logic。 blevel: out std_logic)。 end onepluse。 architecture s_machine of onepluse is type state_type is(first,second,third)。 signal state: state_type。 begin 基于 FPGA 的等精度频率计的设计与实现 17 process(clk) begin if( reset=39。 139。 )then state= first。 elsif clk39。 event and clk=39。 139。 then case state is when first= if apluse=39。 139。 then state=second。 end if。 when second= if apluse=39。 139。 then state=third。 end if。 when third= if apluse=39。 139。 then state=third。 end if。 end case。 end if。 end process。 with state select blevel=39。 139。 when second, 39。 039。 when others。 end s_machine。 脉冲取样器的程序说明:这个程序的作用是产生计数器所需要的闸门时间,它经过 10 位计数器分频后的方波作为输入,在时钟脉冲的控制下,产生一定时间的脉冲作为闸门信号。 脉冲取样器的波形仿真: 基于 FPGA 的等精度频率计的设计与实现 18 图 脉冲取样器的波形仿真图 ( 3)仿真结果说明:该程序所产生的输出脉冲 blevel 恰好是输入方波 apluse 的一个周期,且方波 apluse 须与时钟 clk 保持一定的同步,这样才能使输出达到所需要的要求。 Reset 是复位信号,在 reset=1 时,输出清零, reset=1 时输出为一定时间的脉冲。 闸门 闸门是由控制器控制一个四路选择器,从而选择实际信号,作为取样脉冲。 而时基信号的产生是由 10 分频程序( ctmn10)和 onepluse 脉冲产生程序所生成的电路模块组成。 (1) 四路选择器的 VHDL 程序: library ieee。 use。 entity mux4 is port(s: in std_logic_vector(1 downto 0)。 a0,a1,a2,a3:in std_logic。 y :out std_logic)。 end mux4。 architecture haves of mux4 is begin y=a0 when s=00 else a1 when s=01 else 基于 FPGA 的等精度频率计的设计与实现 19 a2 when s=10 else a3 when s=11。 end haves。 ( 2) 四路选择器的程序说明:此模块是为了根据相应的被测频率的大小来选择适当的闸门时间,扩大频率的测量范围和测量精度。 ( 3) 四路选择器的波形仿真:如下图: 图 四路选择器波形仿真图 (4) 波形仿真说明:选择器是由选择信号 s 的状态来选择输入信号,当 s为 0、 时, 其输入信号分别是 a0、 a a a3。 然后由 y 输出其选择的信号。 ( 5)时基信号产生的电路由 10 分频程序( ctmn10)和 onepluse 脉冲产生程序所生成的电路模块组成。 其图如(附图)等精度频率计原理图所示: 原理图说明:以 4KHZ 时钟为本电路的基准频率,基准时钟 CLK 进入 T 触发器(保证与时钟同步)产生上述 onepluse 程序所要的 apluse 周期为 的脉冲,同时用 10分频模块产生周期分别为 , 脉冲。 这样即产生了所需要的闸门时间。 这是利用层次化设计思想,能很好的利用已编译 好的模块,避免重复编程,减小工作量。 计数器的电路设计 ( 1)计数器 是用来记录被测信号在闸门时间内的脉冲个数。 从而测出频率。 它 的电路可由计数器基本模块组成。 其图如(附图)等精度频率计原理图所示: ( 2) 原理图说明:计数器是由 8 个十进制计数模块( ctmn10)和 T 触发器组成, CLK 作为被测频率的输入端, EN 为使能端,当 enable(EN)=‘ 1’时,计数器计数,当 enable(EN)=‘ 0’时,计数器停止计数。 每一个 ctmn10 模块的 CO 输出端作为下一个 ctmn10 的使能端,因 CO 是 CLK 的十分频, 即在第二个计数模块时每个脉冲计一次数,所以它的计数结果作为可计数器的十分位,同理,第三个计数模基于 FPGA 的等精度频率计的设计与实现 20 块的计数可作为计数器的百位,依此类推。 其输出 CO 若有高电平输出,则表明计数结果超过 ,计数器计数溢出。 两个 D触发器的作用是为了保证输出COUT 与 fx的同步和防止毛刺等误输出信号,让控制器能及时发出控制信号。 此计数器是频率计数器的主要模块,使能端 enable 的脉冲是由一模块提供的闸门信号经四选一的四位选择器选择出的信号,可选的信号的脉冲宽度分别为 ,和。 锁 存器的电路设计 锁存器是把计数器的计数结果锁入锁存器,不会由于周期性的清零信号 reset对计数器进行清零,为下 1S 的计数操作准备。 锁存器的 VHDL 程序: library ieee。 use。 entity reg32 is port(ld,reset: in std_logic。 d : in std_logic_vector(31 downto 0)。 qnum : out std_logic_vector(31 downto 0))。 end reg32。 architecture s_haves of reg32 is begin process(ld) begin if reset=39。 139。 then qnum=00000000000000000000000000000000。 elsif ld39。 event and ld=39。 139。 then qnum=d。 end if。 end process。 end s_haves。 锁存 器的程序说明:该锁存器的锁存时间由输入 ld 控制,每当 ld 发生一次脉冲跳变(上升沿),输出端 qnum 变化一次。 在此上频率计数器中 ld 由计数模块提基于 FPGA 的等精度频率计的设计与实现 21 供,即 clk1s 输出端。 此脉冲的频率为 1S。 也就是说,锁存器锁存数据的时间至少应为 1s。 这样就保证了有足够的显示时间。 . 5 显示电路设计 计数器中记录的结果通过锁存器锁存后,由下载板上的七段数码管显示输出。 只要将锁存器中的输出接到数码管相应的管脚上,计数的每一位都由数码管显示,然后小数点由二极管显示,从而确定记录结果。 控制电路的设计 控制电路由一个 控制器来完成,它能根据外围部件的状态,发出相应的控制信号,使系统正常运转,根据要求来可用状态机来描述。 其状态转移图如下。 Reset Start_100k Start_10k Start_1k ldt=’1’ ldt=’1’ ldt=’1’ ldt=’1’ ldt=’1’ ldt=’1’ F100k_t F10k_t F1k_t Cntover=’1’ tover=’1’ tover=’1’ F100k_over F10k_over F1k_over Cnthis0=’1’ this0=’1’ this0=’1’ F100k_low F10k_low F1k_low 图 控制器状态转换图 控制器的 VHDL 程序: library ieee。 use。 entity control is port(clk,reset:in std_logic。 tover,this0,ldt,t1some:in std_logic。 基于 FPGA 的等精度频率计的设计与实现 22 sel_std_f :out std_logic_vector(1 downto 0)。 clear,fxover :out std_logic。 hundot,tendot,unitdot :out std_logic)。 end control。 architecture s_have of control is type state_type is(start_f100k,f100k_over,f100k_low,f100k_t, start_f10k,f10k_over,f10k_low,f10k_t, start_f1k,f1k_over,f1k_low,f1k_t)。 signal state:state_type。 begin process(clk) begin if reset=39。 139。 then state=start_f10k。基于fpga的等精度频率计的设计与实现毕业论文(编辑修改稿)
相关推荐
时序 模块 、 模拟前端处理 器 ( AFE) 配置时序 模块、内部缓存 RAM 模块以及总体控制模块的设计。 在以上硬件和软件设计完成 并仿真通过 后,利用 EDA 工具 对 FPGA 进行 配置下载。 硬件调试完成后,对整个图像采集系统进行实物联机调试。 西南科技大学本科生毕业论文 5 第 2 章 系统总体设计 系统总体结构 图像采集系统主要由照明系统、线阵 CCD 图像 传感器、
④ ,门控信号的作用时间 T 是非常准确的 (由石英振荡器决定 )。 门控信号控制闸门的开与闭,只有在闸门开通的时间内,方波脉冲 ② 才能通过闸门成为被计数的脉冲 ⑤ 由计数器计数。 闸门开通的时间称为闸门时间,其长度等于门控信号作用时间 T。 比如,时间基准信号的重复周期为 1S,加到闸门的门控信号作用时间 T 亦准确地等于 1S,即闸门的开通时间 ——“闸门时间 ”为 1S。 在这一段时间内
,总体上说 AT 指令有四种形式: (1)“ AT+Cxxx=?”为测试命令 (Test Command),执行此种命令将返回此命令所支持的参数及参数范围; (2)“ AT+Cxxx?”为读命令 (Read Command),执行此种命令将返回此命令当前的参数值; (3)“ AT+Cxxx=„ ”为写命令 (Write Command),执行此种命令将设置此命令的参数值; (4)“
OM。 ( 3) FPGA 的编程数据不便于保密。 EDA 设计流程 图 是基于 EDA 软件的 FPGA/CPLD 开发流程框图,以下将分别介绍各 设计模块的功能特点。 对于目前流行的 EDA 工具软件, 图 的设计流程具有一般性。 原 理 图 / H D L 文 本 编 辑综 合F P G A / C P L D适 配时 序 仿 真F P G A / C P L D编 程 下 载F P G
字转换器,可将得到的与时间间隔成正比的电压 Vcap 转换成数字量。 采用这种方法式,可以做出分辨率很高的时间数字转换器。 然而电流积分点对噪声的敏感度高,且动态范围不够大。 由于电容所能达到的最大电压是确定的,如果要增加测量的动态范围,唯一的途径就是通过减小充电电流或增大电容来改变测量的比例常数。 但是单纯的增大电容和减小充电电流不仅受噪声的影响大,而且受电容制作工艺的限制,误差也将增大。 图
片可以进行流畅的开发、校验。 FPGA 特别适用于正向设计,即从电路原理图或各种硬件描述语言到芯片成品的设计,在这些设计流程中,设计人员对特别底层的硬件知识并不需要特别的了解和掌握,完全可以从功能应用出发,根据任务需求,自顶向下地进行电路设计。 下面我们来看看 FPGA 的设计流程, Quartus II 环境下的 FPGA 设计过程主要包括 5 个步骤: ●设计输入 运用电路原理图输入、