久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6098|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

FPGA頻率計(jì)EDA課程設(shè)計(jì)報(bào)告

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
課程設(shè)計(jì)報(bào)告
課程:EDA技術(shù)基礎(chǔ)

題目:頻率計(jì)的設(shè)計(jì)學(xué)生
姓名:李*學(xué)號(hào):201556110210
班級(jí):1502班
專業(yè):電子信息科學(xué)與技術(shù)
指導(dǎo)教師:賀*

長(zhǎng)沙理工大學(xué)課程設(shè)計(jì)任務(wù)書(shū)
物理與電子科學(xué) 學(xué)院 電子信息科學(xué)與技術(shù) 專業(yè) 1502 班 姓名 李*
課程名稱          EDA技術(shù)基礎(chǔ)                  
題   目              頻率計(jì)的設(shè)計(jì)                        
同組設(shè)計(jì)者: 藍(lán)*
用FPGA設(shè)計(jì)一個(gè)頻率計(jì),測(cè)量TTL電平方波信號(hào)的頻率。具體要求如下:
(1)測(cè)量頻率范圍: 10Hz~100kHz
(2)數(shù)字顯示,全測(cè)量范圍精度:2 %
(3)測(cè)量速度不低于每秒8次
(4)量程選擇:撥碼開(kāi)關(guān)或鍵控
(5)自行設(shè)計(jì)簡(jiǎn)易方波信號(hào)發(fā)生器,測(cè)試驗(yàn)證頻率計(jì)性能
發(fā)揮部分:
(1)自動(dòng)量程(2)提高精度(3)拓寬量程(4)等精度方案(5)周期測(cè)量(6)上電自檢或鍵控自檢。

工作計(jì)劃
(1)時(shí)間
本課程設(shè)計(jì)安排2周時(shí)間:   2017.12.18 ~2017.12.29
(2)進(jìn)度安排
第1周周一周二:查閱資料,拿出整體設(shè)計(jì)方案,劃分模塊;
第1周周三至周五:各模塊的設(shè)計(jì)、調(diào)試、驗(yàn)證。
第2周周三前完成項(xiàng)目整體調(diào)試和測(cè)試。
第2周周三周四文檔寫(xiě)作整理
第2周周五:答辯討論

指導(dǎo)教師:

賀慧勇 鐘海麗 唐立軍
文勇軍 周曉萍


     2017年11月8 日
教研室意見(jiàn):




教研室主任
          2017年11月9  日

長(zhǎng)沙理工大學(xué)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表

學(xué)生姓名:  李*       學(xué)號(hào): 201556110210         
專業(yè)班級(jí): 電子信息科學(xué)與技術(shù) 1502班           
課程設(shè)計(jì)題目:    頻率計(jì)設(shè)計(jì)                                             

評(píng)分項(xiàng)目
要求
分值
得分
學(xué)習(xí)態(tài)度
學(xué)習(xí)態(tài)度認(rèn)真,遵守紀(jì)律。
10

設(shè)計(jì)方案
調(diào)研充分,方案設(shè)計(jì)合理。
20

Z:\0\ok\41\41.008.png工作量
完成了任務(wù)書(shū)規(guī)定的工作量。實(shí)際設(shè)計(jì)、調(diào)試效果好。
40

設(shè)計(jì)報(bào)告
完全符合撰寫(xiě)規(guī)范要求,結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),層次清晰,表述準(zhǔn)確,文字流暢。
20

答辯
準(zhǔn)備充分,概念清楚,能準(zhǔn)確流利地回答各種問(wèn)題。
10

總分

備注:





成績(jī):                                     指導(dǎo)教師:         

年   月   日


摘要

所謂頻率就是某信號(hào)在時(shí)間T內(nèi)的變化次數(shù)N,公式:F=N/T。本次頻率計(jì)的設(shè)計(jì)的基本原理是:用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量待測(cè)信號(hào)的頻率。通常情況下計(jì)算每秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),即閘門時(shí)間為1秒。閘門時(shí)間可以根據(jù)需要取值,閘門時(shí)間越長(zhǎng),的得到的頻率值就越準(zhǔn)確,但時(shí)間間隔會(huì)相對(duì)較長(zhǎng),閘門時(shí)間越短,頻率值顯示速度就會(huì)越快,但精度會(huì)因此受到影響,所以一般情況下設(shè)計(jì)頻率計(jì)以1s作為閘門時(shí)間。基本的測(cè)量原理是,首先讓被測(cè)信號(hào)與標(biāo)準(zhǔn)信號(hào)一起通過(guò)一個(gè)閘門,然后用計(jì)數(shù)器計(jì)數(shù)信號(hào)脈沖的個(gè)數(shù),把標(biāo)準(zhǔn)時(shí)間內(nèi)的計(jì)數(shù)結(jié)果用鎖存器鎖存起來(lái),最后用顯示譯碼器,把鎖存的結(jié)果用LED數(shù)碼顯示管顯示出來(lái)。

目錄
一、綜合概述              5
1、EDA技術(shù)及頻率計(jì)概述              5
2、使用設(shè)計(jì)軟件及工具              6
二、模塊設(shè)計(jì)              8
1、信號(hào)產(chǎn)生及六選一選擇器              9
2、測(cè)頻控制模塊              9
3、進(jìn)制轉(zhuǎn)換模塊              10
2、譯碼顯示模塊              10
2、頂層設(shè)計(jì)模塊              11
2、本人負(fù)責(zé)模塊              13
三、設(shè)計(jì)要求的實(shí)現(xiàn)及問(wèn)題的發(fā)現(xiàn)              14
四、總結(jié)              16
參考文獻(xiàn)及附錄

  • 綜合概述

1、EDA及頻率計(jì)概述

(1)、EDA技術(shù)概述:在計(jì)算機(jī)技術(shù)的推動(dòng)下,20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,現(xiàn)代電子產(chǎn)品滲透于社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)有促使現(xiàn)代電子產(chǎn)品性能的進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越開(kāi)越快。EDA(electronic design automation)技術(shù)作為現(xiàn)代電子技術(shù)設(shè)計(jì)的核心,它依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言HDL(hardware description language)為系統(tǒng)邏輯描述手段完成設(shè)計(jì)文件,自動(dòng)地完成邏輯簡(jiǎn)化,邏輯分割,邏輯綜合,結(jié)構(gòu)綜合(布局布線),以及邏輯優(yōu)化和仿真測(cè)試等功能,直至實(shí)現(xiàn)既定性能的電子系統(tǒng)功能。EDA技術(shù)使得設(shè)計(jì)者的工作幾乎僅限于利用軟件的方式,即利用硬件描述語(yǔ)言HDL和EDA軟件來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn)。

(2)、頻率計(jì)研究與應(yīng)用:頻率計(jì)已經(jīng)廣泛應(yīng)用于高科技產(chǎn)品行業(yè)的生產(chǎn)之中,到今天頻率計(jì)已開(kāi)始向智能、精細(xì)方向發(fā)展,因此系統(tǒng)對(duì)電路的要求越來(lái)越高,傳統(tǒng)的集成電路設(shè)計(jì)技術(shù)已經(jīng)無(wú)法滿足性能日益提高的系統(tǒng)要求。在信息技術(shù)高度發(fā)展的今天,電子系統(tǒng)數(shù)字化已成為有目共睹的趨勢(shì)。從傳統(tǒng)應(yīng)用中小規(guī)模芯片構(gòu)成系統(tǒng)到廣泛應(yīng)用單片機(jī),直到今天FPGA/CPLD在系統(tǒng)設(shè)計(jì)中的應(yīng)用,電子技術(shù)已邁入一個(gè)全新的階段。而在電子技術(shù)中,頻率是最基本的參數(shù)之一,而信號(hào)的頻率往往與測(cè)量方案的制定、測(cè)量結(jié)果都有著十分密切的關(guān)系,所以測(cè)頻率方法的研究越來(lái)越受到重視。

(3)、基本設(shè)計(jì)原理及測(cè)量方法:用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量待測(cè)信號(hào)的頻率。通常情況下計(jì)算每秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),即閘門時(shí)間為1秒。閘門時(shí)間可以根據(jù)需要取值,閘門時(shí)間越長(zhǎng),的得到的頻率值就越準(zhǔn)確,但時(shí)間間隔會(huì)相對(duì)較長(zhǎng),閘門時(shí)間越短,頻率值顯示速度就會(huì)越快,但精度會(huì)因此受到影響,所以一般情況下設(shè)計(jì)頻率計(jì)以1s作為閘門時(shí)間。基本的測(cè)量原理是,首先讓被測(cè)信號(hào)與標(biāo)準(zhǔn)信號(hào)一起通過(guò)一個(gè)閘門,然后用計(jì)數(shù)器計(jì)數(shù)信號(hào)脈沖的個(gè)數(shù),把標(biāo)準(zhǔn)時(shí)間內(nèi)的計(jì)數(shù)結(jié)果用鎖存器鎖存起來(lái),最后用顯示譯碼器,把鎖存的結(jié)果用LED數(shù)碼顯示管顯示出來(lái)。

  • 使用軟件及工具

對(duì)于quaturs Ⅱ軟件的基本描述:QuartusII是Altera公司的綜合性PLD/FPGA開(kāi)發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程.Quartus II提供了完全集成且與電路結(jié)構(gòu)無(wú)關(guān)的開(kāi)發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性,包括:可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件;芯片(電路)平面布局連線編輯;LogicLock增量設(shè)計(jì)方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對(duì)原始系統(tǒng)的性能影響較小或無(wú)影響的后續(xù)模塊;功能強(qiáng)大的邏輯綜合工具;完備的電路功能仿真與時(shí)序邏輯仿真工具;定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析;可使用SignalTap II邏輯分析工具進(jìn)行嵌入式的邏輯分析;支持 軟件 源文件的添加和創(chuàng)建,并將它們鏈接起來(lái)生成編程文件;使用組合 編譯方式可一次完成整體設(shè)計(jì)流程;自動(dòng)定位編譯錯(cuò)誤;高效的期間編程與驗(yàn)證工具;可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA 軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。

二、模塊設(shè)計(jì)

  根據(jù)前一章的敘述,頻率計(jì)的工作流程基本是:由信號(hào)源發(fā)出周期信號(hào)——待測(cè)信號(hào),通過(guò)由測(cè)頻控制電路提供的基準(zhǔn)測(cè)頻信號(hào)即閘門信號(hào),然后在單位時(shí)間內(nèi)由計(jì)數(shù)器來(lái)計(jì)經(jīng)由閘門的信號(hào)脈沖個(gè)數(shù),計(jì)數(shù)器將所計(jì)個(gè)數(shù)交由鎖存器進(jìn)行存儲(chǔ),經(jīng)過(guò)測(cè)頻控制電路提供的使能信號(hào),鎖存器再將信號(hào)轉(zhuǎn)送給譯碼器進(jìn)行進(jìn)制轉(zhuǎn)換,最后在經(jīng)過(guò)數(shù)碼顯示管將所測(cè)得頻率值顯示出來(lái)。所以,在設(shè)計(jì)頻率計(jì)的工作中大概可以將設(shè)計(jì)模塊分為五個(gè)模塊即(設(shè)計(jì)原理圖如下)1、信號(hào)發(fā)生模塊;2、測(cè)頻控制模塊;3、計(jì)數(shù)器模塊;4、鎖存模塊;5、譯碼及顯示模塊,各個(gè)模塊完成后再經(jīng)過(guò)頂層設(shè)計(jì)將其連接,最后再做整體調(diào)試、運(yùn)行、改正。


  • 簡(jiǎn)易信號(hào)發(fā)生器及六選選擇器模塊
該模塊的設(shè)計(jì)是獨(dú)立于頻率計(jì)設(shè)計(jì)的,為得是從外部產(chǎn)生被測(cè)信號(hào)以檢測(cè)頻率計(jì)的測(cè)量精度,同時(shí)也證明所設(shè)計(jì)的頻率計(jì)可以測(cè)量任何從外部
(1)信號(hào)發(fā)生器設(shè)計(jì)的過(guò)程是利用分頻器將50mHz的時(shí)鐘信號(hào)分為6個(gè)頻率不同的信號(hào)分別是10Hz、100Hz、1000Hz、500Hz、10kHz、100kHz如下程序所示,分頻器的是基于計(jì)數(shù)原理所設(shè)計(jì)的,當(dāng)計(jì)數(shù)小于250時(shí)繼續(xù)累加,直至下一個(gè)上升沿500時(shí)輸出一個(gè)分頻信號(hào)作為第一個(gè)被測(cè)信號(hào)其頻率為100kHz,余下的五個(gè)信號(hào)也由此程序產(chǎn)生。
variable cnt1,cnt2,cnt3,cnt4,cnt5,cnt6 :INTEGER RANGE 0 TO 5000000;
begin
if clk'event and clk='1' then
if cnt1<250 then cnt1:=cnt1+1;
else a<=not a; cnt1:=0;
end if;
  • 方便測(cè)試,上述產(chǎn)生的六個(gè)信號(hào)需要控制每次只輸出一個(gè)給頻率計(jì)測(cè)量因此需要設(shè)計(jì)一個(gè)簡(jiǎn)單選擇,通過(guò)撥碼開(kāi)關(guān)控制每次輸出的信號(hào)。部分程序如下
xuanze:process(key)              ----選擇方波
begin
case(key) is
when "10000" => tclk0<=e;
when "01000" => tclk0<=d;
tclk0是輸出信號(hào),e、d為輸入信號(hào),當(dāng)撥碼開(kāi)關(guān)所示數(shù)值為“10000”時(shí),輸出信號(hào)為e,以此類推,完成對(duì)六個(gè)信號(hào)的選擇。
  • 測(cè)頻控制模塊
測(cè)頻控制模塊是頻率計(jì)的核心模塊,其功能是計(jì)數(shù)所測(cè)信號(hào)在一秒鐘內(nèi)的脈沖數(shù);計(jì)算測(cè)量速度;量程的自動(dòng)切換控制等。部分程序如下:
port(clk:in std_logic;             --輸入時(shí)鐘50mHz
     tclk:in std_logic;
                rst : in std_logic;
      x : out integer range 0 to 500000000;
                            j,lc1,lc1k: out std_logic);
end z;            
architecture hav of z is
signal a :std_logic ;
SIGNAL cnt0:INTEGER RANGE 0 TO 5000000;
begin
cepin:process(clk,tclk)
begin
if rst='0' then cnt0<=0;x<=0;j<='0';
else
j<=tclk;
if clk'event and clk='1' then
if tclk='1' then cnt0<=cnt0+1;
else
if cnt0>24999 then
x<=(250000000/cnt0*10);lc1<='1';lc1k<='0'; cnt0<=0;
elsif
cnt0/=0 and cnt0<25000
then
x<=2500000/cnt0;lc1<='0';lc1k<='1'; cnt0<=0;
其中,x為所測(cè)信號(hào)的計(jì)數(shù)值,rst為復(fù)位信號(hào),j為測(cè)量速度,lc1、lc1k為兩個(gè)檔位的量程。設(shè)計(jì)過(guò)程中,將j信號(hào)的輸出用LED燈顯示,以其閃爍速度作為每次測(cè)量時(shí)的測(cè)量速度;在量程選擇中,共有兩個(gè)單位的量程,當(dāng)被測(cè)信號(hào)的頻率值小于1000Hz時(shí),單位為Hz,當(dāng)被測(cè)信號(hào)頻率高于1000Hz時(shí),量程自動(dòng)切換,單位變?yōu)閗Hz。
  • 進(jìn)制轉(zhuǎn)換模塊
進(jìn)制轉(zhuǎn)換模塊的任務(wù)是將十進(jìn)制脈沖數(shù),轉(zhuǎn)換為四進(jìn)制BCD碼。算法如下:
variable b1,b2,b3,b4,b5:INTEGER RANGE 0 TO 500000000;
begin
  b1:=X rem 10;
  b2:=((X-b1) rem 100)/10;
  b3:=((X-b1-10*b2) rem 1000)/100;
-----------------------------------------------
A1<=CONV_STD_LOGIC_VECTOR(b1,4);
  A2<=CONV_STD_LOGIC_VECTOR(b2,4);
X作為輸入信號(hào),A1、A2為輸出信號(hào)。
  • 譯碼顯示模塊
將BCD碼用七位數(shù)碼管顯示出來(lái)。部分程序如下:
case (A1) is
     WHEN"0000" => BCD0(6 DOWNTO 0)<="1000000";  --0
              WHEN"0001" => BCD0(6 DOWNTO 0)<="1111001";  --1
              WHEN"0010" => BCD0(6 DOWNTO 0)<="0100100";  --2
              WHEN"0011" => BCD0(6 DOWNTO 0)<="0110000";  --3
                WHEN"0100" => BCD0(6 DOWNTO 0)<="0011001";  --4
                WHEN"0101" => BCD0(6 DOWNTO 0)<="0010010";  --5
                WHEN"0110" => BCD0(6 DOWNTO 0)<="0000010";  --6
                WHEN"0111" => BCD0(6 DOWNTO 0)<="1111000";  --7
              WHEN"1000" => BCD0(6 DOWNTO 0)<="0000000";  --8
       WHEN"1001" => BCD0(6 DOWNTO 0)<="0010000";  --9
                WHEN OTHERS => BCD0(6 DOWNTO 0)<="1111111";
bcd2(6 downto 0)<="1111111";
end case;
其中輸出信號(hào)為bcd0,輸入信號(hào)為A1.
  • 頂層設(shè)計(jì)模塊
頂層設(shè)計(jì)是個(gè)模塊的綜合,首先先將各模塊的文件放在頂層設(shè)計(jì)的文件中方便調(diào)用,然后用例化語(yǔ)句將個(gè)模塊的端口定義并連接。部分程序如下:
component  cepin
  port(clk,tclk,rst:in std_logic;            
      x : out integer range 0 to 500000000;
                            j,lc1,lc1k: out std_logic);
end component;
component  yima
port (x : in integer range 0 to 500000000;
      bcd0,bcd1,bcd2,bcd3,bcd4,bcd5:out std_logic_vector(6 downto 0));
end component;
----------------------------------------------------------------------------------------------------------
u1:cepin port map(clk=>clk,x=>f,tclk=>tclk,j=>j,rst=>rst,lc1=>lc1,lc1k=>lc1k);
u2:yima  port map(x=>f,bcd0=>bcd0,bcd1=>bcd1,bcd2=>bcd2,bcd3=>bcd3,bcd4=>bcd4,bcd5=>bcd5);
end hav;
上述程序是頂層設(shè)計(jì)中對(duì)測(cè)評(píng)控制和譯碼顯示模塊的調(diào)用及兩個(gè)模塊的端口連接。頂層設(shè)計(jì)的仿真圖如下:

由仿真結(jié)果可以看出,當(dāng)撥碼開(kāi)關(guān)撥至“010000”時(shí),頻率計(jì)所測(cè)量的得輸出信號(hào)如“l(fā)c1k”所示,隨后由譯碼顯示模塊,將其轉(zhuǎn)換為bcd碼,其中bcd2所表示的是小數(shù)點(diǎn)的位置,bcd0,bcd1分別表示所保留的兩位小數(shù)點(diǎn)。Lc1,lc1k分別表示單位為Hz和kHz兩個(gè)單位的量程,從圖中可以看出撥碼開(kāi)關(guān)撥至“010000”時(shí)所用量程的單位是kHz。

6、本人負(fù)責(zé)模塊
此次設(shè)計(jì),我負(fù)責(zé)的是頂層設(shè)計(jì),在組內(nèi)的任務(wù)相對(duì)來(lái)說(shuō)是最輕松的。頂層設(shè)計(jì)就是將組員設(shè)計(jì)的各個(gè)模塊通過(guò)COMPONENT語(yǔ)句實(shí)現(xiàn)調(diào)用,再用端口映射語(yǔ)句PORT MAP語(yǔ)句將各個(gè)模塊連接起來(lái)形成一個(gè)完整的電路。設(shè)計(jì)過(guò)程參照《EDA技術(shù)實(shí)用教程》中全加器頂層設(shè)計(jì)的過(guò)程來(lái)完成。原理圖如下:

在該模塊的設(shè)計(jì)中,要注意的問(wèn)題就是各個(gè)模塊可能會(huì)用到的重復(fù)的端口名稱,其次就是要有一個(gè)明確的引腳分配思路,之后在開(kāi)發(fā)板上運(yùn)行時(shí),集中可辨的按鍵可以減少操作難度,更加方便演示。


三、設(shè)計(jì)要求的實(shí)現(xiàn)及問(wèn)題的發(fā)現(xiàn)
1、    由上一節(jié)中頂層設(shè)計(jì)的原理圖可以看到,信號(hào)的發(fā)生和選擇是完全獨(dú)立的,所以該頻率計(jì)還可以測(cè)量任何外部接入信號(hào)的頻率。
2、    精度的計(jì)算:

3、本次設(shè)計(jì)的問(wèn)題在于量程的選擇問(wèn)題上,在被測(cè)信號(hào)低于1000Hz時(shí)量程的單位為Hz,大于1000時(shí)單位為kHz,因此無(wú)法確認(rèn)1000Hz時(shí)的量程應(yīng)該怎樣劃分。
  
四、總結(jié)
短短兩周的課程設(shè)計(jì),讓大家都獲益良多。從一開(kāi)始的被迫學(xué)習(xí)到后來(lái)慢慢主動(dòng)的去查閱資料,整理思路,討論問(wèn)題,到最后大家一起主動(dòng)解決問(wèn)題,這一過(guò)程不僅是知識(shí)的增長(zhǎng)更多的認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性。
像EDA,單片機(jī)這樣的課程對(duì)于我來(lái)說(shuō)仿佛是天書(shū)一樣。在做實(shí)驗(yàn)的時(shí)候也是盡可能的去網(wǎng)上復(fù)制粘貼程序,沒(méi)有投入一點(diǎn)點(diǎn)自己的思考在里面。上課的時(shí)候,盡管老師在講臺(tái)上講的生龍活虎,但我整堂課就是左耳進(jìn)右耳出,雖然有時(shí)候覺(jué)得應(yīng)該積累一些知識(shí),以免最后什么也沒(méi)有學(xué)到,但當(dāng)靜心開(kāi)始聽(tīng)課時(shí),總會(huì)有那么一些專業(yè)術(shù)語(yǔ)卡在腦子,就像是編譯過(guò)程中遇到了錯(cuò)誤而怎么也找不到解決方法一般。
這兩周的課程設(shè)計(jì)對(duì)我來(lái)說(shuō)并不輕松,在與組員的討論討論過(guò)程中更是暴露自己在這門課程上的無(wú)知。模塊劃分的事情也是討論一遍又一遍,第一個(gè)星期過(guò)后,看得出大家都有了些倦怠,但當(dāng)?shù)谝淮未蠹叶甲龊酶鱾(gè)模塊時(shí),我確實(shí)是長(zhǎng)舒了一口氣,殊不知,問(wèn)題的出現(xiàn)才是從這會(huì)開(kāi)始,在做整合的時(shí)候,我們發(fā)現(xiàn)各個(gè)人做的模塊在很大程度上互相不匹配,但是討論解決方案時(shí)又無(wú)從下手,最后大家都變得有些心煩意亂。
當(dāng)今時(shí)代是信息技術(shù)高速發(fā)展的時(shí)代,各種信息產(chǎn)業(yè)及電子產(chǎn)品充斥著整個(gè)世界,推動(dòng)著信息時(shí)代的前進(jìn),作為學(xué)習(xí)信息學(xué)科的學(xué)生來(lái)說(shuō),更是承擔(dān)著未來(lái)信息技術(shù)發(fā)展的重任,《EDA技術(shù)基礎(chǔ)》作為信息技術(shù)的主要學(xué)科,對(duì)于信息類學(xué)生來(lái)說(shuō)更是重要。既然作為重要學(xué)科,所以學(xué)習(xí)難度也不會(huì)很輕松,雖然是基礎(chǔ)知識(shí)但涵蓋的知識(shí)也是相當(dāng)全面,在一學(xué)期的學(xué)習(xí)過(guò)程中,覺(jué)得很多的知識(shí)都沒(méi)有辦法了解和運(yùn)用,在課程設(shè)計(jì)之前大家都戰(zhàn)戰(zhàn)兢兢,不知道會(huì)抽到什么課題,也不知道最后能不能做出來(lái),但兩個(gè)星期的設(shè)計(jì)過(guò)程中,隨著一個(gè)個(gè)問(wèn)題的出現(xiàn),大家的情緒也跟著起起伏伏,但經(jīng)過(guò)組員的討論和建議,一個(gè)個(gè)的問(wèn)題又慢慢的被解決,直到最后在大家的一起努力之下完成設(shè)計(jì)。整個(gè)過(guò)程中,體現(xiàn)出了團(tuán)隊(duì)合作的重要性。
在學(xué)習(xí)了EDA技術(shù)的基礎(chǔ)便開(kāi)始做設(shè)計(jì)對(duì)于我們大多數(shù)普通學(xué)生來(lái)說(shuō)都是不容易的,在討論設(shè)計(jì)方案的時(shí)候都盡量的挑選最簡(jiǎn)單的過(guò)程進(jìn)行設(shè)計(jì),而最后設(shè)計(jì)出來(lái)的成果又存在很多的問(wèn)題。在我們本次的設(shè)計(jì)中,我們直接將發(fā)揮部分的一個(gè)選項(xiàng)加入了設(shè)計(jì)過(guò)程,在量程選擇問(wèn)題上我們直接設(shè)計(jì)成了自動(dòng)量程,在測(cè)頻控制模塊的設(shè)計(jì)中也存在不恰當(dāng)?shù)某绦虮磉_(dá)。但總體來(lái)說(shuō),我們本次設(shè)計(jì)的頻率計(jì)雖然在很大程度上存在“偷工減料”所導(dǎo)致的問(wèn)題,但在最后運(yùn)行時(shí),還是可以達(dá)到預(yù)期額效果,并且對(duì)我們的組員來(lái)說(shuō),只存在問(wèn)題才會(huì)讓大家投入更多的思考,解決問(wèn)題的過(guò)程也是一個(gè)提高的過(guò)程。
本次模塊的分配中,由于組員人數(shù)比較多,所以我所負(fù)責(zé)的模塊是最為簡(jiǎn)單的頂層設(shè)計(jì)模塊,但在第一個(gè)星期的設(shè)計(jì)過(guò)程,也有參與其他模塊的設(shè)計(jì)和討論,所以雖然最后的任務(wù)相對(duì)容易,但在整個(gè)過(guò)程中也學(xué)到了很多東西。
參考文獻(xiàn):
《EDA技術(shù)實(shí)用教程》——VHDL版/潘松,黃繼業(yè)編著.——5版.——北京:科學(xué)出版社,2013.
附錄:
所用程序:
1、方波信號(hào)發(fā)生及選擇:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fangbo is
port(clk:in std_logic;             --輸入時(shí)鐘50Mhz
     key:in std_logic_vector(4 downto 0);
      tclk: out std_logic);
end fangbo;
architecture hav of fangbo is
signal a,b,c,d,e :std_logic;

begin
fangbo:process(clk)           --產(chǎn)生五種方波
variable cnt1,cnt2,cnt3,cnt4,cnt5 :INTEGER RANGE 0 TO 5000000;
    begin
        if clk'event and clk='1' then         
               if cnt1<250 then cnt1:=cnt1+1;
                else a<=not a; cnt1:=0;
                end if;
                if cnt2<2500 then cnt2:=cnt2+1;
                else b<=not b; cnt2:=0;
                end if;
                if cnt3<25000 then cnt3:=cnt3+1;
                else c<=not c; cnt3:=0;
                end if;
                if cnt4<250000 then cnt4:=cnt4+1;
                else d<=not d; cnt4:=0;
                end if;
                if cnt5<2500000 then cnt5:=cnt5+1;
                else e<=not e; cnt5:=0;
                end if;
            end if;
    end process;
   
xuanze:process(key)              ----選擇方波
begin
case(key) is
when "10000" => tclk<=e;
when "01000" => tclk<=d;
when "00100" => tclk<=c;
when "00010" => tclk<=b;
when "00001" => tclk<=a;
when  others => NULL;
end case;
2、測(cè)頻控制:library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
entity cepin is
port(clk:in std_logic;             --輸入時(shí)鐘50Mhz
     tclk:in std_logic;
      rst : in std_logic;  
      x : out integer range 0 to 500000000;
        j,lc1,lc1k: out std_logic);
end cepin;
architecture hav of cepin is
signal a :std_logic ;
SIGNAL cnt0:INTEGER RANGE 0 TO 5000000;
begin

cepin:process(clk,tclk)
begin
if rst='0' then cnt0<=0;x<=0;j<='0';
else
     j<=tclk;
     if clk'event and clk='1' then
         if tclk='1' then cnt0<=cnt0+1;
         else
         if cnt0>24999 then
               x<=(250000000/cnt0*10);lc1<='1';lc1k<='0'; cnt0<=0;
        elsif    cnt0/=0 and cnt0<25000    then
              x<=2500000/cnt0;lc1<='0';lc1k<='1'; cnt0<=0;
          end if;
          end if;
          end if;
          end if;
    end process;

end hav;
3、譯碼及顯示:library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity yima is
port ( A1,A2,A3,A4,A5 : in STD_LOGIC_VECTOR(3 DOWNTO 0);
       bcd0,bcd1,bcd2,bcd3,bcd4,bcd5:out std_logic_vector(6 downto 0));
end yima;
architecture hav of yima is
begin
yima:process(A1,A2,A3,A4,A5)
BEGIN
bcd2(6 downto 0)<="1110111";   -- _
case (A1) is
     WHEN"0000" => BCD0(6 DOWNTO 0)<="1000000";  --0
      WHEN"0001" => BCD0(6 DOWNTO 0)<="1111001";  --1
      WHEN"0010" => BCD0(6 DOWNTO 0)<="0100100";  --2
      WHEN"0011" => BCD0(6 DOWNTO 0)<="0110000";  --3
      WHEN"0100" => BCD0(6 DOWNTO 0)<="0011001";  --4
      WHEN"0101" => BCD0(6 DOWNTO 0)<="0010010";  --5
      WHEN"0110" => BCD0(6 DOWNTO 0)<="0000010";  --6
      WHEN"0111" => BCD0(6 DOWNTO 0)<="1111000";  --7
      WHEN"1000" => BCD0(6 DOWNTO 0)<="0000000";  --8
     WHEN"1001" => BCD0(6 DOWNTO 0)<="0010000";  --9
      WHEN OTHERS => BCD0(6 DOWNTO 0)<="1111111";bcd2(6 downto 0)<="1111111";
end case;
case (A2) is
     WHEN"0000" => BCD1(6 DOWNTO 0)<="1000000";  --0
      WHEN"0001" => BCD1(6 DOWNTO 0)<="1111001";  --1
      WHEN"0010" => BCD1(6 DOWNTO 0)<="0100100";  --2
      WHEN"0011" => BCD1(6 DOWNTO 0)<="0110000";  --3
      WHEN"0100" => BCD1(6 DOWNTO 0)<="0011001";  --4
      WHEN"0101" => BCD1(6 DOWNTO 0)<="0010010";  --5
      WHEN"0110" => BCD1(6 DOWNTO 0)<="0000010";  --6
      WHEN"0111" => BCD1(6 DOWNTO 0)<="1111000";  --7
      WHEN"1000" => BCD1(6 DOWNTO 0)<="0000000";  --8
     WHEN"1001" => BCD1(6 DOWNTO 0)<="0010000";  --9
      WHEN OTHERS => BCD1(6 DOWNTO 0)<="1111111";bcd2(6 downto 0)<="1111111";
end case;
case (A3) is
     WHEN"0000" => BCD3(6 DOWNTO 0)<="1000000";  --0
      WHEN"0001" => BCD3(6 DOWNTO 0)<="1111001";  --1
      WHEN"0010" => BCD3(6 DOWNTO 0)<="0100100";  --2
      WHEN"0011" => BCD3(6 DOWNTO 0)<="0110000";  --3
      WHEN"0100" => BCD3(6 DOWNTO 0)<="0011001";  --4
      WHEN"0101" => BCD3(6 DOWNTO 0)<="0010010";  --5
      WHEN"0110" => BCD3(6 DOWNTO 0)<="0000010";  --6
      WHEN"0111" => BCD3(6 DOWNTO 0)<="1111000";  --7
      WHEN"1000" => BCD3(6 DOWNTO 0)<="0000000";  --8
     WHEN"1001" => BCD3(6 DOWNTO 0)<="0010000";  --9
      WHEN OTHERS => BCD3(6 DOWNTO 0)<="1111111";bcd2(6 downto 0)<="1111111";
end case;
case (A4) is
     WHEN"0000" => BCD4(6 DOWNTO 0)<="1000000";  --0
      WHEN"0001" => BCD4(6 DOWNTO 0)<="1111001";  --1
      WHEN"0010" => BCD4(6 DOWNTO 0)<="0100100";  --2
      WHEN"0011" => BCD4(6 DOWNTO 0)<="0110000";  --3
      WHEN"0100" => BCD4(6 DOWNTO 0)<="0011001";  --4
      WHEN"0101" => BCD4(6 DOWNTO 0)<="0010010";  --5
      WHEN"0110" => BCD4(6 DOWNTO 0)<="0000010";  --6
      WHEN"0111" => BCD4(6 DOWNTO 0)<="1111000";  --7
…………
…………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………

完整的Word格式文檔51黑下載地址:
EDA課程設(shè)計(jì)報(bào)告 頻率計(jì)設(shè)計(jì).docx (300.47 KB, 下載次數(shù): 70)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:439847 發(fā)表于 2019-6-10 11:27 | 只看該作者
可以給一個(gè)完整程序么
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品欧美一区二区三区 | 日韩国产欧美一区 | 日韩一区二区三区视频 | 国产乱码精品一区二区三区忘忧草 | 视频一二三区 | 欧美精品91| av网站推荐| www.久久.com | 亚洲精品久久久久久久久久久 | 亚洲黄色国产 | 高清成人免费视频 | 午夜视频在线免费观看 | 免费午夜视频在线观看 | 国产黄色大片在线观看 | 日韩精品一区二区三区四区 | 日韩av大片免费看 | 亚洲欧美一区二区三区视频 | 久久国品片 | 国产精品久久久久久久久动漫 | 日本在线视频不卡 | 99久久99久久精品国产片果冰 | 日韩成人免费视频 | 成人一区av | 欧美日韩1区2区3区 欧美久久一区 | 亚洲精品一区二区三区中文字幕 | 精品亚洲第一 | 国产黄色精品在线观看 | 亚洲一区中文字幕在线观看 | 久久久久久国产精品 | 亚洲精品国产第一综合99久久 | aaa综合国产| 亚洲成人a v | 精品久久久久久国产 | 欧美三区 | 天天综合国产 | 欧美一区视频 | 免费视频成人国产精品网站 | 国产日韩久久 | 久久伊人精品一区二区三区 | 九色 在线| 国产一区二区日韩 |