本文摘要:摘 要:隨著科技的飛速發展,傳統的電子技術逐漸被現代電子技術取代,以FPGA/CPLD為硬件,以verilog語言為軟件的EDA技術應用越來越廣泛,本文旨在以一個具體的序列檢測器的設計為例,將以硬件描述語言來設計芯片的流程呈現給大家。 關鍵詞:verilog;序列檢測
摘 要:隨著科技的飛速發展,傳統的電子技術逐漸被現代電子技術取代,以FPGA/CPLD為硬件,以verilog語言為軟件的EDA技術應用越來越廣泛,本文旨在以一個具體的序列檢測器的設計為例,將以硬件描述語言來設計芯片的流程呈現給大家。
關鍵詞:verilog;序列檢測器;狀態;EDA
1 引言(Introduction)
在數字信號的傳輸和數字系統產品的設計和測試過程中,往往需要用到一組特定的串行數字信號,我們把產生序列信號的模塊電路稱作序列信號發生器,如要求產生一串序列“10001110”為例來給大家展示EDA設計有限狀態機的過程[1]。本電路由計數器與數據選擇器兩部分構成,結構框圖如圖1所示,該鎖存輸出的功能是為了消除電路產生的毛刺。
圖1 結構框圖
Fig.1 Structure diagram
2 序列檢測器的基本工作過程(The basic working
process serial detector)
有限狀態機一般用來檢測一組或多組由二進制碼組成的脈沖序列信號,廣泛應用于在數字系統中。當該特定序列檢測器連續接收到一組二進制碼,如果這組二進制碼與檢測器中預先設置的碼能匹配成功,就輸出1,否則輸出0。因為該檢測的關鍵在必須連續接受正確碼,中間只要出錯以為,就必須重新進行檢測,所以要求該檢測器記住前一次的正確碼及正確序列,直到在連續的檢測中所有的串行二進制碼都能連續匹配成功。檢測二進制碼中,只要有任何一位沒匹配成功都回到初始狀態重新開始匹配[2]。方框圖如圖2所示。
圖2 狀態流程圖
Fig.2 State flow diagram
3 狀態機的基本設計思想(The basic design idea of
state machine)
在數字系統中,當狀態連續變化,我們可以采用狀態機的設計思想來提高設計效率,還可以增加程序的可讀性,從而降低錯誤的概率。而有限狀態機的設計思路也是數字系統中一種常用的設計方法之一。通常情況,有限的標準狀態機分為以下兩種,摩爾機和米立機。兩者不同在于,摩爾機中,它輸出只是當前狀態值的函數,而且只在時鐘上跳沿時發生作用。而米立機的輸出是當前輸入值、當前輸出值、當前狀態值三者共同的函數。本例從一串二進制數碼中檢測出一個已預置的8位二進制碼“10001110”,每當增加一位二進制碼相當于增加一個狀態,連同初始態,總共需要用9個狀態來實現[3]。狀態轉換過程如圖3所示。
圖3 狀態轉換圖
Fig.3 State transition diagram
注意:此圖僅作為參考,檢測不同的二進制碼其過程不同!
4 設計過程(Design process)
4.1 硬件設備連接
(1)將EDA適配板JTAG接口用十芯排線和萬用下載區的SOPC JTAG口連接起來,萬用下載區的電源開關選擇到SOPC下載的一邊。
(2)將開發板上按要求設置好相關跳線。
(3)對EDA開發板供電。
4.2 軟件實現
(1)打開Quartus II軟件,由于在計算機軟硬件領域,一般的設計都是一項工程(Project),因此需要為工程建立一個放置此工程相關文件的文件夾,該文件夾作為EDA工程的工作目錄。創建一個工程,命名并保存到上述文件夾中。
(2)新建一個verilog代碼文件,主要模塊代碼如下:
always @ (posedge clk4 or posedge rst)
if (rst) begin key1_dff1<=1'b0;key1_dff2<= 1'b0;
key2_dff1<=1'b0; key2_dff2<=1'b0;end else begin
key1_dff1<=key1; key1_dff2<=key1_dff1;
key2_dff1<=key2; key2_dff2<=key2_dff1;end
assign value_0=key1_dff1 & !key1_dff2;//serial value is 0;
assign value_1=key2_dff1 & !key2_dff2;//serial value is 1;
(3)將設計文件加入工程。
(4)選擇目標芯片。
(5)選擇配置器件的工作方式。
(6)選擇配置器件和編程方式。
(7)選擇輸出設置。
(8)選擇目標芯片的閑置引腳的狀態。
(9)編譯。
(10)仿真。
(11)應用RTL電路圖觀察器。
(12)引腳鎖定。
引腳分配如下:管腳標號led0到led7分別接到LED流水燈的8位輸入端上,key1和key2接按鍵的輸入口,buzzer接led燈。100腳接rst使系統復位。管腳標號對應的I/O如下所示:
User Assignments Node Name
set_location_assignment PIN_79 -to led[0] set_location_assignment PIN_82 -to led[1]set_location_assignment PIN_83 -to led[2]
set_location_assignment PIN_84 -to led[3] set_location_assignment PIN_85 -to led[4] set_location_assignment PIN_91 -to led[5]
set_location_assignment PIN_94 -to led[6] set_location_assignment PIN_96 -to led[7] set_location_assignment PIN_100 -to rst
set_location_assignment PIN_99 -to key1 set_location_assignment PIN_98 -to key2 set_location_assignment PIN_41 -to clk4
set_location_assignment PIN_97 -to buzzer
5 結論(Conclusion)
經過以上軟硬件設計,基本達到設計目標,能夠實現檢測“110”序列,當檢測到該序列后點亮EDA開發板上對應的LED燈。需要注意的是,時鐘頻率不要選擇太高,可以選擇幾百赫茲的頻率。
參考文獻(References)
[1] 韓芝俠.基于EDA技術的復雜數字電路設計[J].寶雞文理學院學報(自然科學版),2013(01):35-38.
[2] 周小仨.EDA技術在數字電子技術實驗中的應用[J].電子制作,2014(15):27-28.
[3] 李洪奇.可編程序列脈沖檢測器的設計[J].聊城大學學報(自然科學版),2003(02):72-74.
小編推薦優秀電子期刊 電力技術如何投稿
《電力技術》是由國家電力監管委員會主管,中國電力企業聯合會科技開發服務中心主辦,國內外公開發行的綜合性專業刊物,也是中國電力企業聯合會技術會刊。本刊曾用名為《電力標準化與計量》、《電力標準化與技術經濟》,先后由水利電力部、能源部、電力部、國家電力公司、中國電力企業聯合會主管并主辦,長期行使機關技術刊物、行業刊物的職能。
轉載請注明來自發表學術論文網:http://www.zpfmc.com/dzlw/3285.html