FPGA學習筆記(二) verilog 語法講解

2021-09-08 02:37:50 字數 2266 閱讀 2161

verilog語法介紹:

數位電路中主要有組合邏輯和時序邏輯兩種電路。

組合邏輯:多路選擇器、解碼器、加法器、乘法器等;

時序邏輯:最基本的是計數器。

verilog檔案的基本結構:

乙個檔案中可以包含多個模組。

方法1//模組宣告 模組名 埠列表

module mux2 (a,b,sel,out,io);

//埠屬性定義

input [7:0] a;

input [7:0] b;

input sel;//sel = 0,out輸出a的值;sel=1,out輸出b的值。

output [7:0] out;

inout io;

//定義內部訊號,分為暫存器型reg和線網型wire

組合邏輯使用wire,時序邏輯使用reg,但是always塊中必須使用reg

wire oe;

//二選一多路器

//連續賦值語句

assign out = (sel == 0)?a:b;

簡化上個語句

assign out = !sel?a:b;

assign out = sel?b:a;

三態門控制

oe訊號

assign oe = sel;

io訊號

assign io = oe?out[0]:1』bz;

//verilog位操作

//1、取訊號中的某一位直接用作訊號源

wire [2:0] m;

assign m = out[5:3];

//2、迴圈移位

reg [7:0] shift_a;

每個時鐘都會移動一次

always @(posedge clk)

shift_a <= ;

//移位暫存器

reg [7:0] shift_a;

wire data;

always @(posedge clk)

shift_a <= ;//移到低位

always @(posedge clk)

shift_a <= ;//移到高位

//3、位拼接

wire [3:0] x;

wire [3:0] y;

wire [7:0] z;

assign z = ;

wire [31:0] n;

assign n = };

等效於assign n = ;

//資料表示

assign x = 4』b1001;

assign x = 4』d9;

assign x = 4』h9;

assign x = 4』hc;

assign n = 32』h1234_4567;

assign z = 8』b1001_1101;

//運算

//加(+)、減(-)、乘(*)、除(/)

//邏輯運算

//邏輯與&&

a = 4』b1011; b = 4』b0000;

wire c;

c = a && b; c = 0;

//按位與&

a = 4』b1011; b = 4』b0000;

wire [3:0] c;

c = a & b; c = 4』b0000;

//邏輯或||

a = 4』b1011; b = 4』b0000;

wire c;

c = a || b; c = 1;

//按位或

a = 4』b1011; b = 4』b0000;

wire [3:0] c;

c = a | b; c = 4』b1011;

//邏輯非!

a = 4』b1011; b = 4』b0000;

wire c;

c =! a = 0;

//按位取反

a = 4』b1011; b = 4』b0000;

wire [3:0]c;

c = ~b= 4』b1111;

//優先順序

//為了避免優先順序出錯,最好加上括號。

endmodule

方法2module mux2 (

//埠屬性定義

input [7:0] a,

input [7:0] b,

input sel,

output [7:0] out,

inout io

); endmodule

FPGA程式設計 組合邏輯編碼器等verilog實現

這裡講解一下verilog書寫 的格式,首先呼叫預編譯命令 timescale命令,指定 時間單位和 時間精度,不可省略。module input clk,input rst n,nput 這裡加入其它輸入訊號 output xx 這裡加入其它輸出訊號 reg always posedge clk ...

FPGA學習筆記第二彈

fpga設計技巧 1 一款好用的編輯軟體 其實我們完全可以使用vivadao或者quartus自帶的編輯 軟體。這兩個我都用過,但是說實在的我是都用過了,著實一搬般。然後推薦一下我一直在用的編輯軟體 notepaid 體積小,外掛程式多,字型可調,語法高亮。2 verilog基本語法 現在我們來複習...

FPGA學習筆記(二) 按鍵LED

無按鍵按下時,全滅 按鍵1按下時,自右向左的流水效果 按鍵2按下時,自左向右的流水效果 按鍵3按下時,閃爍 按鍵4按下時,全亮 file name my key led last modified date 2020 6 10 22 30 last version v1.1 descriptions...