在友晶DE10-Lite开发板实现8051单片机

de10,lite · 浏览次数 : 0

小编点评

**8051单片机移植到友晶DE10-Lite开发板上** **步骤 1:修改Quartus工程器件** - 修改Quartus工程的器件针对DE10-lite,并更改型号为 MAX10 10 10M50DAF484C7G。 **步骤 2:更新IP** - 更新IP把rom、ram、ramx和PLL的器件都修改成 MAX10。 **步骤 3:设置PLLlocked信号** - 修改.v文件参考设计里的rst和点亮数码管都是高有效,因此要处理成低有效。 **步骤 4:配置管脚** - 分配管脚,根据情况设置。注意,没有用到的信号要设置为virtual pin。 **步骤 5:编译和移植** - 编译,生成sof文件,并进行移植。 **验证移植结果** - 在SDCC工具中运行make.bat,生成.hex文件。 - 配置FPGA,运行C程序。 - 打开8051工程,导入生成的.hex文件,写入。 - 可以看到流水灯和数码管循环计数。 **参考文献** - 原文视频:[8051移植到DE10-lite](...) - 移植步骤视频:[8051移植到DE10-lite](...) - 参考文献:[oreganosystems.at](...)

正文

在友晶DE10-Lite开发板实现8051单片机

1. 移植过程

利用FPGA片内资源构建51系统。软核来自https://www.oreganosystems.at/。还需要添加rom、ram和ramx。rom用来放51单片机的程序,即编译后的.hex文件。ram用来运行51单片机程序。时钟由PLL IP生成20MHz的时钟信号。分配管脚,编译配置FPGA的.sof文件。

 

 

 

(1) 修改Quartus工程的器件

针对DE10-lite,需要把FPGA型号修改成MAX10 10 10M50DAF484C7G.

(2) 更新IP

romramramxPLL的器件都修改成MAX10.

 

 

 

注意,修改rom时,要指定一下.hex的文件。

PLLlocked信号,在代码里没有,这里可以根据需要,重新生成一次pll时钟信号。

(3) 修改.v文件

参考设计里的rst和点亮数码管都是高有效,这里要处理成低有效。

wire [7:0] seg;

assign digit_seg=~seg;

把信号先翻转一次。

mc8051_top mc8051_top_inst(

.clk(Clk20M),       

.reset(~button[0]), //mc8051高电平复位

(4) 分配管脚

根据情况,分配管脚,没有用到的信号,要设置成virtual pin,可以在assignments > assignment editor里设置。主要用到了按键,拨动开关,ledhex0,注意数码管的段序不同。

 

 

 

最后,编译,生成sof,移植就完成了。

2. 验证移植结果

安装编译工具sdcc,进入example目录,运行make.bat,生成.hex文件。然后配置FPGA,运行C程序。打开8051工程,Tools-In-system memory content editor,连接开发板,指定接口,器件,选择前面的sof文件,配置好,再导入生成的之前hex文件,写入。就可以看到流水灯和数码管循环计数。移植成功。

实验结果视频展示

8051移植到DE10-litehttps://www.bilibili.com/video/BV1YD421V7BE/?share_source=copy_web&vd_source=68c33dfb

807678d785a70ba1e19f297a

 

参考文献

https://mp.weixin.qq.com/s/UylS0KPbSxymiY-um69diA

与在友晶DE10-Lite开发板实现8051单片机相似的内容:

在友晶DE10-Lite开发板实现8051单片机

在友晶DE10-Lite开发板实现8051单片机 1. 移植过程 利用FPGA片内资源构建51系统。软核来自https://www.oreganosystems.at/。还需要添加rom、ram和ramx。rom用来放51单片机的程序,即编译后的.hex文件。ram用来运行51单片机程序。时钟由PL

一码胜千言,博园Polo衫,上架预售啦

在5月30日博客园T恤上架后,考虑到有些园友上班不能穿T恤,我们将周边下一站锁定在 polo 衫。 锁定容易设计难,polo 衫容不得半点复杂的设计,我们没有想到更好的创意,于是偷懒地沿用T恤的设计,去掉「废话少说」(TALK IS CHEAP),删掉「放码过来」(Show me the code.

在C#中使用RabbitMQ做个简单的发送邮件小项目

在C#中使用RabbitMQ做个简单的发送邮件小项目 前言 好久没有做项目了,这次做一个发送邮件的小项目。发邮件是一个比较耗时的操作,之前在我的个人博客里面回复评论和友链申请是会通过发送邮件来通知对方的,不过当时只是简单的进行了异步操作。 那么这次来使用RabbitMQ去统一发送邮件,我的想法是通过

.net入行三年的感想回顾

从21年毕业到现在,还差几天就三年了 工作后才知道,工作年限分为1年以下 、3~5年、5~10年、晋升老板,每段都有每段的故事和总结 回顾下我的前三年工作心路,思考下未来发展之路(emmm,我是觉得我是干不了一辈子程序员的 我的工作地点不在大城市,因为我爸不让我出去,家里也不是很缺钱,所以薪资不会辣

利用pearcmd实现裸文件包含

title: 利用pearcmd实现裸文件包含 tags: [web,文件包含] categories: [CTF,web] 利用pearcmd实现裸文件包含 在 ctf 中,常常有这样一类题: 题目很简单,一般围绕一个 include 函数展开。 例: ctfshow 元旦水友赛 easy_inc

[Java]线程生命周期与线程通信

出于个人知识掌握程度与时间成本等多方面整体考虑,本篇文章对线程生命周期与线程通信的阐述并非非常详细,故可能并不适合所有博友,一些知识点在文中给出的【启发博文】中可能更容易找到答案。 如果文中阐述有不妥或不对的,多多交流。

活字格性能优化技巧(1)——如何利用数据库主键提升访问性能

本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 大家都知道,活字格作为企业级低代码开发平台,拥有6大引擎,3大能力,能够高效落地企业级应用。在每年的应用大赛中也能看到很多格友利用活字格做了很多复杂的应用,例如2021年

深入理解 Vue 3 组件通信

在 Vue 3 中,组件通信是一个关键的概念,它允许我们在组件之间传递数据和事件。本文将介绍几种常见的 Vue 3 组件通信方法,包括 props、emits、provide 和 inject、事件总线以及 Vuex 状态管理。 1. 使用 props 和 emits 进行父子组件通信 props

WPF使用AppBar实现窗口停靠,适配缩放、全屏响应和多窗口并列(附封装好即开即用的附加属性)

在吕毅大佬的文章中已经详细介绍了什么是AppBar: WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) - walterlv 即让窗口固定在屏幕某一边,并且保证其他窗口最大化后不会覆盖AppBar占据的区域(类似于Windows任务栏)。 但是在我的

强烈推荐:18.3k star,推荐一款简单易用的HTTP请求流量录制回放工具:Goreplay

在软件开发和测试过程中,我们经常需要对应用程序的网络请求进行录制和回放,以便进行性能分析、压力测试或者模拟复杂的网络环境。今天,我要向大家推荐一款简单易用的 HTTP 请求流量录制回放工具:Goreplay。 1、简介 Goreplay 是一款用 Go 语言编写的 HTTP 请求流量录制回放工具。它