EDA 课程设计:数字频率计?
1个回答
2014-01-14
展开全部
一、总体设计思想
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;
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;
北京康思
2018-09-20 广告
2018-09-20 广告
电压的测量利用示波器所做的任何测量,都是归结为对电压的测量。示波器可以测量各种波形的电压幅度,既可以测量直流电压和正弦电压,又可以测量脉冲或非正弦电压的幅度。更有用的是它可以测量一个脉冲电压波形各部分的电压幅值,如上冲量或顶部下降量等。这是...
点击进入详情页
本回答由北京康思提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询