基于Verilog HDL高级数字设计:四基数乘法器模块.pdfVIP

  • 0
  • 0
  • 约1.98万字
  • 约 14页
  • 2026-02-26 发布于北京
  • 举报

基于Verilog HDL高级数字设计:四基数乘法器模块.pdf

`定义All_Ones8b1111_1111`定义

All_Zeros8b0000_0000

moduleMultiplier_Radix_4_STG_0(product,Ready,word1,word2,Start,clock,reset);

parameterL_word=8;

输出[2*L_word‑1:0]产品;输出准备就绪;输入[

L_word‑1:0]word1,word2;输入开始,时钟,复

位;线装载单词,移位,加减,准备就绪;线[2:

0]BPEB;

Datapath_Radix_4_STG_0M1

(产品,BPEB,单词1,单词2,加载单词,移位1,移位2,加法,减法,时钟,复位);

Controller_Radix_4_STG_0M2

(Load_words,Shift_1,Shift_2,Add,Sub,Ready,BPEB,Start,时钟,复位);

endmodule

moduleController_Radix_4_STG_0

(加载单词,移位1,移位2,加法,减法,就绪,BPEB,开始,时钟,复位);

参数L_word=8;输出加载单词,移位1,移位2,加法,减法,就绪;输

入开始,时钟,复位;输入[2:0]BPEB;寄存器[4:0]状态,下一个

状态;参数S_idle=0,S_1=1,S_2=2,S_3=3;参数S_4=4,S_

5=5,S_6=6,S_7=7,S_8=8;参数S_9=9,S_10=10,S_11=11,

S_12=12;参数S_13=13,S_14=14,S_15=15;参数S_16=16,S_

17=17;

reg加载单词,移位1,移位2,加,减;

wire准备好=((状态S_idle)!复位)||(下一个状态S_17);

always@(posedge时钟orposedge复位)if(

复位)状态S_idle;else状态=下一个状态;

always@(stateorStartorBPEB)begin//下状和控制逻

一态

辑Load_words=0;Shift_1=0;Shift_20;Add0;Sub=0;

`defineAll_Ones8b1111_1111

`defineAll_Zeros8b0000_0000

moduleMultiplier_Radix_4_STG_0(product,Ready,word1,word2,Start,clock,reset);

parameterL_word=8;

output[2*L_word-1:0]product;

outputReady;

input[L_word-1:0]word1,word2;

inputStart,clock,reset;

wireLoad_words,Shift,Add_sub,Ready;

wire[2:0]BPEB;

Datapath_Radix_4_STG_0M1

(product,BPEB,word1,word2,Load_words,Shift_1,Shift_2,Add,Sub,clock,rese

文档评论(0)

1亿VIP精品文档

相关文档