在友晶DE10-Lite开发板实现8051单片机
在友晶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
把rom、ram、ramx和PLL的器件都修改成MAX10.

注意,修改rom时,要指定一下.hex的文件。
PLL的locked信号,在代码里没有,这里可以根据需要,重新生成一次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里设置。主要用到了按键,拨动开关,led和hex0,注意数码管的段序不同。

最后,编译,生成sof,移植就完成了。
2. 验证移植结果
安装编译工具sdcc,进入example目录,运行make.bat,生成.hex文件。然后配置FPGA,运行C程序。打开8051工程,Tools-In-system memory content editor,连接开发板,指定接口,器件,选择前面的sof文件,配置好,再导入生成的之前hex文件,写入。就可以看到流水灯和数码管循环计数。移植成功。
实验结果视频展示
【8051移植到DE10-lite】 https://www.bilibili.com/video/BV1YD421V7BE/?share_source=copy_web&vd_source=68c33dfb
807678d785a70ba1e19f297a
参考文献
https://mp.weixin.qq.com/s/UylS0KPbSxymiY-um69diA
在友晶DE10-Lite开发板实现8051单片机的更多相关文章
- 友坚恒天.开发板(Cotex-A9 Exynos4412 开发板)
友坚恒天.开发板 Cotex-A9 Exynos4412 开发板
- 首先看一下友晶DE-SOC开发板的user manual
对于友晶DE-SOC系列开发板来说,由于其内部自带ARM 的cortex-A9硬核,所以使用nios II开发来说其实是不划算的,但是这里重点是为了学习NIOS II的开发,所以对于用DS-5来开发A ...
- AVR单片机教程——开发板介绍
本教程使用EasyElectronics开发板: EasyElectronics是一款基于AVR单片机的开发板.AVR单片机是基于改进的哈佛架构.8~32位的一系列RISC微控制器,最初由Atmel公 ...
- 关于DE2-115 FPGA开发板无法烧写程序的解决方法
友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序.利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只 ...
- NEXYS 3开发板练手--LED与数码管时钟
做科研的时候从学校拿到一块基于Xilinx公司Spartan-6主芯片的FPGA开发板,因为之前一直在用Altera公司的FPGA,一开始接触它还真有点不太习惯.但毕竟核心的东西还是不会变的,于是按照 ...
- CC2540开发板学习笔记(五)——串口通信
(一)串口发送 一.实验现象: 开发板实现功能发送 二.实验过程 1.PL2303 USB转串口电路图 2.串口发送 (1)查看用户手册有: UART0 对应的外部设备 IO 引脚关系为: P0_2 ...
- Calibrating delay loop... 问题以及解决方法(RealARM开发板)
RealARM的210开发板在启动是有时会出现这样的死循环 Calibrating delay loop... ,那么原因是什么呢? 经过查找,发现跟RTC有关,实际上就是晶振和RTC电源的问题.所以 ...
- stc89c52开发板遥控器解码 红外线发射 内置 eeprom 存储 串口显示编码
单片机,大概三年前,就买了一本 <爱上单片机> 最后就学会,用面包板了,编程书上基本没讲. 看原理图,看时序图,看数据手册, 都没讲. 而且书上自带的代码写的很烂. 1,缩近控制不好 2, ...
- 【嵌入式开发】写入开发板Linux系统-模型S3C6410
笔者 : 万境绝尘 转载请著名出处 最终拿到板子了, 嵌入式开发正式开启. 板子型号 : 三星 S3C6410 基于ARM11, 指令集基于arm6指令集; 为毛不是 Cortext A9的板子; 烧 ...
- 基于JZ2440开发板编写bootloader总结(一)
凡走过必留下痕迹,学点什么都会有用的. 本系列博文总结了自己在学习嵌入式Linux编程过程中的收获,若有错误,恳请指正,谢谢! --参考教材韦东山系列教材 bootloader 是一个用于启动linu ...
随机推荐
- Spring 框架模块深度解析:核心容器、数据访问、Web 层与其他关键模块
Spring 可能成为您的所有企业应用程序的一站式商店.但是,Spring 是模块化的,允许您挑选适用于您的模块,而无需引入其他模块.下面的部分提供了 Spring Framework 中所有可用模块 ...
- 动态库 DLL 封装一:dll分类
动态库分为三种: Non-MFC-DLL(非MFC动态库): 非MFC动态库不采用MFC类库结构,其带出函数为标准C接口,能被非MFC或MFC编写的应用程序所调用 MFC Regular DLL( ...
- Python队列----queue
import queue # 官网文档:https://docs.python.org/3/library/queue.html a1 = queue.Queue() # 先进先出队列 a2 = qu ...
- docker 应用篇————swarm[二十]
前言 简单介绍一下swarm. 正文 前提,docker 安装. 有3台机器,全部按照了docker. 现在开始搭建集群. 首先需要初始化: 然后需要注入: 注入之后,那么需要就是启动节点加入进来,那 ...
- linux 连接wifi
前言 我使用树莓派的时候实际过的. 正文 第一步扫描wifi: iwlist wlan0 scan 然后配置: vim /etc/wpa_supplicant/wpa_supplicant.conf ...
- IIS 动态与静态压缩
前言 我们有时候需要在页面启动的时候进行压缩代码,这时候iis已经帮助我们做好了动态压缩代码. 正文 静态压缩及动态压缩的区别 IIS7中的HTTP压缩分为"静态内容压缩"和&qu ...
- 在windows电脑中安装redis
1,github下载地址:https://github.com/MSOpenTech/redis/tags 2,下载完成后,解压到对应文件夹 3,打开redis.windows.conf,在#requ ...
- em/px/rem/vh/vw的区别
一.介绍 传统的项目开发中,我们只会用到px.%.em这几个单位,它可以适用于大部分的项目开发,且拥有比较良好的兼容性 从CSS3开始,浏览器对计量单位的支持又提升到了另外一个境界,新增了rem.vh ...
- 嘉楠k210 kd233官方demo板gpio点灯实验
使用maixpy micropython开发 import utime from Maix import GPIO from board import board_info from fpioa_m ...
- 最简编译CockroachDB 21.2
编译CockroachDB比较麻烦,尤其是从git下载代码编译还需要关联项目的下载,本文整理从官网下载代码的编译过程,非常简单,几乎没有异常,供大家参考. 编译CockroachDB 21.2 1.安 ...