FPGA数字频率计设计方案报告_第1页
FPGA数字频率计设计方案报告_第2页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、封面 作者: PanHongliang 仅供个人学习 电子技术综合实验实验报班级:测控一班 学号: 2907101002 姓名:李大帅 指导老师:李颖 基于 FPGA 的数字频率计设计报告 系统整体设计 设计要求 : 1、被测输入信号:方波 2、 测试频率范围为:10Hz100MHz 3、 量程分为三档:第一档:闸门时间为 1S时,最大读数为999.999KHZ 第二档:闸门时间为 0.1S时,最大读数为 9999.99KHZ 第三档:闸门时间为 0.01S时,最大读数为 99999.9KHZ。 4、显示工作方式:a、用六位BCD七段数码管显示读数。 b、 采用记忆显示方法 c、 实现对高位无

2、意义零的消隐。 系统设计原理 : 所谓“频率”,就是周期性信号在单位时间 (1 秒)内变化的次数。若在一 定的时间间隔T内计数,计得某周期性信号的重复变化次数为 N,则该信号的 频率可表达为: f = N / T . 基于这一原理我们可以使用单位时间内对被测信号进行计数的方法求得对 该信号的频率测量,具体实现过程简述如下:首先,将被测信号(方波)加到闸门 的输入端。由一个高稳定的石英振荡器和一系列数字分频器组成了时基信号发 生器,它输出时间基准(或频率基准)信号去控制门控电路形成门控信号, 门控信号的作用时间 T 是非常准确的 (由石英振荡器决定 )。门控信号控制闸门 的开与闭,只有在闸门开通

3、的时间内,方波脉冲才能通过闸门成为被计数的 脉冲由计数器计数。 闸门开通的时间称为闸门时间,其长度等于门控信号作用时间 T。比如, 时间基准信号的重复周期为 1S,加到闸门的门控信号作用时间 T亦准确地等 于1S,即闸门的开通时间 一一闸门时间”为1S。在这一段时间内,若计数器 计得N=100000个数,根据公式f = N / T,那么被测频率就是 100000Hz。如果 计数式频率计的显示器单位为“ KHz ,贝U显示100.000KHZ,即小数点定位在第 三位。不难设想,若将闸门时间设为 T=0.1S,则计数值为10000,这时,显示 器的小数点只要根据闸门时间 T 的改变也随之自动往右移

4、动一位 (自动定位 ), 那么,显示的结果为 100.00Khz。在计数式数字频率计中,通过选择不同的闸 门时间,可以改变频率计的测量范围和测量精度。 系统单元模块划分 : 1) 分频器,将产生用于计数控制的时钟分别为 1HZ, 10HZ, 100HZ 脉冲 和1KHZ的用于七段显示数码管扫描显示的扫描信号。 2) 闸门选择器,用于选择不同的闸门时间以及产生后续的小数点的显示 3) 门控电路,产生用于计数的使能控制信号,清零信号以及锁存器锁存 信号。 4) 计数器,用于对输入的待测信号进行脉冲计数,计数输出。 5) 锁存器,用于对计数器输出数据的锁存,便于后续译码显示电路的对 数据进行记忆显示

5、,同时避免计数器清零信号对数据产生影响。 6) 译码显示,用于产生使七段显示数码管的扫描数字显示,小数点显示 的输出信号,同时对高位的无意义零进行消隐。 二、 单元电路设计 1、 分频器 : 该电路将产生四个不同频率的信号输出,因为电路板上给出了一个 48MHZ 的 晶振,所以我们只需要对 48MHZ 的信号进行适当分频即可得到我们所需的四个 不同频率的信号输出,我们设计一个输入为 48MHZ有四个输出端分别为 1HZ 10HZ和100H Z 1KHZ的分频器,原程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOG

6、IC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity fenpinqi is Port ( clk : in STD_LOGIC 。 clkout1 : out STD_LOGIC 。 clkout10 : out STD_LOGIC 。 clkout100 : out STD_LOGIC 。 clkout1K : out STD_LOGIC) 。 end fenpinqi 。 architecture Behavioral of fenpinqi is signal cnt1:integer range 1 to 24000000 。 si

7、gnal cnt10:integer range 1 to 2400000 。 signal cnt100:integer range 1 to 240000 。 signal cnt1K:integer range 1 to 24000 。 signal c1:std_logic 。 signal c2:std_logic 。 signal c3:std_logic signal c4:std_logic 。 begin process(clk)is begin if clkevent and clk=1 then if cnt124000000 then - 对 cnt1 进行计数,当 c

8、nt1 未计满后对其进行加 1 cnt1=cnt1+1 。 elsif cnt1=24000000 then -cnt1 计满后对其进行赋一,并且令 c1 进行翻转,然后将 c1 的值赋给 clkout1 c1=not cl。 -由于 48MHZ 勺的信号,前一半的时候 cl 为 0,则后一半是为 1,就完成了对信号进 行分频,产生了 1HZ 勺信号 cnt1=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and clk=1 then - 方法同上 if cnt102400000 then cnt10=

9、cnt10+1 。 elsif cnt10=2400000 then c2=not c2 。 cnt10=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and clk=1 then - 方法同上 if cnt100240000 then cnt100=cnt100+1 。 elsif cnt100=240000 then c3=not c3 。 cnt100=1 。 end if 。 end if 。 end process 。 process(clk)is begin if clkevent and

10、clk=1 then - 方法同上 if cnt1K24000000 then cnt1K=cnt1K+1 elsif cnt1=24000 then c4=not c4 。 cnt1K=1 。 end if 。 end if 。 end process 。 clkout1=c1 。 clkout10=c2 。 clkout100=c3 。 clkout1K clk, clkout1 = clkout1, clkout10 = clkout10, clkout100 = clkout100, clkout1K = clkout1K)。 tb : PROCESS BEGIN clk=0。 wai

11、t for 10 ps。 clk=1。 wait for 10 ps END PROCESS END。 对该模块进行仿真结果如下: 有上图可知分频器工作正常,产生的个信号也没有毛刺,结果十分理想。 2、闸门选择器: 在这个模块中我们有四个输出端和六个输入端,其中四个输出端中有一个是频率输 出端,是通过三个闸门选择开关输入和三个输入频率决定的,另外三个输出端则是用 来后面的小数点控制的,而六个输入端中的三个是上面分频器的三个输出 1HZ, 10HZ 和100HZ,另外三个是电路板上的拨动开关, 用来选择闸门, 控制输出。 其原程序和 分析如下: library IEEE 。 use IEEE.S

12、TD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity SELE is Port ( SE1 : in STD_LOGIC 。 SE10 : in STD_LOGIC 。 SE100 : in STD_LOGIC 。 F1HZ : IN STD_LOGIC。 F10HZ : IN STD_LOGIC 。 F100HZ :IN STD_LOGIC 。 FREF : out STD_LOGIC 。 DP1 : out STD_LOGIC 。 DP2 : out STD_LOGIC

13、 。 DP3 : out STD_LOGIC) 。 end SELE。 architecture Behavioral of SELE is begin PROCESS(SE1,SE10,SE100) IS BEGIN IF SE1=1 AND SE10=0 AND SE100=0 THEN FREF=F1HZ -当闸门控制在第一档的时候,令输出端输出 1HZ 输入端的输入,小数 点控制 dp1 有效,dp2,dp3 无效 DP1=0 。 DP2=1。 DP3=1。 END IF。 IF SE1=0 AND SE10=1 AND SE100=0 THEN FREF=F10HZ -第二档,输出为

14、 10HZ dp2 有效 DP1=1 。 DP2=0 。 DP3=1 END IF IF SE1=0 AND SE10=0 AND SE100=1 THEN FREF=F100HZ -第三档,输出为 100HZ dp3 有效 DP1=1 。 DP2=1。 DP3 SE1, SE10 = SE10, SE100 = SE100, F1HZ = F1HZ, F10HZ = F10HZ, F100HZ = F100HZ, FREF = FREF, DP1 = DP1, DP2 = DP2, DP3 = DP3。) tb : PROCESS BEGIN F1HZ=0。 FREF=0。 wait for

15、 100 ns。 F1HZ=1。 FREF=1。 WAIT FOR 100 NS END PROCESS END。 仿真结果如图: 有仿真结果可知闸门选择器工作正常,能够准确输出我们所需的信号。 3、门控信号: 在此模块中有一个输入端和两个输出端,输入端为上面的闸门选择器输出的频 率,两个输出端分别为计数器是能控制信号(锁存器控制信号),和计数器清零信 号。具体源程序即分析如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL en

16、tity CONTROLS is Port ( FREF : in STD_LOGIC 。 GAT : out STD_LOGIC 。 CLR : out STD_LOGIC) 。 end CONTROLS architecture Behavioral of CONTROLS is SIGNAL G1: STD_LOGIC:=0 S begin PROCESS(FREF) IS BEGIN IF FREFEVENT AND FREF=1 THEN G1=NOT G1S- 该过程对时钟信号又一次进行分频,产生出半个周期时间为 1 的控制信号,作为计数使 能,保证了时间的准确性 END IF S

17、 END PROCESSS PROCESS(FREF,G1) IS BEGIN IF FREF=0 AND G1=0 THEN效半个时钟时间后,对计数器清零 ELSE CLR=0 。 - 清零信号高电平有效 END IF 。 END PROCESS GAT=G。 -将 G1 赋给 gat 输出端,它是计数器的使能信号同时也是锁存器的锁存信号 end Behavioral 。 源文件编写完成后保存编译并生成图形文件符号如图: 仿真文件代码如下: LIBRARY ieee USE ieee.std_logic_1164.ALL USE ieee.std_logic_ un sig ned.a。 U

18、SE ieee.numeric_std.ALL。 ENTITY TBCON_vhd IS END TBCON_vhd。 ARCHITECTURE behavior OF TBCON_vhd IS COMPONENT CONTROLS PORT(FREF : IN stdog。 GAT : OUT std_logic。 CLR FREF, GAT = GAT, CLR = CLR。) tb : PROCESS BEGIN FREF=0。 WAIT FOR 100 NS FREF=1。 WAIT FOR 100 NS END PROCESS END。 对上面的文件进行仿真,结果如下: 由上图的仿真

19、结果可知,控制电路工作正常,输出信号稳定,很理想。同时我们 也可以看出来该模块对分频器的时钟输出的稳定性依赖十分严重,一旦分频器输出时 钟有毛刺,该控制信号将会完全的无效,这也是为什么我知道上面的分频器设计不是 最优的方案,却还是采用了上述方法的原因。 4、计数器: 该模块实现的功能是对输入信号脉冲的计数,并正确的输出结果和溢出。使用上面的 门控信号产生的 gat 信号控制计数器的使能端,以实现计数器的定时计数。该模块是 使用六个十进制计数器同步并联而成的,首先我们设计用于并联的十进制计数器,原 程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。

20、 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity CNT10 is Port ( CLK : in STD_LOGIC 。 CLR : in STD_LOGIC 。 ENA : in STD_LOGIC 。 CQ : out STD_LOGIC_VECTOR (3 downto 0) CO : out STD_LOGIC) 。 end CNT10。 architecture Behavioral of CNT10 is SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0):=0

21、00。0 循环计数 begin PROCESS(CLK,CLR) IS BEGIN IF CLR=1 THEN CQI=0000 。 行下述操作 ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN 理 IF CQI=1001 THEN CQI=0000 。 ELSE CQI=CQI+1 。 END IF。 END IF。 END IF。 END PROCESS CO = 1 when ena = 1 and cqi = 9 else 0 。 信号 - 当且仅当使能有效且计数为 9 时产生进位信号,进位信号 1 有效,同步并联时连高 end Behaviora

22、l 文件编写完成后保存编译生成图形文件符号,如上图: 创建图形文件 cnt6 并按照下图进行连接,保存后编译生成图形文件符号如图: 仿真文件代码如下: LIBRARY ieee USE ieee.std_logic_1164.ALL USE ieee.std_logic_unsigned.all USE ieee.numeric_std.ALL 。 ENTITY TBCNT10_vhd IS END TBCNT10_vhd ARCHITECTURE behavior OF TBCNT10_vhd IS COMPONENT CNT10 PORT(CLK : IN std_logic 。 CLR

23、: IN std_logic 。 -定义中间信号 CQI,用于数据输出的 -当 CLR 青零信号有效时使输出为 0000,无效时进 - 对时钟进行计数 - 判断使能信号,有效则进行计数,否则不作处 - 数据 09 循环,计满后重新回到 0 - 进位信号,最高位的仅为信号作为计数的溢出 CQ CLK, CLR = CLR, ENA = ENA, CQ = CQ, CO = CO)。 tb : PROCESS BEGIN CLK=0 。 wait for 100 ns 。 CLK=1 。 WAIT FOR 100 NS。 END PROCESS END。 仿真结果如图: 如仿真结果我们可以看出,该

24、模块运行正常,计数稳定,结果十分理想。 5、锁存器: 由于前面的计数器的输出为六组四位二进制数和一个溢出信号,所以我们使用的锁存 器也使用六个四位锁存器和一个一位锁存器。锁存器使用下降沿锁存,即当计数器的 使能信号变为无效的一瞬间我们令锁存器将数据锁存。四位锁存器的原代码如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity LATCH4 is Port ( CLK : in STD_LOGIC 。 DIN : in

25、STD_LOGIC_VECTOR (3 downto 0) 。 QOU : out STD_LOGIC_VECTOR (3 downto 0) 。 end LATCH4。 architecture Behavioral of LATCH4 is begin PROCESS(CLK,DIN) IS BEGIN IF CLKEVENT AND CLK=0 THEN - 当时钟信号下降沿时,实现锁存 QOU=DIN END IF。 END PROCESS end Behavioral 。 上述文件编写完成后保存编译生成图形文件符号如图: 再编写一位锁存器,源程序代码如下: library IEEE

26、。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity LATCH1 is Port ( CLK : in STD_LOGIC 。 DIN : in STD_LOGIC_VECTOR 。 QOU : out STD_LOGIC_VECTOR) 。 end LATCH1。 architecture Behavioral of LATCH1 is begin PROCESS(CLK,DIN) IS BEGIN IF CLKEVENT AND CLK=0 T

27、HEN - 当时钟信号下降沿时,实现锁存 QOU=DIN END IF。 END PROCESS end Behavioral 。 文件编写完成后保存编译生成图形文件符号,如图: 锁存完成后有六组四位二进制数和一个一位二进制数,所以我们队总线进行了合 并,即将六组四位数合并成一个二十四位数,合并程序如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity ADVOCATES is Port ( S0 : in STD_L

28、OGIC_VECTOR (3 downto 0) 51 : in STD_LOGIC_VECTOR (3 downto 0) 。 52 : in STD_LOGIC_VECTOR (3 downto 0) 。 53 : in STD_LOGIC_VECTOR (3 downto 0) 。 S4 : in STD_LOGIC_VECTOR (3 downto 0) 。 S5 : in STD_LOGIC_VECTOR (3 downto 0) 。 S6 : out STD_LOGIC_VECTOR (23 downto 0) 。 end ADVOCATES architecture Behavi

29、oral of ADVOCATES is begin S6(23 DOWNTO 20)=S。 -将总线的对应位进行连接 S6(19 DOWNTO 16)=S。 S6(15 DOWNTO 12)=S2 S6(11 DOWNTO 8)=S3 S6(7 DOWNTO 4)=S4 S6(3 DOWNTO 0)=S35 end Behavioral 3 文件编写完成后保存编译生成图形文件符号,如图: 创建该模块的顶层图形文件 LAT.sch 将上述个文件按照如图所示连接,保存编译 生成图形文件符号如图: 该模块的输入输出简单,无需仿真3 6、译码显示: 该模块实现的是对锁存器锁存的数据进行处理并显示输出

30、,以及小数点的不 同闸门的输出显示,以及电路板上七段显示译码管的扫描信号输出3其中对锁存 数据的处理包括溢出有效时的数据消除, 和对高位无意义零的自动消隐3首先我 们编写小数点控制的源文件代码: library IEEE 3 use IEEE.STD_LOGIC_1164.ALL3 use IEEE.STD_LOGIC_ARITH.ALL3 use IEEE.STD_LOGIC_UNSIGNED.AL3L entity POINTCON is Port ( SE1 : in STD_LOGIC 3 SE10 : in STD_LOGIC 3 SE100 : in STD_LOGIC 3 SEL

31、 : in STD_LOGIC_VECTOR (2 downto 0) 3 DP : out STD_LOGIC) 3 end POINTCON3 architecture Behavioral of POINTCON is begin PROCESS(SE1,SE10,SE100,SEL) IS BEGIN IF SE1=1 AND SE10=0 AND SE100=0 AND SEL=011 THEN DP=0 3 - 当为第一档时,令第四位的数码管的小数点点亮,其他的不亮 ELSIF SE1=0 AND SE10=1 AND SE100=0 AND SEL=010 THEN DP=0 3

32、 - 第二档时,第三位的数码管小数点点亮 ELSIF SE1=0 AND SE10=0 AND SE100=1 AND SEL=001 THEN DP=0 3 - 第三档时,第二位的小数点点亮ELSE DP=1 - 不符合上述三档时,小数点全部消隐 END IF END PROCESS end Behavioral 。 编写完成后保存编译生成图形文件符号如图: 再编写用于数码管扫描显示的的位选信号生成文件,其代码如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_L

33、OGIC_UNSIGNED.ALL entity CTRLS is Port ( CLK : in STD_LOGIC 。 SEL : out STD_LOGIC_VECTOR (2 downto 0) 。 end CTRLS。 architecture Behavioral of CTRLS is SIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0):=00。0 begin PROCESS(CLK) IS BEGIN IF CLKEVENT AND CLK=1 THEN -接入 1KHZ 勺时钟信号,使 CNT 进行循环计数,从 000 到 101 IF CNT=

34、”101”THEN CNT=”000”。 -计满则清零,不满则加一 ELSE CNT=CNT+1。 END IF。 END IF。 END PROCESS SEL=CNT -将 CNT 信号赋给 SEL 输出 end Behavioral 。 文件编写完成后保存编译生成图形文件符号如图: 再编写使高位无意义零自动消隐功能勺勺文件,源程序代码如下: library IEEE 。 use IEEE.STD_LOGIC_1164.ALL。 use IEEE.STD_LOGIC_ARITH.ALL。 use IEEE.STD_LOGIC_UNSIGNED.ALL entity DSELE is Por

35、t ( DP1: IN STD_LOGIC 。 DP2: IN STD_LOGIC。 DIN : in STD_LOGIC_VECTOR (23 downto 0) 。 QOU : out STD_LOGIC_VECTOR (23 downto 0) 。 end DSELE。 architecture Behavioral of DSELE is begin PROCESS(DP1,DP2,DIN) IS BEGIN IF DP1=0 AND DP2=1 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111。 Q0U(19 DOW

36、NTO 0)=DIN(19 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 0)=DIN(15 DOWNTQO) END IF。 END IF。 IF DP1=1 AND DP2=0 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 0)=DIN(19 DOWNTQO) EN

37、D IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 0)=DIN(15 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 12)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO

38、12)=1111。 QOU(11 DOWNTO 0)=DIN(11 DOWNTO. 0) END IF。 END IF. IF DP1=1 AND DP2=1 THEN IF DIN(23 DOWNTO 20)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 0)=DIN(19 DOWNTO.0) END IF. IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 16)=1111. QOU(15 DOWNT

39、O 0)=DIN(15 DOWNTO.0) END IF. IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 12)=0000 THEN QOU(23 DOWNTO 20)=1111. QOU(19 DOWNTO 16)=1111. QOU(15 DOWNTO 12)=1111. Q0U(11 DOWNTO 0)=DIN(11 DOWNTQO) END IF。 IF DIN(23 DOWNTO 20)=0000 AND DIN(19 DOWNTO 16)=0000 AND DIN(15 DOWNTO 1

40、2)=0000 AND DIN(11 DOWNTO 8)=0000 THEN QOU(23 DOWNTO 20)=1111。 QOU(19 DOWNTO 16)=1111。 QOU(15 DOWNTO 12)=1111。 QOU(11 DOWNTO 8)=1111。 QOU(7 DOWNTO 0)DATADATADATADATADATADATADATASEGSEGSEGSEGSEGSEGSEGSEGSEGSEGSEG=1111111 END CASE if 0VERIN=1 THEN - 判断溢出,若溢出则令输出全部不显示 SEG CLK, SEL = SEL) tb : PROCESS BE

41、GIN CLK=0 END。 结果如下: 有仿真结果我们可以看出程序运行正常,逻辑上没有任何问题。 至此所有的单元电路全部完成。 1、顶层文件: 创建图形文件FRYALL.sch按照下图连接各模块生成的图形文件符号,完成后保存编译。 2、管脚分配: 由系统的顶层文件可以看到该系统的输入端共有 5 个,输出端有 11 个,管脚分 配文件FRYALL.uc如下: NET CLKIN LOC = T8。 NET DCLK LOC = C16。 NET DP LOC = C11。 NET NECT LOC = D7。 NET SE1 LOC = L6 。 NET SE10 LOC = N5。 NET

42、SE100 LOC = L7。 NET SEG LOC = B14。 NET SEG LOC = A13。 NET SEG LOC = C13。 NET SEG LOC = C12。 NET SEG LOC = A12。 NET SEG LOC = B12。 NET SEG LOC = A11。 NET SEL LOC = F8。 NET SEL LOC = D8。 NET SEL LOC = E7。 3、下载过程: 光标移至【Gen erate Programi ng File】后单击鼠标右键,然后单击【 Properties】 在打开的对话框的左侧栏选中【 Configuration Op

43、tions】将右侧的Unused IOB Pins这一 项改为Pull Up,单击OK。在界面的左下角双击【 Gen erate Programi ng File】,软件将 自动对整个系统进行编译并生成可执行文件 FRYALL.b。将弹出的对话框关掉,双击 【Gen erate Prom, ACE,or JTAG File】在弹出的对话框中点击 Fin ish,在随后出现的对话 框中选择FRYALL.bit然后点击打开,在随后的对话框中点击 Bypass。右键单击左边图 标选择Program,在随后的对话框中单击 OK,文件将自动下载到开发板上,成功后, 接入函数发生器进行测试。 WAIT FOR 100 NS CLK=1。 WAIT FOR 100 NS END PROCESS 四、测试结果及结论 经过了前三步,最后我们将所完成的工程下载到了板子上,连接好函数发生器,并 设定好了函数发生器的输出信号电平( 5Vpp),就可以进行使用了。 最后结果显示程序工作正常,读数清晰稳定,完全符合开始时的要求。 误差分析: 我将函数发生器的频率调节到 999,999HZ时,频率计不显示,即产生了计 数溢出,然后我进行了进一步的调节,将函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论