HDL/FPGA學習筆記八:verilog中task與function的使用
一、四位二進位制全加器的function形式實現:
module full_adder_4(A,B,CIN,S,COUT);
input[3:0] A;
input[3:0] B;
input CIN;
output[3:0] S;
output COUT;
wire[3:0] S0,S1,S2,S3;
function signed[1:0] ADD;
//port declaration
input A;
input B;
input CIN;
//internal node signals declaration
reg S,COUT;
begin
S=A^B^CIN;
COUT=(A&B)|(A&CIN)|(B&CIN);
ADD={COUT,S};
end
endfunction
assign S0=ADD(A[0],B[0],CIN); //第一位求和
assign S1=ADD(A[1],B[1],S0[1]); //第二位求和
assign S2=ADD(A[2],B[2],S1[1]); //第三位求和
assign S3=ADD(A[3],B[3],S2[1]); //第三位求和
assign S={S3[0],S2[0],S1[0],S0[0]};
assign COUT=S3[1];
endmodule
二、四位二進位制全加器的task形式實現:
module full_adder(A,B,CIN,S,COUT);
input[3:0] A;
input[3:0] B;
input CIN;
output[3:0] S;
output COUT;
reg[3:0] S0,S1,S2,S3;
task ADD;
input A;
input B;
input CIN;
output[1:0] SUM;
reg S;
reg COUT;
begin
S=A^B^CIN;
COUT=(A&B)|(A&CIN)|(B&CIN);
SUM={COUT,S};
end
endtask
always@(*) //A or B or CIN
begin
ADD(A[0],B[0],CIN,S0);
ADD(A[1],B[1],S0[1],S1);
ADD(A[2],B[2],S1[1],S2);
ADD(A[3],B[3],S2[1],S3);
end
assign S={S3[0],S2[0],S1[0],S0[0]};
assign COUT=S3[1];
endmodule
相關文章
- HDL/FPGA學習筆記二十五:Vivado PLL IP核的使用FPGA筆記
- FPGA 學習之路:verilog學習第5天FPGA
- Task01&Task02學習筆記筆記
- Task1&Task2學習筆記筆記
- FPGA學習筆記03——UART串列埠FPGA筆記串列埠
- ES6學習筆記之Function筆記Function
- 串列埠收發UART(Verilog HDL)串列埠
- [SQL] Datawhale 學習筆記 Task04SQL筆記
- JavaScript學習筆記(八)—— 補JavaScript筆記
- Verilog HDL迴圈語句簡介
- vue學習筆記(八)---- vue中的例項屬性(wacth和computed的使用)Vue筆記
- HexMap學習筆記(八)——水體筆記
- hive學習筆記之八:SqoopHive筆記OOP
- JS學習筆記:JS 的function( window, undefined ) {}(window)寫法JS筆記FunctionUndefined
- 學習筆記-Verilog實現IIC匯流排協議筆記協議
- ES6學習筆記(八)【class】筆記
- Redis學習筆記八:叢集模式Redis筆記模式
- Xilinx-Verilog-學習筆記(19):正弦波訊號發生器與DDS筆記
- FPGA程式設計從零開始 使用VerilogFPGA程式設計
- verilog學習筆記——三段式狀態機筆記
- 中斷的學習筆記筆記
- Golang 學習筆記八 錯誤異常Golang筆記
- Java學習筆記——第八天Java筆記
- PHP 第八週函式學習筆記PHP函式筆記
- 工作學習筆記(八)去重校驗筆記
- Java IO學習筆記八:Netty入門Java筆記Netty
- 飛機的 PHP 學習筆記八:資料庫PHP筆記資料庫
- Linux與DNS的學習筆記LinuxDNS筆記
- FPGA排序模組與verilog實現【含原始碼!!!】FPGA排序原始碼
- IC學習筆記(一)——Verilog加減法及四捨五入筆記
- Git 的安裝與初次使用 —— Git 學習筆記 03Git筆記
- Shiro學習筆記(一) 基本概念與使用筆記
- node學習筆記第八節:模組化筆記
- FPGA學習中的程式碼閱讀FPGA
- numpy的學習筆記\pandas學習筆記筆記
- celery筆記三之task和task的呼叫筆記
- 【學習筆記】Spring與Junit的整合筆記Spring
- FPGA經典:Verilog傳奇與基於FPGA的數字影像處理原理及應用FPGA