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...