RISC-CPU设计和 FPGA 实现】的更多相关文章

发一下牢骚和主题无关: [ 声明:版权所有,欢送转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从消费电子的soc芯片来讲,当初海内从事芯片设计的企业还是很多的,这其中有新岸线.瑞芯微.全志.炬力等等.一个完整的soc芯片其实包含了很多货色,比如说cpu核.总线.gpu核.gpio.timer.spi.i2c.i2s.video.sound等等.当然,这些核心,有的是买来的,比如说cpu核心,有的完全可以自己设计,比如说i2c.spi等等.现在消费电子的cpu一…
一.概述 串行CPU工作流程 串行CPU的时序流程如下图所示:取指.译码.执行.回写. 其中,取指.回写是与存储器打交道:而译码与执行则是CPU内部自个儿的操作. 我们究竟想要CPU干什么?     CPU的最终目的不是计算,不是把计算结果存储在通用寄存器中.CPU的最终目的应该是按照次序不断的修改存储设备的存储内容. 利用CPU来显示,来唱歌······只有CPU把计算的结果存放在存储设备中的时候(姑且把修改特殊功能寄存器的值也看做是修改存储器的内容),才能实现这些功能.正如假设霍金有个很好的…
1. Microprocessor Design Principales and Practrices with VHDL  特点:电路与VHDL一一对应,比较清楚,而且还用MAX+plus进行仿真 2. VLSI概论 谢水瑞 比较简单和清楚 3. The designer's guide to VHDL 3rd Peter J.Ashenden 例子比较多 4. CPU Design : Answers to FAQ springer 5. Verilog数字系统设计-RTL综合.测试平台与验…
写在前面:本博客内容为本人老师原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/9291767.html 1.指令集设计: CPU的指令类型根据其操作的不同,可以分为下面七类. (1)计算类指令(Computational) 计算类指令用于执行算术操作,乘/除,逻辑操作和对寄存器进行移位操作.这些指令有…
verilog实现的16位CPU设计 整体电路图 CPU状态图 idle代表没有工作,exec代表在工作 实验设计思路 五级流水线,增加硬件消耗换取时间的做法. 具体每一部分写什么将由代码部分指明. 完整代码 headfile.v 头文件定义.包含整个工程中的特殊变量定义.后文中只用到gr0到gr3部分,因此该部分没写gr4到gr7,有需要的同学请自行加上. `ifndef HEADFILE_H_ //State for CPU `define idle 1'b0 `define exec 1'…
目录 写在前面 单周期cpu设计代码讲解 概念回顾 Verilog代码讲解 写在前面 欢迎转载,转载请说明出处. 单周期cpu设计代码讲解 概念回顾 一.电子计算机的部件 分为:中央处理器(cpu).内部存储器(Memory).输入/输出(I/O)设备,以及连接它们的总线(Bus).下图为图示,注意色块的区分. 二.cpu 又包括控制器(Controller)和数据通路(Data Path).下图为图示,注意色块区分. 三.控制器 分为主控(Main Control)和局控(Local Cont…
大三上学期开展了数字系统设计的课程,下学期便要求自己写一个单周期CPU和一个多周期CPU,既然要学,就记录一下学习的过程. CPU--中央处理器,顾名思义,是计算机中最重要的一部分,功能就是周而复始地执行指令.其实开始做这部分之前,想到CPU就觉得很麻烦,毕竟时计算机内部最重要的东西,但其实刨开来细看,也就慢慢地接受了,当然我现在也不能说是了如指掌,说简单,毕竟自己还处于学习阶段,甚至可能还没有入门.慢慢来吧,先从简单的开始,一步一个脚印,总能写成的.今天先写在具体写代码之前的思路和设计方案.…
一款CPU是如何设计出来的? 前面一段,我们了解了芯片的制造过程,也就是如何从沙子中提取硅.把硅切成片,在片上通过离子注入实现PN结.实现各种二极管.三极管.CMOS管.从而实现千万门级大规模集成电路的大致流程.接下来,我们继续了解一下,一款CPU是如何设计出来的.集成电路设计一般分为模拟IC设计.数字IC设计以及数模混合等.而数字IC设计,比如设计一款ARM Soc CPU芯片的基本流程如下: 1)设计芯片规格:根据需求,设计出基本的框架.功能.模块划分.有些复杂的芯片可能还需要建模.使用MA…
利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的主流器件.FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC.FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术.SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释.…
终于有点时间了,恰好多周期的设计也已经完成,其实只想写写多周期的,无奈单周期补上才好,哈哈哈~ —————+—————黄金分割线—————+————— 首先要理解什么叫单周期CPU(与后面多周期CPU对比)单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成. 单周期CPU的功能:能够实现一些指令功能操作.需设计的指令与格式如下: ==>算术运算指令 (1)add rd , rs, rt  (说明:以助记符表示,是汇编指令:以代码表示,是机…
我记得这是2016春季学期搞得,参考和学习了很多别人的东西,这里小小的总结一下,逻辑性还不是太强,还需要好好整理 首先是指令集 CPU架构 外部接线架构 指令格式 机器状态自动机 这部分忘了,汗 这部分也忘了 忘了 忘了 回写逻辑 计组物理实验所用 μAi表示微地址的一个bit,i表示哪一位 上述机器的指令译码逻辑图 寄存器译码逻辑图 该机器下微程序设计示例 上述微程序地址对应指令为 关于74LS299B 一些概念解释 实现流水线CPU的关键是如何解决冲突 在我们之前的测试中可以看到,指令之间加…
本栏目将实现一个简单cpu(8-32位)的设计,使用xinlink spatan6平台…
本文是对实验课上讲解的"面向硬件电路的设计思维"的总结,结合数字逻辑课本,进行提炼和整理. 主要来源是课件与本人整理,部分参考了网络大佬的博客. 本文主要介绍不同于之前软件设计思维的硬件设计思维,从非阻塞赋值.并行.面积速度转换.同步电路设计原则.模块划分设计.if-case对比等方面进行整理. 内容太多,我整理了好几天,在浩如烟海的网络前有点无力,想想是自己的实践不够,有一些问题没有亲身体验:也不能一蹴而就,得久久为功.所以这篇文章就当作一个Verilog学习与FPGA设计的总述性文…
我的原理图采用的是bdf的顶层原理图的设计,仿真工具用的是modelsim-altera,调用仿真后的错误提示: # ** Error: (vsim-3033) C:/Users/lenovo/Desktop/uart/simulation/modelsim/uart_test.vt(46): Instantiation of 'uart_test' failed. The design unit was not found.# Region: /uart_test_vlg_tst 经过goog…
总算解决一大心头之患了,比想象中容易,通宵两夜,刷完了十个实验,这个实验就是最后的了.感慨颇多.特地写篇总结. 想做一件事,就立马去做把.你会发现没那么困难,往往最大的困难,是心里的困难. 培养了HDL(Hardware Description Language)思维,并行,串行混合.它先是一个电路,再才是一个程序,电路为主,程序为辅,用RTL的思维去思考. 这个实验也不怎么难,就是一个大的模拟题,当年ACM给我良好的代码功底受益颇多. 能硬件级别揣摩CPU的一点点运行方式,但是还有很多疑问,需…
最近在做一个项目,其中有涉及时钟芯片AD9516的硬件设计和软件编程,有些使用心得,供大家参考讨论. AD9516,这是一个由ADI公司设计的14路输出时钟发生器,具有亚皮秒级抖动性能,还配有片内集成锁相环(PLL)和电压控制振荡器(VCO).片内VCO的调谐频率范围为2.55 GHz至2.95 GHz.或者,也可以使用最高2.4 GHz的外部VCO/VCXO.关于资料的获取:1.ADI公司的中文技术支持网站做的非常好,可参考AD9516_0的链接:http://www.analog.com/c…
目前研究人员正抓紧检查 Linux 内核的安全问题,与此同时,微软也预计将在本月补丁日公开介绍 Windows 操作系统的相关变更. 而 Linux 和 Windows 系统的这些更新势必会对 Intel 的产品线造成冲击,预计可能会出现 5% 到 30% 的性能下降,具体还和处理器型号有关. 苹果的 macOS 也将需要进行更新,此缺陷也影响 Intel x86-64 的硬件,并且通过 microcode 更新无法解决此问题,必须是在系统级别的软件中进行修复,或者购买新的处理器. 过去十多年中…
各种名词 标量流水线 超级流水线 超标量流水线与多发射技术 经典五级流水线 IF |Instruction Fetch,取指 ID |Instruction Decode,译码 EX |Execute,执行 MEM| Memory Access,内存数据读或者写 WB |Write Back,数据写回到通用寄存器中 并不是所有指令都要经过这五个阶段,例如运算指令在内存读写阶段并没有什么事情干. 译码的同时,立即数或寄存器的数据也要准备送到ALU中,执行阶段,运算指令执行运算,load等指令需要计…
摸鱼的时候找到一份单周期和多周期的riscv的fpga实现,还是挺符合我的预期的 知乎专栏地址:https://www.zhihu.com/column/c_1530950608688910336…
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/9289857.html (1)shift: module shift (d,sa,right,arith,sh); :] d; :] sa; input right,arith; :] sh; :] sh; always @* b…
MIPS构架:曾经是英特尔的“眼中钉” https://www.eefocus.com/mcu-dsp/363953 <处理器史话>之十一 2016-06-17 08:02 作者:付丽华预计 13 分钟读完   我们都知道目前主流构架有三种:X86,ARM 和 MIPS,X86 在 PC 时代称霸江湖,ARM 赶上了移动通信的好时机,在手持端风风光光,而 MIPS 似乎就有些尴尬,还未美丽就已老去. ARM 的合作伙伴们基于 ARM 的设计向移动和嵌入式市场的出货量已经达 500 亿片.对于安…
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/8254096.html 作者:窗户 QQ:6679072 E-mail:6679072@qq.com 前几天写了一篇<如何设计一个电子计算器>,一个朋友看了之后说实在太low,好吧,依照他的意思,那我就采用文中FPGA设计的方式,然后自己从指令集设计.cpu设计.汇编器设计.汇编程序设计一路设计过去,再多写个几篇水文,组一个系列,取名…
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/8278418.html 作者:窗户 QQ:6679072 E-mail:6679072@qq.com 前几天写了一篇<如何设计一个电子计算器>,一个朋友看了之后说实在太low,好吧,依照他的意思,那我就采用文中FPGA设计的方式,然后自己从指令集设计.cpu设计.汇编器设计.汇编程序设计一路设计过去,完全从零开始设计,再多写个几篇水文…
一.计算核心增加 二者都由寄存器.控制器.逻辑单元构成,但比例很大不同,决定了CPU擅长指令处理,函数调用上:GPU在数据处理(算数运算/逻辑运算)强力很多. NIVIDA基于Maxwell构架的GPU代号GM200的显示核心主要由4个图形处理集群(GPC ),16个流处理集群(SMM)和4个64bit显存控制器组成.每个流处理集群中包含了4个调度器(Warp),每个调度器又控制着32个逻辑计算核心(Core),Core是实现逻辑计算的基本单元. GPU处理数据过程: 从CPU得到数据处理指令.…
我知道这非常长,可是,我坚持看完了.希望有幸看到这文章并对图形方面有兴趣的朋友,也能坚持看完.一定大有收获.毕竟知道它们究竟是怎么"私下勾搭"的.会有利于我们用程序来指挥它们....(这是我加上去的) 原文从这里開始: 要说到设计的复杂程度,那还是CPU了!这个不用讨论,非常easy的道理你看看显卡芯片的更新速度和CPU的更新速度就可见一斑了.还是简单说说他们的设计原理吧. CPU: 可是,如今我要问一句:"什么是CPU?"我相信大多数人并不知道什么是CPU.当然,…
CISC的特点: 指令系统庞大,指令功能复杂,指令寻址方式多,指令格式多 绝大多数指令须要多个机器周期完毕 各种指令都能够訪问存储器 採用微程序控制 有专用寄存器,少量 难以用优化编译技术生成高效的目标代码程序 RISC特点: 大多数指令在单周期内完毕 LOAD/STORE结构 硬布线控制逻辑 降低指令和寻址方式的种类 固定的指令格式 注重编译的优化(三地址指令格式.较多的寄存器.对称的指令格式) *我觉得RISC与CISC的不同之处在于指令精简.寻址方式降低以及注重编译优化,这要得益于二八法则…
IC (integrated circuit) 集成电路:微电路.微芯片.芯片:集成电路又分成:模拟集成电路(线性电路).数字集成电路.数/模混合集成电路: 模拟集成电路:产生.放大.处理各种模拟信号(幅度随时间变化的信号): 数字集成电路:产生.放大.处理各种数字信号(时间和幅度上离散取值的信号): 集成电路按用途分成:专用集成电路(ASIC).通用集成电路: ASIC(Application Specific Integrated Circuit) 专用集成电路:是指应特定用户要求和特定电子…
转载:https://blog.csdn.net/lg2lh/article/details/39081061 一.锁存器 首先设计锁存器的时候应该清楚什么是锁存器,锁存器其实是对电平信号敏感的,一定信号是电平敏感的,和时钟边沿clk无关. 所以用verilog描述的时候,应该是: always @(a,b,e) begin if(e) dout<=a; end 产生锁存器的原因是因为各条件分支对dout的赋值不全,在else分支内没有对dout操作,这样就会造成锁存器. 实际综合后的RTL视图…
16位CPU多周期设计 这个工程完成了16位CPU的多周期设计,模块化设计,有包含必要的分析说明. 多周期CPU结构图 多周期CPU设计真值表 对应某一指令的情况,但仅当对应周期时才为对应的输出,不是组合逻辑 设计思路 Instruction/Data Memory: 一共有两种模式: 1. 输入8位的地址PC,输出对应内存的16位指令内容 2. 输入8位的地址Address,输出对应内存的DataMemory的内容 输入写入内容WD,当WE写入信号为真的时候,写入到地址为Address的内存里…
verilog实现的16位CPU单周期设计 这个工程完成了16位CPU的单周期设计,模块化设计,包含对于关键指令的仿真与设计,有包含必要的分析说明. 单周期CPU结构图 单周期CPU设计真值表与结构图 该CPU用到的指令集,16位8个通用寄存器 设计思路 Instruction Memory: 输入8位的PC指令,输出对应内存的16位指令 Control Unit 输入16位的指令,根据真值表,输出对应结果 Register File 输入三个地址和写入内容,写入信号,输出两个地址对应的内容 由…