串行信号发生器设计 (2)课件_第1页
串行信号发生器设计 (2)课件_第2页
串行信号发生器设计 (2)课件_第3页
串行信号发生器设计 (2)课件_第4页
串行信号发生器设计 (2)课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

有符号数的+、-运算寄存器堆的设计自命题(序列检测器设计)任务(二)设计一个简单ALU单元。要求:1.输入按键0—9(或用10个开关代替数字0—9)。2.用数码管(或发光二极管)显示结果数值。模块接口信号名信号方向描述A[31:0]输入ALU第一个数据输入端B[31:0]输入ALU第二个数据输入端Ctrl[4:0]输入ALU运算功能编码C[31:0]输出ALU运算结果

Zero输出运算结果0标志

Overflow输出运算结果溢出标志(只在进行有符号数运算才有意义)Compare输出比较运算的结果

编号

功能名称Ctrl编码运算功能1无操作00000C=B2‘无符号加’运算00001C=A+B3‘有符号加’运算00010C=A+B4‘减’运算00011C=A-B5‘有符号减’运算00100C=A-B编号

功能名称Ctrl编码运算功能6‘与’运算00101C=A&B7‘或’运算00110C=A|B8‘或非’运算00111C=~(A|B)9‘异或’运算01000C=A^B10‘小于置位’运算01001C=(A<B)?1:011‘有符号小于置位’运算01010C=(A<B)?1:012小于001011Compare=(A<0)?1:013小于等于001100Compare=(A≤0)?1:014大于001101Compare=(A>0)?1:015大于等于001110Compare=(A≥0)?1:016等于01111Compare=(A=B)?1:017不等10000Compare=(A≠B)?1:0功能定义开始C=A+BA、B都是正数?和的最高位=1?置溢出标志和的最高位清零A、B都是负数?和的最高位=0?置溢出标志和的最高位置1YYYYNNNN2.流程图:moduleALU(A,B,C,ctl,zero,over,cmp);input[3:0]A,B;input[4:0]ctl;output[3:0]C;outputzero,over,cmp;reg[3:0]C;regcmp,over;assignzero=(C==4'b0000)?1:0;always@(ctlorAorB)case(ctl)5'd00:C=B;5'd01:C=A+B;5‘d02:C<=A+B;//有符号5'd03:C=A-B;5‘d04:C=A-B;//有符号5'd05:C=A&B;5'd06:C=A|B;5'd07:C=~(A|B);5'd08:C=A^B;5'd09:beginif(A<B)C=1;elseC=0;end5‘d10:beginif(A<B)C=1;elseC=0;end//有符号5'd11:beginif(A<0)cmp=1;elsecmp=0;end5'd12:beginif(A<=0)cmp=1;elsecmp=0;end5'd13:beginif(A>0)cmp=1;elsecmp=0;end5'd14:beginif(A>=0)cmp=1;elsecmp=0;end5'd15:beginif(A==B)cmp=1;elsecmp=0;end5'd16:beginif(A!=B)cmp=1;elsecmp=0;endendcaseendmodule5'd02:beginC<=A+B;if(!(A[3]^B[3])&&!A[3]) if(C[3])beginover<=1;C[3]<=0;end

elseover<=0;else

if(!(A[3]^B[3])&&A[3]) if(!C[3])beginover<=1;C[3]<=1;end

elseover<=0;

end//3.原程序:任务(二)设计寄存器堆。要求:完成对4个不同数据、不同地址的读写操作。模块接口信号定义信号名信号方向描述Clk输入MIPS-C处理器时钟Reset输入复位信号RS1[4:0]输入读寄存器文件时的第1个寄存器下标RS2[4:0]输入读寄存器文件时的第2个寄存器下标RD[4:0]输入写寄存器文件时的寄存器下标RegWrite输入寄存器文件写使能RData1[31:0]输出

读寄存器文件时的第1个寄存器的输出RData2[31:0]输出读寄存器文件时的第2个寄存器的输出WData[31:0]输出?寄存器文件写入数据功能定义编号功能名称功能描述1读寄存器RData1输出RS1[4:0]所寻址的寄存器;RData2输出RS2[4:0]所寻址的寄存器。2写寄存器当时钟上升沿到来时,并且RegWrite有效时,WData被写入RD[4:0]所寻址的寄存器自命题(序列检测器设计)clkxy序列检测器设计一个学号序列检测器,检测学号的低6位构成的8421码序列。检测器模块模型:信号发生器说明:clk同步时钟;x串行信号输入;y序列检测成功指示信号。串行信号发生器设计能接收扫描键盘的数字信息键盘信息可显示在扫描显示器上按输入信息的最后四位BCD码作为串行信号发生器的输入数据,并作串行输出设计过程键值输入(JZin

):八位键扫描信号(Jscan

):一位,输出显示输出(XSout

):八位显示扫描信号(XSscan

):三位,输出串行信号输出(CXXH

):一位工作时钟(CLK):一位,输入串行同步时钟(synCLK

):一位,输出第一步:确定引脚的位宽、名称和输入输出极性。(依据:功能要求)8JZinJscan8XSout3XSscanCXXHCLKsynCLKCXXHFSQ设计过程第三步:模块设计:时钟模块CLKsynCLKnJZCLKXSCLKCLKFPQ问题:各时钟的频率(速度)不知道?设计过程第三步:模块设计:串行信号发生器模块CXXHsynCLK43BCDinXCDZsynCLKnCXFSQ键盘硬件电路CBAY0Y7KB0KB1KB2RL0RL1RL2RL3RL4RL5RL6RL7实验箱上提供的接口键值识别模块流程开始Y置第一次标志存键值和扫描状态N键值≠hff?Y清第一次标志转换键值为BCD码置键值有效标志第一次标志有效且扫描状态相等?N清键值有效标志设计过程第三步:模块设计:扫描显示模块XSoutXSscan83XSCLK4BCDinSMXSyxj引脚说明:CXXHsynCLK设计过程第三步(1):扫描显示模块的再设计XSoutXSscan83XSCLK4BCDin4BCDoutXCDZ3SMXSXSmem显存7段译码器XSout8多路选择器43地址发生器XSCLKXSscanXCDZBCDoutBCDin?问题:多个地址访问,存储器的内容会变吗?显示应至少两种模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论