完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 小墨学FPGA 于 2015-4-15 16:36 编辑 不得不说,SDRAM的设计是我接触FPGA以来调试最困难的一次设计,早在一个多月以前,我就开始着手想做一个SDRAM方面的教程,受特权同学影响,开始学习《高手进阶,终极内存技术指南》这篇论文,大家都知道这篇文章是学习内存入门的必读文章,小墨同学花了一些时间在这上面,说实话看懂这篇文章是没什么问题的,文件讲的比较直白,通俗易懂,很容易入手。当了解了SDRAM工作方式之后,我便开始写代码,从特权同学的那篇经典教程里面,我认真研读代码的来龙去脉,终于搞懂了特权同学的设计思想,并花了一些时间将代码自己敲一遍,并加上自己的注释
然而设计并没有像我想象的那么简单,代码设计好之后还要经过仿真,时序约束,仿真总体来说还好,但是时序约束我接触的很少,于是又去学时序约束方面的知识,由于控制SDRAM时钟跑到了100MHZ,时序约束对这个设计来说可以算是关键部分了,之前的设计由于对时序要求的不高,所以不用约束就可以实现。学习时序约束可以算是一个漫长的过程,经过这段时间的学习,小墨同学也开始反思,是不是自己的跨度有点大,设计SDRAM的过程确实有些吃力,所以,小墨同学决定暂时放弃SDRAM的教学,等以后发Nios II的文章的时候再来谈SDRAM。 这次我们先来学习一个CPU的设计,这个设计看似简单,但是真要一步步做完还是需要点耐心和精力的。本篇文章我们主要介绍Risc_CPU的设计过程以及代码分析,下一篇文章小墨同学主要和大家分享test bench的书写与仿真测试,帮助大家一步一步学会这个cpu的设计,那么,我们开始今天的教学吧~ 一、 设计前的准备 设计开始之前,我们得先知道什么是CPU,cpu即中央处理器,是计算机的核心部件。cpu的工作过程,小墨同学简单说一下。首先我们计算机的程序和数据是存在我们计算机的内存中的,上电后cpu就需要从第一条指令的地址开始取指令,即取指令。取出的指令需要经过指令译码来告诉cpu这条指令是用来干什么的,即分析指令。当得知指令内容以后,cpu需要产生操作指令来完成相应的操作,即执行指令。所以,任何一种CPU内部,至少应该包含下列这些部件: 1.算数运算器 2.累加器 3.指令计数器 4.指令寄存器和译码器 5.时序控制器 二. 工作原理 在本次设计中,我们假设ROM中装的是我们的程序指令,等会我们会往里面装数据,程序指令是16位的,cpu每次读取8位,分两次读完,读出来的数据存到指令寄存器中。 这16位数据的高三位代表指令码 三、各模块精讲 本次设计的cpu共包含8个模块,下面我来一一讲解 1.时钟发生器 |
|
相关推荐
|
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-17 18:12 , Processed in 0.516481 second(s), Total 39, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号