一、時序設計
方法1.通過狀態機來實現,通過verilog控制FPGA,讓它該快的時候快,該慢的時候慢。
方法2.FPGA中運行CPU
把邏輯控制順序復雜的事情用C代碼來實現,而實時處理部分用verilog實現,并且verilog這部分可以被C代碼控制。Xilinx的FPGA目前支持的CPU有Microblaze,ARM9,POWERPC,其中Microblaze是軟核,其余的兩款是硬核。
(1)軟核就是用代碼實現的CPU核,配置靈活;
(2)硬核就是一塊電路,已經做好了,不能再發生變化;
軟核靈活性好,但是要占用FPGA的資源。硬核不占用FPGA的資源,速度和性能更好。比如Xilinx的DDR內存控制器,就是一種硬核,其運行速度很高。
二、基礎語法
1. always @(),括號里是*,表明是一直敏感的;
2. (1) <= ?非阻塞賦值,在一個always模塊中,所有語句一起更新
(2) = 阻塞賦值,或者給信號賦值,如果在always模塊中,這條語句被立刻執行。
非阻塞賦值
always @(posedge clk)begin a <= b; ? ? ? ?c <= a; ? ? end
執行結果是a的值是b,c的結果依舊是a
阻塞賦值
always @(posedge clk)begin a = b; c = a; end
執行結果a的值是b,c的結果也是b。
一般我們使用的都是非阻塞的賦值語句,這樣可以很好地控制同步性。
3、預處理命令 `include file1.v `define X=1; `define Y; `ifdef Y Z = 1; `else Z = 0; `endid
有時候需要一些公共的宏參數,我們可以放在一個文件中,比如文件名XXX.v,。那么我們就可以 `include XXX.v ,就可以包含文件中定義的宏參數
三、小練習
1.加法器的設計
module adder( input [3:0] a, input [3:0] b, input cin, output [3:0] sum, output cout ); assign {cout,sum} = a + b + cin; endmodule
RTL視圖
RTL 技術原理圖
仿真代碼
`timescale 1ns / 1ps //1ns的仿真刻度,1ps的仿真精度 ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2017/10/22 1058 // Design Name: // Module Name: simu // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module simu( ); reg [3:0] a; reg [3:0] b; reg cin; wire cout; wire [3:0] sum; reg [4:0] i,j; //中間變量 adder inst( .a(a), .b(b), .cin(cin), .cout(cout), .sum(sum) ); initial begin a =0; b=0; cin=0; for(i=1;i<16;i=i+1) #10 a = i; end initial begin for(j=1;j<16;j=j+1) #10 b = j; end initial begin $monitor($time,,,"%d + %d + %b = {%b,%d}",a,b,cin,cout,sum); #160 $finish; //160ns 后仿真結束 end endmodule
仿真波形
打印輸出結果
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603431 -
Xilinx
+關注
關注
71文章
2167瀏覽量
121430 -
內存
+關注
關注
8文章
3025瀏覽量
74056 -
Verilog
+關注
關注
28文章
1351瀏覽量
110102 -
狀態機
+關注
關注
2文章
492瀏覽量
27541
原文標題:Xilinx FPGA 學習筆記
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論