简单8位CPU设计verilog微处理器,源码/视频

名称:8位CPU设计微处理器

软件:QuartusII

语言:Verilog

代码功能:

    设计一个简单的处理器,可以实现加减法以及简单的逻辑运算。

    设计包括程序计数器电路,指令存储器电路,指令译码器电路(控制器),运算电路,数据存储器(寄存器)电路。

演示视频:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=213

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

代码下载:

8位CPU设计微处理器 软件:QuartusII 语言:Verilog 代码功能: 设计一个简单的处理器,可以实现加减法以及简单的逻辑运算。 设计包括程序计数器电路,指令存储器电路,指令译码器电路(控制器),运算电路,数据存储器(寄存器)电路。名称:8位CPU设计(代码在文末付费下载)软件:QuartusII语言:Verilog代码功能: 设计一个简单的处理器,可以实现加减法以及简单的逻辑运算。 设计包括程序计数器电路,指令存储器电路,指令译码器电路(控制器),运算电路,数据存储器(寄存器)电路。演示视频:FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com部分代码展示`timescale 1nicon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=213

部分代码展示

`timescale 1ns / 1ps
/
//顶层模块:设计包括程序计数器电路,指令存储器电路,指令译码器电路(控制器),运算电路,数据存储器(寄存器)电路
//指令格式:
//-----------------------
//opcode | rs | rt | rd |
//-----------------------
//15-12   11-8  7-4  3-0
//
//操作方式如下:
//ADD R1,R2,R3  
//  => R3 = R1 + R2;
//SUB与ADD一致
//
//INC:
//INC R1,0,R1
// => R1 = R1 +1;
//
//DEC,R1,0,R1
// => R1 = R1 -1;
module cpu(input wire clk,input wire rst_n, output [15:0] alu_Res );
wire [15:0] inst;
wire [15:0] PC;
wire [3:0] Opcode;
wire [3:0] aluOp;
wire [15:0] imm;
wire [3:0] Addr1,Addr2,Addr3;
wire [15:0] Write_data;
wire [15:0] Read_data1,Read_data2;
wire [15:0] aluRes;
wire [15:0] input1,input2;
wire writereg;
assign Opcode = inst[15:12];  //操作码为指令的高四位
assign Addr1 = inst[11:8];//操作数1地址
assign Addr2 = inst[ 7:4];//操作数2地址
assign Addr3 = inst[ 3:0];//目的寄存器地址
assign Write_data = aluRes;  
assign input1 = Read_data1;
assign input2 = Read_data2;
assign alu_Res=aluRes;
//指令存储器例化    
im u_im(.Addr(PC),.inst(inst)
);  
//指令译码器例化
ctr u_ctr(.Opcode(Opcode),.aluOp(aluOp),.writereg(writereg)
);
//数据存储器例化
rf u_rf(.clk(clk),.rst_n(rst_n),.Addr1(Addr1),.Addr2(Addr2),.Addr3(Addr3),.Write_data(Write_data),.writereg(writereg),.Read_data1(Read_data1),.Read_data2(Read_data2)
);
//程序计数器电路例化  
pc u_pc(.clk(clk),.rst_n(rst_n),.current_pc(PC)
);  
//运算电路例化
alu u_alu(.aluOp(aluOp),.input1(input1),.input2(input2), .aluRes(aluRes),.Zero(Zero)
);endmodule

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

顶层仿真图

//微程序内容如下:

//2101  # INC R1   结果:R1 =1

//2101  # INC R1   结果:R1 =2

//2101  # INC R1   结果:R1 =3

//2202  # INC R2   结果:R2 =1

//2202  # INC R2   结果:R1 =2

//0123  # ADD R1,R2,R3   结果:R3 =2 + 3 = 5

//1124  # SUB R1,R2,R4   结果:R4 =3 -2 =1

//3303  # DEC R3  结果:R3 =5 -1 = 4

//5345  # OR R3,R4,R5   结果:R5 =4 | 1 = 5

运算器仿真

控制器仿真

指令存储器仿真

程序计数器仿真

寄存器组仿真

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/119747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx浏览器缓存和上流缓存expires指令_nginx配置HTTPS

1.nginx控制浏览器缓存是针对于静态资源[js,css,图片等] 1.1 expires指令 location /static {alias/home/imooc;#设置浏览器缓存10s过期expires 10s;#设置浏览器缓存时间晚上22:30分过期expires @22h30m;#设置浏览器缓存1小时候过期expires -1h;#设置浏览器不缓存expires …

NSSCTF做题第9页(2)

[SWPUCTF 2022 新生赛]ez_1zpop <?php error_reporting(0); class dxg { function fmm() { return "nonono"; } } class lt { public $impohi; public $md51weclome; public $md52to NSS; function __construct() { $this-&…

springboot + redis实现签到与统计功能

在很多项目中都会有签到与统计功能&#xff0c;最容易想到的方案是创建一个签到表来记录每个用户的签到记录&#xff0c;比如设计一个mysql数据库表&#xff1a; CREATE TABLE tb_sign id bigint(20) unsigned NOT NULL AUTOINCREMENT COMMENT 主键, user_id bigint(20) unsig…

【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上

深入探索Java特性中并发编程体系的原理和实战开发指南&#xff08; 实现可伸缩IO专题&#xff09; 总体内容概览可扩展的网络服务分布式对象传统的阻塞式网络服务每个请求或连接可以在独立的线程中进行处理Server服务处理请求类Handler处理逻辑类优点缺点 可扩展性目标平稳降级…

MySQL Join 类型

文章目录 1 Join 类型有哪些2 Inner Join3 Left Join4 Right Join5 Full Join 1 Join 类型有哪些 SQL Join 类型的区别 Inner Join: 左,右表都有的数据Left Join: 左表返回所有的行, 右表没有的补充为 NULLRight Loin: 右表返回所有的行, 左表没有的补充为 NULLFull Outer J…

Excel多线程导入数据库

文章目录 Excel多线程导入数据库1. CountDownLatch2.多线程导入数据库 Excel多线程导入数据库 书接上文 Excel20w数据5s导入 1. CountDownLatch CountDownLatch 维护了一个计数器&#xff0c;初始值为指定的数量。当一个或多个线程调用 await() 方法时&#xff0c;它们会被阻…

redis 配置主从复制,哨兵模式案例

哨兵(Sentinel)模式 1 . 什么是哨兵模式&#xff1f; 反客为主的自动版&#xff0c;能够自动监控master是否发生故障&#xff0c;如果故障了会根据投票数从slave中挑选一个 作为master&#xff0c;其他的slave会自动转向同步新的master&#xff0c;实现故障自动转义 2 . 原理…

简析新能源汽车充电桩设计与应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;本文针对新能源汽车充电桩建设工作进行探究&#xff0c;采用案例分析法、文献查阅法&#xff0c;指出了新能源汽车充电桩建设存在的问题&#xff0c;阐述了充电桩建设与优化的对策。研究表明&#xff1a;目前…

element-ui的日历组件el-calendar高度咋调小

最近项目首页有个空余 不知道放啥 打算放个日历card 充充位置&#xff0c; el-calendar日历组件的整体宽度可以用el-row el-col :gutter :span来控制自适应 但是官网文档没说高度咋缩小 细长一条好难看 自己尝试改了改element的样式没整出来 最后照着这位博主的方法改是好使滴…

软考系列(系统架构师)- 2014年系统架构师软考案例分析考点

试题一 软件架构&#xff08;MYC 架构、扩展接口模式&#xff09; MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型&#xff08;Model)&#xff0c;V代表视图&#xff08;View)&#xff0c;C代表控制器&#xff08;Controller)。在该风格…

动态规划(记忆化搜索)

AcWing 901. 滑雪 给定一个 R行 C 列的矩阵&#xff0c;表示一个矩形网格滑雪场。 矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。 一个人从滑雪场中的某个区域内出发&#xff0c;每次可以向上下左右任意一个方向滑动一个单位距离。 当然&#xff0c;一个人能…

liunx Centos-7.5上 rabbitmq安装

在安装rabbitmq中需要注意&#xff1a; 1、rabbitmq依赖于erlang&#xff0c;需要先安装erlang 2、erlang和rabbitmq版本有对应关系 可参考网页&#xff1a;https://www.rabbitmq.com/which-erlang.html 第一步&#xff0c;安装编译工具及库文件,如果服务器上已经有了&…

长连接的原理

Apollo的长连接实现是 Spring的DeferredResult来实现的,先看怎么用 import ...RestController RequestMapping("deferredResult") public class DeferredResultController {private Map<String, Consumer<DeferredResultResponse>> taskMap new HashMa…

SpringBoot_minio sdk使用自签名https证书错误处理

minio sdk使用自签名https证书错误处理 1.问题描述1.1 报错日志1.2 maven 依赖配置1.3 当前spring MinioClient配置 2.问题分析3.问题解决3.1 使用受信任的证书3.2 忽略证书验证3.2.1 minio客户端3.2.2 minio sdk 忽略证书验证3.2.2.1 拓展: 补充minioclient请求日志 4. 问题总…

树形数据增删改查

功能描述&#xff1a; 默认展示所有项目点击项目展示当前项目下的所有区域点击区域展示当前区域下的所有工位以上以树形图格式展示项目&#xff0c;区域&#xff0c;和工位都可进行增加 修改 和删除&#xff0c;每个图标hover时显示对应提示信息项目&#xff0c;区域&#xff…

Spring Boot整合OAuth2实现GitHub第三方登录

Spring Boot整合OAuth2&#xff0c;实现GitHub第三方登录 1、第三方登录原理 第三方登录的原理是借助OAuth授权来实现&#xff0c;首先用户先向客户端提供第三方网站的数据证明自己的身份获取授权码&#xff0c;然后客户端拿着授权码与授权服务器建立连接获得一个Access Token…

研发效能认证学员作品:快速进行持续集成应用实践丨IDCF

作者&#xff1a;赖嘉明 研发效能&#xff08;DevOps&#xff09;工程师认证学员 随着数字化转型的推进及市场竞争的加剧&#xff0c;越来越多的企业也意识到持续集成的重要性。 而持续集成作为一种先进的软件开发实践和工具链&#xff0c;可以帮助企业实现自动化构建、集成和…

基于YOLOv8模型的烟雾目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型的烟雾目标检测系统可用于日常生活中检测与定位烟雾目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集…

Ubuntu22.04安装,SSH无法连接

Ubuntu初始化安装后&#xff0c;系统默认不允许root通过ssh连接&#xff0c;因此需要完成三个设置 1.修改ssh配置文件 vim /etc/ssh/sshd_config 将PermitRootLogin注释打开&#xff0c;并将值改为yes 保存修改并退出 :wq 2.重启ssh服务 sudo service ssh restart 3.重新打…

八大排序算法(C语言版)之插入排序

八大排序详解 目录&#xff1a;一、排序的概念1.1 排序的概念1.2 排序的应用 二、直接插入排序三、希尔排序四、排序算法复杂度及稳定性分析 目录&#xff1a; 八大排序算法&#xff1a; #mermaid-svg-7qCaGEYz0Jyj9dYw {font-family:"trebuchet ms",verdana,arial,…