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
- FPGA學習筆記03——UART串列埠FPGA筆記串列埠
- [SQL] Datawhale 學習筆記 Task04SQL筆記
- Verilog HDL程式設計心得(持續記錄)程式設計
- Swift學習筆記(八)--析構器與ARCSwift筆記
- JavaScript學習筆記(八)—— 補JavaScript筆記
- Spss 學習筆記(八)SPSS筆記
- ES6學習筆記之Function筆記Function
- HexMap學習筆記(八)——水體筆記
- OS學習筆記八:死鎖筆記
- 串列埠收發UART(Verilog HDL)串列埠
- vue學習筆記(八)---- vue中的例項屬性(wacth和computed的使用)Vue筆記
- 功能點分析(Function Point Analysis)學習筆記(一)Function筆記
- 功能點分析(Function Point Analysis)學習筆記(二)Function筆記
- 功能點分析(Function Point Analysis)學習筆記(三)Function筆記
- 功能點分析(Function Point Analysis)學習筆記(四)Function筆記
- Verilog HDL迴圈語句簡介
- ES6學習筆記(八)【class】筆記
- Redis學習筆記八:叢集模式Redis筆記模式
- hive學習筆記之八:SqoopHive筆記OOP
- JS學習筆記:JS 的function( window, undefined ) {}(window)寫法JS筆記FunctionUndefined
- 中斷的學習筆記筆記
- PHP 第八週函式學習筆記PHP函式筆記
- Golang 學習筆記八 錯誤異常Golang筆記
- node學習筆記第八節:模組化筆記
- Java學習筆記——第八天Java筆記
- 工作學習筆記(八)去重校驗筆記
- 飛機的 PHP 學習筆記八:資料庫PHP筆記資料庫
- C/C++學習筆記八(斷言與異常處理)C++筆記
- 學習筆記-Verilog實現IIC匯流排協議筆記協議
- 學習筆記----圖論學習中筆記圖論
- FPGA學習中的程式碼閱讀FPGA
- OS學習筆記一: 中斷與異常筆記
- 【JavaScript學習筆記】if使用JavaScript筆記
- Java IO學習筆記八:Netty入門Java筆記Netty
- Activiti 學習筆記八:排他閘道器(ExclusiveGateWay)筆記Gateway
- 《Mastering Delphi 6》學習筆記之八 (轉)AST筆記