64位乘法器实验报告
一种64位Booth乘法器的设计与优化

关 爵 :B o 编码;并行乘法器 ; 4 ot h 6 位乘法器 ;设计优化 ;功耗
De i n a tm i a i n o 4- i Bo t u tp i r sg nd Op i z to f6 - t o h M li le b
H E Jun. ZH U Yi ng
化, 通过 多种 方法验证设计 优化 的正确性 ,采用标准单元库进行逻辑综合评估 。结果表 明,工作频率可达 1 H 以上 , .G z 0 面积减少 9 4 . %, 6 动态 功耗和漏 电功耗分别减少 6 4 . %和 l. %,能有效减少乘法器 的面积和功耗 ,达 到预期 目 。 3 18 9 标
.பைடு நூலகம்
C e r aeteae dp we o u t no n a d ce s aa o rc ns mpi fmulpire etv l se p ce h r n o t l f cieya x e td i e
.
[ e od IB o c d g p a e m l lr 6一i l lrd s t i t n p w r o sm t n K y r s o t e o i ;a ll u i i ; b t i ;ei o i z i ; o e cn u p o w h n n r l t e 4 t i e p mu p n g p m ao i
DOI 03 6 /i n10 .4 82 1.60 6 :1.9 9 .s.0 03 2 .0 21.6 js
1 概述
乘法器是微处理器和数字信号处理器( S )h D P q最基本
面 积具 有重要 意义 。
本文针对 国产多核处理器的整数乘法器,对其 B oh ot 编码方式进行优化 ,提出一种新的 B o ot h编码方式。
计算机组成原理实验_乘法器

数学与计算机学院计算机组成原理实验报告年级08信计学号2008431066 姓名刘泽隶实验地点主楼528 指导教师陈昊实验项目运算器部件实验乘法器实验日期2010-11-10一、实验目的理解并掌握乘法器的原理。
二、实验原理(1)从右到左用乘数的每一位乘以被乘数,每一次乘得的中间结果比上一次的结果往左移一位。
(2)积的位数比被乘数和乘数的位数要多得多。
如果忽略符号位,n位的被乘数和m位的乘数相乘的结果的位数有(m+n)位。
每一位的乘法:(1)如果乘数位是1,则简单的复制被乘数到合适的位置(1*被乘数);(2)如果乘数位是0,则在合适的位置置0。
三、实验步骤(1) 打开QuartusⅡ,参照3.4节,安装ByteBlasterⅡ。
(2) 将子板上的JTAG端口和PC机的并行口用下载电缆连接。
打开实验台电源。
(3) 执行Tool->Progmmer命令,将Hamming.sof下载到FPGA中。
SOF(SRAMobject file)类型的文件是一种课下载到FPGA中的目标文件。
注意在执行Programmer命令中,英在program/configure下的方框中打钩,然后下载。
(4) 在实验台上通过模式开关选择FPGA-CPU独立调试模式010。
(5)将开关CLKSEL拨到0,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU所需要的时钟使用正单脉冲时钟。
四、实验现象本实验实现4位数的Booth乘法(有符号数乘法)输入输出规则对应如下:(1)输入的4位被乘数md3~md0对应开关SD11~SD8。
(2)输入的4位乘数mr3~mr0对应开关SD3~SD0。
(3)按单脉冲按钮,输入脉冲,也即节拍。
(4)乘积productp8-p0,对应灯A8-A0。
(5)当计算结束时,final信号为1,对应灯A7。
如表所示的booth算法运算过程,4位乘法一共需要0-8共9个小步骤计算出结果,本实验也是通过9个小步骤实现的,通过按单脉冲按钮输入脉冲,观察积寄存器的变化,掌握booth乘法器的原理。
抄作业_verilog_实现64bits乘法器-3.9

抄作业_verilog_实现64bits乘法器-3.9抄⼀个Verilog⼤作业。
题⽬描述:⽤VerilogHDL设计实现64bit⼆进制整数乘法器基本功能:1.底层乘法器使⽤16*16\8*8\8*32\8*16⼩位宽乘法器来实现,底层乘法器可以使⽤FPGA内部IP实现;2.基于modelsim仿真软件对电路进⾏功能验证;3.基于Quartus平台对代码进⾏综合及综合后仿真,芯⽚型号不限;4.电路综合后的⼯作频率不低于50MHz。
第 1 章电路的设计思想1.1 不作优化的乘法器结构对于⼀个乘法来说,它的计算步骤是⽤乘数的每⼀位以从低到⾼的顺序与被乘数相乘再错位相加。
那么,如果把64位因数与64位因数相乘的结果展开以后会发现,错位相加的那些加数是可以⽤16×16位乘法器或者8×64位乘法器的错位相加的加数来凑⼀起的。
我可以通过把四个3×3位乘法器的运算结果进⾏移位和相加以后,可以实现⼀个6×6位乘法器的运算结果。
在上图中,因为乘法器是要调⽤3×3位乘法器,所以需要把两个因数分别切割成两个3位来调⽤乘法器。
所以需要2×2=4个乘法器。
根据题⽬所给出的允许调⽤的乘法器⾥,为了使调⽤的乘法器个数最⼩,我的⼦乘法器选择的范围将聚焦在16×16位乘法器和8×32位乘法器。
不论调⽤这⾥⾯那个乘法器,最终都是需要16个乘法器的。
16个乘法器并⾏运算同时送出数据。
若调⽤16位乘法器设计电路,⽆优化的情况下需要调⽤16个乘法器,8×32位乘法器同理。
此外,64位电路的设计的移位设计有着极强的规律,在电路的设计中,这种规律性会体现在电路结构的相似性。
调⽤8×32位乘法器的设计的分析思路与⽅法与上⽂类似。
1.2 乘法器结构的折叠优化不论采⽤8×32位还是16位的⼦乘法器来设计64位乘法器,如果⽤⼗六个乘法器并⾏运算,然后再对结果进⾏移位和相加。
乘法器——精选推荐

乘法器⽬录⼀、实验⽬的 (1)⼆、实验原理 (1)三、实验内容 (1)四、实验条件 (3)五、实验步骤及仿真 (3)编码如下; (3)仿真如下: (5)六、收获与总结 (5)乘法器⼀、实验⽬的设计⼀个能进⾏两个⼗进制数相乘的乘法器,乘数和被乘数均⼩于100,通过按键输⼊,并⽤数码管显⽰,显⽰器显⽰数字时从低位向⾼位前移,最低位为当前显⽰位。
当按下相乘键后,乘法器进⾏两个数的相乘运算,数码管将乘积显⽰出来。
⼆、实验原理1、了解乘法器的⼯作原理。
2、了解复杂时序电路的设计流程。
三、实验内容1、乘数和被乘数的输⼊仍⽤数据开关K1-K10分别代表数字1、2、…、9、0,⽤编码器对数据开关K1~K10的电平信号进⾏编码,编码器真值表:数据开关电平信号编码器输出K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 Q3 Q2 Q1 Q0↑0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 00 1 1 11 0 0 0 1 0 0 1 0 0 0 0⽤两个数码管显⽰乘数,两个数码管显⽰被乘数。
设置“相乘”信号mul,当乘数输⼊完毕后,mul有效使输⼊的乘数送寄存器模块寄存。
再输⼊被乘数,显⽰在另两个数码管上。
设置“等于”信号equal,当乘数和被乘数输⼊后,equal有效,使被乘数送寄存模块寄存,同时启动乘法摸块。
两数相乘的⽅法很多,可以⽤移位相加的⽅法,也可以将乘法器看成计数器,乘积的初始值为零,每⼀个时钟周期将被乘数的值加到积上,同时乘数减⼀,这样反复执⾏,直到乘数为零。
一种64位Booth乘法器的设计与优化

一种64位Booth乘法器的设计与优化何军;朱英【摘要】In order to solve the issue of large area and power dissipation overhead of the 64-bit integer multiplier of the homebred multr-core processor, the Booth encoding algorithm is optimized and a new Booth encoding is put forward. The correction of the optimized design is verified through multiple methods, and the design is logic synthesized based on standard cell library. As is turned out that the design can work at 1.0 GHz at least, its area is reduced by 9.64% and its dynamic and leakage power dissipation is decreased by 6.34% and 11.98%, which means the optimization can decrease the area and power consumption of multiplier effectively as expected.%针对国产多核处理器的64位整数乘法器面积和功耗开销大的问题,提出一种新的Booth编码方式,对其Booth编码方式进行优化,通过多种方法验证设计优化的正确性,采用标准单元库进行逻辑综合评估.结果表明,工作频率可达1.0 GHz以上,面积减少9.64%,动态功耗和漏电功耗分别减少6.34%和l 1.98%,能有效减少乘法器的面积和功耗,达到预期目标.【期刊名称】《计算机工程》【年(卷),期】2012(038)016【总页数】2页(P253-254)【关键词】Booth编码;并行乘法器;64位乘法器;设计优化;功耗【作者】何军;朱英【作者单位】上海高性能集成电路设计中心,上海201204;上海高性能集成电路设计中心,上海201204【正文语种】中文【中图分类】TP3681 概述乘法器是微处理器和数字信号处理器(DSP)中最基本的运算单元,其速度与处理器的性能密切相关[1]。
相乘器实验报告

一、实验目的1. 理解相乘器的基本原理和工作方式。
2. 掌握相乘器的构造方法和测试方法。
3. 分析相乘器的性能指标,如精度、速度和功耗。
4. 培养动手能力和实验操作技能。
二、实验原理相乘器是一种实现两个数相乘的电子电路。
根据乘法运算的原理,可以将乘法分解为一系列加法和移位操作。
相乘器通常采用补码形式进行运算,以保证运算的符号位正确。
三、实验器材1. 74LS181 4位并行乘法器2. 74LS86 4位全加器3. 74LS123 4位同步移位寄存器4. 74LS00 2输入与非门5. 74LS02 2输入或非门6. 74LS20 4位D触发器7. 74LS244 8位三态缓冲器8. 74LS08 2输入与门9. 74LS139 2-4线译码器10. 74LS74 4位D触发器11. 74LS32 4位优先编码器12. 74LS175 8位锁存器13. 74LS04 6反相器14. 74LS573 8位三态锁存器15. 74LS112 4位双向移位寄存器16. 电源17. 测试仪18. 负载电阻19. 接线板四、实验步骤1. 根据实验原理图,搭建相乘器电路。
2. 检查电路连接是否正确,确保电路无短路和开路现象。
3. 在测试仪上设置测试数据,如A=3,B=5。
4. 逐个检查相乘器的各个模块,观察输出结果。
5. 记录相乘器的输出结果,与测试仪显示结果进行对比。
6. 逐步改变输入数据,观察相乘器的性能表现。
7. 分析相乘器的精度、速度和功耗等性能指标。
五、实验结果与分析1. 实验结果(1)当A=3,B=5时,相乘器输出结果为15。
(2)改变输入数据,观察相乘器的输出结果,结果符合预期。
2. 分析(1)相乘器的精度:在实验过程中,相乘器的输出结果与测试仪显示结果基本一致,说明相乘器的精度较高。
(2)相乘器的速度:相乘器的运算速度较快,可以满足实际应用需求。
(3)相乘器的功耗:相乘器的功耗相对较低,有利于降低系统功耗。
实验三 模拟乘法器应用实验报告

实验题目:乘法器调幅(AM、DSB、SSB)、同步检波、混频及倍频实验原理:2TP3(2P3、2Q3)—载波(本振)信号输入端;2Q4—调制信号(或高频已调信号)输入端;2TP4—调制信号(或高频已调信号)输入端测试点;2TP5(2P5)—乘法器同相输出端;2TP5A—乘法器反相输出端;2TP6(2Q6)—2.5MHz带通滤波器输出;2W11—调制信号(或高频已调信号)输入端幅度调节;2W1—乘法器1、4输入端平衡调节;2W2—增益调节。
图3.1 乘法器调幅、混频实验电路图2TP9(2P9)—载波(本振)信号输入端;2TP10(2P10)—高频已调信号输入端;2TP11(2P11)—同步检波输出端;2W5—1、4输入端平衡调节。
图3.2 乘法器同步检波器电路图2TP7(2P7)—信号输入端;2TP8(2P8)—信号输出端;2W3—调节中心频率;2W4—调节输出幅度。
实验内容及步骤:一. 普通波调幅(AM )1. 电路连接《调幅与调频接收模块》接±12V 电源电压;打开“乘法器调幅 混频”电路的电源开关(电源指示灯点亮);2TP3接载波信号C u (20KHz ,100mV PP );2TP4接调制信号u Ω(1kHz 、300mVpp );用示波器同时观测C u 、u Ω和同相输出端(2TP5)。
注:C u 由示波器(Wave Gen )提供;u Ω由信号源(F20A A 路)提供,并以u Ω所接示波器通道做触发源。
2. 电路调整调节2W11,使2TP4端幅度最大;调节示波器使波形清晰稳定;调节2W1,使2TP5输出信号为AM 已调波AM u (如图3.4);调节2W2,使AM u 的波峰、波谷无压缩失真(2W1、2W2往往配合调节)。
3. 时域测量记录或存储C u 、u Ω和AM u 的时域波形,按图3.4计算调制度m :图3.4 AM 波时域波形%100⨯+-=BA BA m4.频域测量①频谱仪射频输入(RF IN)接反相输出端2TP5A。
64位乘法器实验报告

64位乘法器实验报告64位乘法器设计实验是我在科大的第一个课程设计,verilog程序的熟练掌握对于微电子专业的学生来讲是非常必要的,对于此次设计我也花费了很长时间。
本设计分为3个部分,即控制和(1)状态选择部分,(2)乘法器部分,(3)加法器部分。
以下我将按此顺序进行说明。
需要指出的是,在实际设计中的顺序恰好是颠倒的,这与设计思路有关,在刚开始的时候由于对整体没有一个很好的把握就先选择最简单的一部分几加法器开始入手,然后就是乘法器,最后作乐一个状态控制电路将两部分联系起来。
状态选择部分设计:本电路状态选择部分设计比较简单,只有一个控制信号sel来控制电路的工作状态,我选定的状态是:sel为00的时候做加法,sel为01时做减法,sel为10时做乘法。
从节省功耗的角度出发,当电路处于加法状态的时候,乘法器最好是能够不工作,反之也一样在乘法器工作时要求加法器也处于不工作状态。
我在设计中在两个电路块的输入上都加了一个二选一开关,使不处于工作状态的电路块的输入始终为0,可是使电路减少由动态翻转产生的功耗。
加法器的设计:为了能更好地掌握加法器的设计过程,本部分采用门级描述语言,本加法器采用流水线的设计方案。
实际上该部分是不需要流水,因为乘法器是本电路的关键路径,即使乘法器采用流水线的设计方案延迟也肯定比加法器要大。
为了能够掌握流水线设计,加法器也采用了流水线来实现。
加法器的整体结构见附图(1),有超前进位产生电路,和超前进位电路来实现。
超前进位产生电路是对两个64位输入按位进行异或和与从而产生超前进位电路的输入信号P,Q。
教材上在此处也产生了部分和结果S,但我认为在此处产生结果不妥,因为要产生部分和结果必须有上一级的进位信号,对于本加法器进位信号将在下一步才产生。
所以我将作后结果的产生放在了最后一拍来完成将P与产生的进位信号按位异或即可得到最后结果。
但要注意P与进位信号CP产生的时间是不一致的,所以P信号要送到寄存器中等待一拍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
64位乘法器实验报告64位乘法器设计实验是我在科大的第一个课程设计,verilog程序的熟练掌握对于微电子专业的学生来讲是非常必要的,对于此次设计我也花费了很长时间。
本设计分为3个部分,即控制和(1)状态选择部分,(2)乘法器部分,(3)加法器部分。
以下我将按此顺序进行说明。
需要指出的是,在实际设计中的顺序恰好是颠倒的,这与设计思路有关,在刚开始的时候由于对整体没有一个很好的把握就先选择最简单的一部分几加法器开始入手,然后就是乘法器,最后作乐一个状态控制电路将两部分联系起来。
状态选择部分设计:本电路状态选择部分设计比较简单,只有一个控制信号sel来控制电路的工作状态,我选定的状态是:sel为00的时候做加法,sel为01时做减法,sel为10时做乘法。
从节省功耗的角度出发,当电路处于加法状态的时候,乘法器最好是能够不工作,反之也一样在乘法器工作时要求加法器也处于不工作状态。
我在设计中在两个电路块的输入上都加了一个二选一开关,使不处于工作状态的电路块的输入始终为0,可是使电路减少由动态翻转产生的功耗。
加法器的设计:为了能更好地掌握加法器的设计过程,本部分采用门级描述语言,本加法器采用流水线的设计方案。
实际上该部分是不需要流水,因为乘法器是本电路的关键路径,即使乘法器采用流水线的设计方案延迟也肯定比加法器要大。
为了能够掌握流水线设计,加法器也采用了流水线来实现。
加法器的整体结构见附图(1),有超前进位产生电路,和超前进位电路来实现。
超前进位产生电路是对两个64位输入按位进行异或和与从而产生超前进位电路的输入信号P,Q。
教材上在此处也产生了部分和结果S,但我认为在此处产生结果不妥,因为要产生部分和结果必须有上一级的进位信号,对于本加法器进位信号将在下一步才产生。
所以我将作后结果的产生放在了最后一拍来完成将P与产生的进位信号按位异或即可得到最后结果。
但要注意P与进位信号CP产生的时间是不一致的,所以P信号要送到寄存器中等待一拍。
以与CP信号保持时序上的一致。
毋庸置疑64位加法器的设计肯定要采用超前进位电路来实现。
考虑到一般的与门或或门的扇入不大于4的原则,我对超前进位电路采取每4组一个超前进位块,同时分层超前进位来实现。
这样做的好处是能降低每个超前进位块的设计复杂程度,实现电路在性能和复杂性之间的一个优化。
电路超前进位部分的总体结构见附图(2)。
超前进位按设计要求是产生除最高进位之外的所有进位信号。
同时最高位的进位信号是由一个额外的组合电路来实现。
CP[63]=G[63]|(P[63] & G[62])|(P[63] & P[62] & G[61])|(P[63]&P[62]&P[61]&G[60])|(P[63]&P[62]&P[61]&P[60]&G[59]);在所有进位信号产生之后加法器的输出就是:sum[64:0]<={CP[63],(P_sec[63:0]^{CP[62:0],sel[0]})};sel[0]下面将对此做出解释。
我设定sel信号为01时做减法,sel为00时做加法。
减法电路设计比较简单只要在sel为0是将输入信号Y取反再加1即可。
为了减法不增加额外的开销,我将sel[0]作为加法器的最低位进位信号,这样就可以解决加1的问题。
需要注意的是减法器的最高位不是进位信号,而是借位信号。
为1表明输入X小于Y。
乘法器电路设计:该部分是本电路设计的重点,我采用的方法是将乘数Y分为4段,每段16位分别与乘数X相乘,该部分采用booth编码算法,在得到结果后再将4个部分积移位相加即得到乘法结果。
结构图见图(3)。
Booth算法采用相加和相减的操作计算补码数据的乘积。
Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。
判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。
在上例中,第一次判断被乘数0110中的最低位0以及右边的位(辅助位0),得00;所以只进行移位操作;第二次判断0110中的低两位,得10,所以作减法操作并移位,这个减法操作相当于减去2a 的值;第三次判断被乘数的中间两位,得11,于是只作移位操作;第四次判断0110中的最高两位,得01,于是作加法操作和移位,这个加法相当于加上8a的值,因为a的值已经左移了三次。
一般而言,设y=y0,y l y2…y n为被乘数,x为乘数,y i是a中的第i位(当前位)。
根据y j 与y i+1的值,Booth算法表示如下表所示,其操作流程如下图所示。
在Booth算法中,操作的方式取决于表达式(y i+1-y i)的值,这个表达式的值所代表的操作为:0 无操作+1 加x-1 减xBooth算法操作表示y i y i+1操作说明0 0 无处于0串中,不需要操作0 1 加x 1串的结尾1 0 减x 1串的开始1 1 无处于1串中,不需要操作乘法器的设计要真正实现比较复杂,我的设计也只能是大概地实现其功能,所以对移位相加,就没有在详细地编写程序。
不管怎么样这次设计我还是收获颇丰,由于本科不是这个专业,所以在变成方面相当有欠缺。
在设计过程中漏洞百出,经过长时间调试终于解决所有问题。
下面是我总结的一些修改谬误的经验,总结的相当不全面,请多见谅:在编程中的错误小结:always @ (posedge sclk or negedge rst) // Bring the clock scl by way of sclkbegin //And the frequency of scl is half of sclk'sif (!rst)scl<=1;elsescl<=~sclk; !!!!!正确应该为scl<=~scl;end该错误的后果是导致scl的输出波形一直为1,不能实现对sclk的2分频在模拟波形的时候将会出现错误!!!注意在写分频程序的时候应该避免此类错误。
2)在line_data_singdate.v 中单词singdate 被写成sigdate,该错误导致在top文件中的singdata mo(.sclk(sclk),.data(data),.d_ena(d_ena));语句中将出现未定义的错误。
3)为语法错误,在循环或条件语句中,应该让这些语句的头尾对应出现,是个好习惯否则在程序较长的时候可能会漏掉end语句。
** Error: E:/verilog/16_adder/main_programme.v(72): Undefined variable: b0.错误之处always@(P[0]or G[0] or P[1] or G[1] or P[2] or G[2] or P[3] or 1‘b0) always敏感变量中不应该有常数值beginCP[0]<=G[0]|(P[0]&1’b0); 此处1’b0 不多余不应该存在下同CP[1]<=G[1]|(P[1]&G[0])|(P[1]&P[0]&1’b0);CP[2]<=G[2]|(P[2]&G[1])|(P[2]&P[1]&G[0])|(P[2]&P[1]&P[0]&1’b0);** Error: E:/verilog/16_adder/main_programme.v(73): near ")": syntax error在上述错误修正之后该错误消失,说明该错误为有其他错误所引起的。
// bring result,always@(P_sec or G_sec or CP)beginif(!rst)sum[64:0]<=65'b0;elsesum[64:0]<={CP[63],(P[63:0]^{1'b0,CP[62:0]})}; 此处的错误要尽量避免位数上对应不上P的最底位应与1‘b0相异或。
应注意在高低位安排上要保持一致。
endendmodule在编写程序的过程中添加新的输入或输出时要注意以下几点:以我在设计中加入输入信号sel信号为例1)在主程序中需要加入sel的程序块中加入sel,切记以下是容易遗漏的地方,若always块中出现sel,则always的敏感信号中也必须有sel。
2)在testbench中也要有该信号的输出,并且要记住在sixty_adder m0(.X(X),.Y(Y),.sum(sum),.clk(clk),.rst(rst),.sel(sel)); 语句中也要把sel添加进去。
在检查输出一直为0错误时的一些办法,对于这类错误系统在编译的时候没有报错,说明不是语法问题。
检查起来比较困难,经我的分析,输出一直为0可能由以下几点原因造成的。
1)可能乘法器的输入一直为0,在本程序中乘法器的输入是由sel选通实现的,由于sel信号还同时控制加法器的输入信号,而加法器工作正常,说明sel选通输入的程序没有问题。
2)还有一个原因就是乘法器一直处于复位状态,但检查之后发现复位信号一切正常。
3)能让乘法器一直为0扎还有一种可能。
就是在case语句的最后default语句中乘法器的输入被一直置0,若问题出在此处,说明case语句的条件一直不成立,也就是说问题可能发生在case上。
经检查发现case({Y_tmp1[0], aid}) 出现了问题,由于aid信号为4位信号,而定义的状态信号为两位,因此case的状态就一直是defaule,问题找到正确语句应改为 case({Y_tmp1[0], aid[1]}),次错误比较不显眼,需要对程序进行仔细分析才能找到。