eda频率计课程设计
A. EDA课程设计 数字频率计
这个是FPGA实现的吧?
还是纯数电的东西啊?
B. 求 用eda的毕业设计数字频率计
内容:利用EDA技术设计并制作一台数字频率计。测量范围:1Hz~99.999KHz,分频1Hz。
方法:分模块设计,采用自底向上的文法。
找我我会,腾讯一
四
二
一
七
一
五
五
三
八
C. EDA课设,0-99999Hz的频率计,测方波频率,给的基波频率为1KHz.
我有。是我帮别人做的毕业论文。100元。
D. 关于EDA的频率计设计问题主要是周期怎么测量各位高手指点一下。。谢谢
呵呵呵。。。
这个是一个开放性设计性的实验课题啊 。、你不是要测量周期么。。
我做过一个关于显示秒表,测量周期的。。。给你我调试过的程序参考
一下,希望对你有所帮助。。
哥们祝你好运~~~~
1.分频器代码:
将2.5MHz脉冲变成100Hz
library ieee;
use ieee.std_logic_1164.all;
entity div is
port(clr,clk: in bit;q: buffer bit);
end div;
architecture a of div is
signal counter:integer range 0 to 12499;
begin
process(clr,clk)
begin
if (clk='1' and clk'event) then
if clr='1' then
counter<=0;
elsif counter=12499 then
counter<=0;
q<= not q;
else
counter<=counter+1;
end if;
end if;
end process;
end a;
2.十进制计数器代码:
原理为加法计数器,计数十时由cout进位
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count10 is
port(clr,start,clk: in bit;
cout: out bit;
ut: out std_logic_vector(3 downto 0));
end count10;
architecture a of count10 is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk,clr)
begin
if clr='1' then
temp<="0000";
cout<='0';
elsif (clk'event and clk='1') then
if start='1' then
if temp>="1001" then
temp<="0000";
cout<='1';
else
temp<=temp+1;
cout<='0';
end if;
end if;
end if;
ut<=temp;
end process;
end a;
3.六进制计数器代码:
原理为加法计数器,计数六时由cout进位。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;entity c6 is
port(clr,start,clk: in bit;
ut: out std_logic_vector(3 downto 0);
cout: out std_logic);
end c6;architecture a of c6 is
signal temp:std_logic_vector(3 downto 0);
begin
process(clk,clr)
begin
if clr='1' then
temp<="0000";
cout<='0';
elsif (clk'event and clk='1') then
if start='1' then
if temp>="0101" then
temp<="0000";
cout<='1';
else
temp<=temp+1;
cout<='0';
end if;
end if;
end if;
end process;
ut<=temp;
end a;
4.报警器代码:
当记时到一小时时,报警器报警,并响十声。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;entity alarm1 is
port(clk, I:in std_logic;
q:out std_logic);
end alarm1;ARCHITECTURE a OF alarm1 IS signal n:integer range 0 TO 20;
signal q0 :std_logic;
beginprocess(clk)
begin
if(clk='1'and clk'event) then
if i='0' then
q0<='0';
n<=0;
elsif (n<=19 and i='1') then
q0<=not q0;
n<=n+1;
else
q0<='0';
end if;
end if;
end process;
q<=q0;
END a;
5.数据选择和数码管选择模块代码:
其功能是选择个计数端口来的数据,当相应的数据到来时数据选择器选择器数据后输出给数码管,并由数码管显示。
library ieee;
use ieee.std_logic_1164.all;
USE ieee.std_logic_UNSIGNED.all;entity seltime is
port(clr,clk: in bit;
dain0,dain1,dain2,dain3,dain4,dain5: in std_logic_vector(3 downto 0);
sel: out std_logic_vector(2 downto 0);
ut: out std_logic_vector(3 downto 0));
end seltime;architecture a of seltime is
signal temp:integer range 0 to 5;
begin
process(clk)
begin
if (clr='1') then
ut<="0000";
sel<="000";
temp<=0;
elsif (clk='1'and clk'event) then
if temp=5 then temp<=0;
else temp<=temp + 1;
end if;
case temp is
when 0=>sel<="000";ut<=dain0;
when 1=>sel<="001";ut<=dain1;
when 2=>sel<="010";ut<=dain2;
when 3=>sel<="011";ut<=dain3;
when 4=>sel<="100";ut<=dain4;
when 5=>sel<="101";ut<=dain5;
end case;
end if;
end process;
end a;
6.数码管驱动模块代码:
数码管驱动电路,驱动数码管发光。
library ieee;
use ieee.std_logic_1164.all; entity deled is
port(num:in std_logic_vector(3 downto 0);
led:out std_logic_vector(6 downto 0));
end deled ; architecture a of deled is
begin
process(num)
begin
case num is
when"0000"=>led<="0111111";-----------3FH
when"0001"=>led<="0000110";-----------06H
when"0010"=>led<="1011011";-----------5BH
when"0011"=>led<="1001111";-----------4FH
when"0100"=>led<="1100110";-----------66H
when"0101"=>led<="1101101";-----------6DH
when"0110"=>led<="1111101";-----------7DH
when"0111"=>led<="0100111";-----------27H
when"1000"=>led<="1111111";-----------7FH
when"1001"=>led<="1101111";-----------6FH
when others=>led<="0000000";-----------00H
end case;
end process;
E. 4位数字频率计课程设计(EDA原理图)
F. EDA设计一频率计
THEN
IF ena = '1' THEN
IF CQI<9 THEN CQI:=CQI+1;
ELSE CQI:=0;
END IF;
END IF;
END IF;
IF CQI=9 THEN COUT<='1';
ELSE COUT<='0';
END IF;
outy<=CQI;
END PROCESS;
END a;
library ieee;
use ieee.std_logic_1164.all;
entity reg4b is
port(load:in std_logic;
din:in std_logic_vector(3 downto 0);
dout:out std_logic_vector(3 downto 0));
end reg4b;
G. 求EDA频率计数器课程设计报告
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件设计的电子系统到硬件系统的设计,最终形成集成电子系统或专用集成芯片的一门新技术。其设计的灵活性使得EDA技术得以快速发展和广泛应用。
本文以Max+PlusⅡ软件为设计平台,采用VHDL语言实现数字频率计的整体设计。
1 工作原理
众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1 s。闸门时间可以根据需要取值,大于或小于1 s都可以。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1 s作为闸门时间。
数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1所示。
2 设计分析
2.1 测频控制信号发生器
测频控制信号发生器产生测量频率的控制时序,是设计频率计的关键。这里控制信号CLK取为1 Hz,2分频后就是一个脉宽为1 s的时钟信号FZXH,用来作为计数闸门信号。当FZXH为高电平时开始计数;在FZXH的下降沿,产生一个锁存信号SCXH,锁存数据后,还要在下次FZXH上升沿到来之前产生清零信号CLEAR,为下次计数做准备,CLEAR信号是上升沿有效。
2.2 计数器
计数器以待测信号FZXH作为时钟,在清零信号CLEAR到来时,异步清零;FZXH为高电平时开始计数。本文设计的计数器计数最大值是99 999 999。2.3 锁存器
当锁存信号SCXH上升沿到来时,将计数器的计数值锁存,这样可由外部的七段译码器译码并在数码管上显示。设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存器的位数应跟计数器完全一样,均是32位。
2.4 译码驱动电路
本文数码管采用动态显示方式,每一个时刻只能有一个数码管点亮。数码管的位选信号电路是74LS138芯片,其8个输出分别接到8个数码管的位选;3个输入分别接到EPF10K10LC84-4的I/O引脚。
2.5 数码管显示
本文采用8个共阴极数码管来显示待测频率的数值,其显示范围从O~ 以下是数码管段选的程序:
2.6 程序
综合以上模块分析,可以得到如下程序:3 结 语
本文采用EDA设计方法,把数字频率计系统组建分解成若干个功能模块进行设计描述,选用Altera公司生产的FPGA产品FLEX10K系列的EPF10K10LC84-4芯片,下载适配后,便可以在数码管上显示出待测频率的数值。实验证明,其软件设计思想清晰,硬件电路简单,具有一定的实用性。
H. 求EDA课程的简易数字频率计课程设计
yun
I. EDA 课程设计:数字频率计
一、总体设计思想
1.1基本原理
传统的硬件设计采用自下至上 (bo t tom _ up ) 的设计方法。 这种设计方法在系统设计的后期进行仿真和调试, 一旦考虑不周, 系统设计存在较大缺陷, 就有可能要重新设计系统, 使设计周期大大增加。 现代硬件设计利用电子设计自动化 (EDA ) 技术, 采用并行工程和自上至下 ( top _ dow n ) 的设计方法, 从系统设计入手, 在顶层进行功能方框图的划分和结构设计在方框图一级进行仿真和纠错,硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证,最后在用逻辑综合优化工具生成具体地门逻辑电路的网表,其对应地物理实现是专用集成电路。VHDL即超高速集成电路硬件描述语言,主要用于描述数字系统的结构 行为 功能和接口VHDL对设计的描述具有相对独立性,因此设计者可以不懂硬件结构,降低了硬件电路设计地难度。以4位十进制数字频率计的设计来说明VHDL语言在现代设计中的应用。信号频率计的测量有测频法和周期法。本文用测频法,即直接计算每秒钟内信号脉冲的个数。设计一个4位十进制数字频率计,其测量范围位1MHz,量程分1KHz 10KHz 100KHz 1MHz四档(4位数码管显示,最大读数胃999999Hz)量程自动转换规则:
(1)读数大于999时,频率计处于超量程状态,此时显示器发出溢出指示,下次量程,量程自动增大一档。
(2)读数小时,频率计处于前量程状态,下次测量,量程自动增大一档。如果计数器输出直接译码显示电路,则频率计显示疆随时计数值地增加不断变化闪烁,人眼难以分辨。以防止此类现象象, 采用记忆显示方式, 即在计数与显示电路中间加以锁存电路, 每次计数结束, 将计数结果送锁存器锁存, 并保持到下一个计数结束。 而译码显示电路以 1 H z 频率对锁存器取样, 保证了显示时间至少为 1 s。
测频控制信号发生器(TESTCTL)的程序如下.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TESTCTL IS
PORT(CLK: IN STD_LOGIC;
CNT_EN,RST_CNT,LOAD:OUT STD_LOGIC);
END;
ARCHITECTURE BEHAVIOR OF TESTCTL IS
SIGNAL div2clk:STD_LOGIC;
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
div2clk<=NOT div2clk;
END IF;
END PROCESS;
PROCESS(CLK,div2clk)
BEGIN
IF (CLK='0' AND div2clk='0') THEN
RST_CNT<='1';
ELSE RST_CNT<='0';
END IF;
END PROCESS;
LOAD<=NOT div2clk;CNT_EN<=div2clk;
END BEHAVIOR;
锁存器(REG4B)的程序如下.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY REG4B IS
PORT(LOAD: IN STD_LOGIC;
DIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END;
ARCHITECTURE BEHAVIOR OF REG4B IS
BEGIN
PROCESS(LOAD,DIN)
BEGIN
IF LOAD'EVENT AND LOAD='1' THEN
DOUT<=DIN;
END IF;
END PROCESS;
END BEHAVIOR;
动态扫描输出(SCAN6A)的程序如下.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SCAN6A IS
PORT(CLK_SCAN: IN STD_LOGIC;
EN:OUT STD_LOGIC;
NO1_BCD,NO2_BCD,NO3_BCD,NO4_BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
NO5_BCD,NO6_BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END SCAN6A;
ARCHITECTURE BEHAVE OF SCAN6A IS
SIGNAL S1:STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL BCD_OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK_SCAN)
BEGIN
IF CLK_SCAN'EVENT AND CLK_SCAN='1' THEN
IF S1="101" THEN S1<="000";
ELSE OUTDOUT<="1111001";
END CASE;
END PROCESS;
EN<='0'; SEL<=S1;
END BEHAVE;