Verilog MIPS32 CPU(六)-- MDU
- Verilog MIPS32 CPU(一)-- PC寄存器
- Verilog MIPS32 CPU(二)-- Regfiles
- Verilog MIPS32 CPU(三)-- ALU
- Verilog MIPS32 CPU(四)-- RAM
- Verilog MIPS32 CPU(五)-- CP0
- Verilog MIPS32 CPU(六)-- MDU
- Verilog MIPS32 CPU(七)-- DIV、DIVU
- Verilog MIPS32 CPU(八)-- 控制器
module MDU(input clk,rst,input [2:0] mdu,input [31:0] rdata1,rdata2,output [63:0] mul_out,output reg pc_ena,output reg [31:0] hi,lo);wire div_start,divu_start,div_busy,divu_busy,div_over,divu_over;wire [63:0] mult_out,multu_out,div_out,divu_out;assign mul_out = mult_out;/*1 mult2 multu3 div 4 divu5 mthi6 mtlo*///assign pc_ena=1'b1;always@(*)begincase(mdu)3'h3: pc_ena = div_over ||mdu!=3'h3;3'h4: pc_ena = divu_over||mdu!=3'h4;default:pc_ena = 1'b1;endcaseendassign div_start = mdu==3'h3&&!div_busy;assign divu_start = mdu==3'h4&&!divu_busy;always@(posedge clk or posedge rst)beginif(rst) beginhi<=32'b0;lo<=32'b0;endelse begincase(mdu)3'h1: {hi,lo} <= mult_out;3'h2: {hi,lo} <= multu_out;3'h3: {lo,hi} <= div_out;3'h4: {lo,hi} <= divu_out;3'h5: hi <= rdata1;3'h6: lo <= rdata1;endcaseend endmult_gen_0 multiplier(.A(rdata1),.B(rdata2),.P(mult_out));mult_gen_1 multiplier_unsigned(.A(rdata1),.B(rdata2),.P(multu_out));DIV DIV(.dividend(rdata1),.divisor(rdata2),.clock(clk),.reset(mdu!=3'h3), .start(div_start),.q(div_out[63:32]),.r(div_out[31:0]),.over(div_over),.busy(div_busy));DIVU DIVU(.dividend(rdata1),.divisor(rdata2),.clock(clk),.reset(mdu!=3'h4), .start(divu_start),.q(divu_out[63:32]),.r(divu_out[31:0]),.over(divu_over),.busy(divu_busy)); endmodule
转载于:https://www.cnblogs.com/liutianchen/p/7616757.html
Verilog MIPS32 CPU(六)-- MDU相关推荐
- Verilog MIPS32 CPU(一)-- PC寄存器
Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...
- Verilog MIPS32 CPU(八)-- 控制器
Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...
- Verilog流水线CPU设计(超详细)
上篇:Verilog单周期CPU设计(超详细) 本篇完整工程下载链接,已于19.12.17更新 实验 流水线CPU 一.设计目的与要求 1.1 实验内容 1.2 实验要求 1.3 实验创新 二.课程设 ...
- HDL4SE:软件工程师学习Verilog语言(六)
6 表达式与赋值 我们终于可以继续学习了,也是没有办法,其实工作的80%的时间都是在忙杂事,就像打游戏一样,其实大部分时间都在打小怪,清理现场,真正打终极BOSS的时间是很少的,但是不清小怪,打BOS ...
- 怎么运行verilog语言_(六) Verilog入门之有限状态机
现在让我们回到主线,继续FPGA编程的学习.之前我们我们在测试FPGA是否工作时所用到的代码里面有组合逻辑,如加法器:也有时序逻辑,如将时钟信号分频而得到的闪烁灯. 但如何组合这两种逻辑实现我们所需的 ...
- 高性能低功耗服务器cpu,六核仅35W:AMD披露超低功耗服务器CPU
[IT168 资讯]除了面向双路和四路高性能市场的八/十二核心处理器"马尼库尔"(Magny-Cours),AMD下一代服务器平台还有另一个分支,那就是面向单路和双路节能型领域的四 ...
- 程序员职业生涯规划必读的十本书
参与文末每日话题讨论,赠送异步新书 你所能犯的最大错误就是相信自己是在为别人工作.这样一来你对工作的安全感已然尽失.职业发展的驱动力一定是来自个体本身.记住:工作是属于公司的,而职业生涯却是属于你自己 ...
- sign函数的功能oracle,Oracle中sign函数和decode函数的使用
Time-travel Models 1. Standard Iterative Branching model Source Code Butterfly Effect Next E ...
- HDL4SE:软件工程师学习Verilog语言(十一)
11 流水线 前面一节介绍了状态机的概念.状态机用于描述事务处理的一个程序性流程,可以组成顺序,分支,循环的事务处理流程.这些概念本来在verilog中的行为级描述中是有的,但是由于不是RTL描述,因 ...
最新文章
- 用于自动驾驶的实时 YUV 多任务 CNN
- 浅析Java线程的三种实现
- element table 表格设置max-height 没有出现滚动条,多渲染了一列。
- ORACLE与PostgreSql的区别
- 通过GitHub Actions构建和部署Jekyll网站
- ShardingSphere-Proxy 主从读写 入门使用
- [UVA1374]Power Calculus【迭代加深】
- 浏览器中的 HTTP 请求从发起到结束经历的所有阶段
- cad2020 开始_中望cad2020发布,附简体中文免费版安装教程
- 【滤波器】7. 带通滤波器
- 鼠标滑轮成了页面缩放的解决方法
- 计算机科技英语论文,计算机科技英语论文大纲模板 计算机科技英语论文提纲怎么写...
- Redis Cluster内存爆满
- adobe illustrator软件能做什么
- P1567统计天数-C++编程解析-数组
- mac下如何将adobe acrobat reader dc设为.pdf的默认打开方式?
- 这些国外支付方式,你都听过或用过吗?
- 一步步制作Arduino智能小车
- 奇趣网站收藏家(网站)
- QT 5.3.2 + VC2012 中文乱码 完美解决方案
热门文章
- 马云退休启示录:第一代互联网创始人老去,谁来接棒?
- 单相LCL型并网逆变器电容电流反馈有源阻尼控制实现
- 1月6日 9 点!Doris Summit 2022 即将拉开序幕,年度技术盛会即刻报名!
- 英语语言学专业学习计算机语言学,英语语言学
- 小红帽 oracle,linux 小红帽 一键安装ffmpeg
- wfp(微软)对付flash
- win10家庭中文正式版输入法切换快捷键设置为Ctrl+Shift
- Twitter API: Door To Social Media Analysis I
- 我的毕业季:从开始工作到大学毕业
- IBM 发布全球首个 2nm 芯片制造技术