完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
C0029这次是把我以前的软件模拟移植到硬件上来, 用某些掌机模拟圈子里面黑话说叫硬解或者复刻. PC1000整机分为上半部分的LCD玻璃+行列驱动板, 下半部分的主板+喇叭按键. 主板上有外围供电升压部分,soc, BusROM小板,并口norflash, 还有一个语音合成芯片. 利用ministar我们可以硬件模拟其中soc和nor+busrom部分. 首先busrom容量12MB,nor flash容量512KB.ministar板载有一个8MB的spiflash,我们将其更换为16Mbit*8的W25Q128JWSIQ,可以放下这12.5MB的存储内容. 然后烧写之,用GowinProgrammer选择GO AI 1.1烧录C bin选项, 将busrom+nor的内容写入到板载flash中. 用来写入的bin直接由真机dump出来, 并顺序存储. 依次为B1/B2/B3和nor. 然后集成一个6502内核, 再写片上的计时器,中断发生,LCD信号生成,和外存翻页管理. spld_pump单元产生lcd像素地址和像素时钟,和扫描信号. memhub处理外存翻页spi读取, 和片上sram读写, 和计时器, 中断等等外设. spdc1016单元将cpu和memhub,spld_pump组合起来.cpu选的开源社区用的较多的ArletOttens代码. 或许后面我能筹到钱考虑逆向一下凌阳版的spdc1016,然后用工具转为vhdl代码. 写好的代码不出所料,并不能很好的运行,哪怕各个部分硬件单独测试通过组合起来就是不行.在硬件上调试的成果就是可以跑的起Sailor-HB网友写的极小rom和我自己写的极小rom,但跑不起完整的12Mrom. 因为我之前写过能运行的软件版模拟器,我就想到一个大胆的办法,能不能把软件版执行的结果和硬件版进行merge,判断执行到哪里错误了? 当然用modelsim加上display打日志速度太慢,还好我找到了Verilator,可以从verilog生成可以嵌入C++程序的模拟核心,经过一番Merge,统一日志格式,顺利的把无中断版本做到了代码/cycle一模一样, 然后开启中断支持,做到nmi插入前后只差一两条语句. 最后成功在开发板上运行起来了完整的ROM,然后移植到了LV4C上, BSRAM用了90%, LUT只用了30%, 还能引出Port1/Port0打个板子做矩阵键盘. 这个系统的cpu主频受限于spiflash的读取速度.因为随机读取一个字节需要22时钟, 加上状态机的延迟和对齐cpu时钟需要的打拍,最少要24个spi时钟才能完成一个读取,也就是cpu的频率是spi频率的1/24. 按照cpu主频3.6864算, spi频率就是88.47M,但这个频率下器件返回数据的延迟不稳定,怎么调都会偶然读到正在跳变的spi回应而跑飞. 当然也可能是走线问题,实际频率测66M时候还是比较稳定的,对应cpu最高主频是2.7M. 如果能把spiflash的内容提前缓存到更快的介质,比如sram里面, 那么cpu的速度就只受sram访问延迟限制了.不过LV4C合封的hyperRAM只有8MB, 无法塞下busrom,看上了LV9但是只有0.5mm的bga有封16MB的psram, 这个球距画板太贵了,我之前搞过0.35的一次要两三千. 当然还有一个办法就是用支持省略命令时钟的spiflash,比如Winbond的M后缀的, 这样可以做到cpu是spi频率的1/16.不过M后缀的难买我只买到一颗W25Q128JVPIM,对应1.8v的W25Q128JWSIM版本的一颗也买不到. 注: memhub里面mapper,gpio,中断和timer部分我是故意写在一起的, 如果按照"规范"分开各个always逻辑, 高云综合器fMax直线下降, 哪怕完全等效的拆分.
|
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
752 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
962 浏览 0 评论
862 浏览 0 评论
1837 浏览 0 评论
473 浏览 0 评论
1266 浏览 26 评论
5464 浏览 113 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 02:41 , Processed in 0.585470 second(s), Total 68, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号