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;