2020年03月06日
⁄ FPGA开发
⁄ 共 127字
⁄ 阅读 42 次
改了下MCU debug模块,将MCU的Core部分的一些寄存器引过来到Debug模块,发送到上位机显示,界面改成了如下:
下图是之前的LED点灯程序,按键未按下时寄存器的值:
下图是按下按键时各个寄存器的值:
其他功能待扩充,可能得过段时间了,有别的事情要忙。
自制CPU阅读全文
2020年03月04日
⁄ FPGA开发
⁄ 共 276字
⁄ 阅读 18 次
基于上一个测试,增加了一个上位机调试软件,实现上一次测试时用串口的操作:
并给8位MCU起了个名字,叫T_MCU.
下图是软件初始界面,使用MFC开发,功能还比较简单,以后慢慢扩充:
点击链接设备按钮:
首先会先打开通信用的串口,如下
然后自动发送与MCU握手命令,如果MCU正确返回握手码,则显示如下界面:
将机器码程序写到机器码编辑区,然后点击下载程序,即可下载到MCU ROM中:
如...
自制CPU阅读全文
2020年03月04日
⁄ FPGA开发
⁄ 共 594字
⁄ 阅读 12 次
前面的所有测试都是提前编写好ROM.O文件,程序编译的时候提前初始化好rom空间,MCU在运行期间不能改变程序,感觉不方便,编写了一个Debug模块,使用Uart收发命令及数据,充当Jtag功能,仿真调试等等。
目前已实现程序在线下载功能,今天晚上测试通过。
增加了几条debug命令(Debug命令是4字节命令,使用Uart下发到MCU的debug模块):
同时MCU增加了软重启命令,机器码如下:
24'b0000_0001_0000_0000_0000_000...
自制CPU阅读全文
2020年03月03日
⁄ FPGA开发
⁄ 共 283字
⁄ 阅读 15 次
在上一个测试基础上,加入了UART模块,现在可以接收并发送串口数据了,添加的模块如下:
Uart内部视图
需要实现的功能:
上位机串口发送0x8A,点亮LED2,发送0xA8,熄灭LED2,MCU收到命令之后,将收到的命令再发送回上位机,编写机器码程序如下:
PS:使用机器码写程序太费劲了,看来得弄个编译器。
开始运行程序:
下面是初始状态
上位机串口收发去清零,并且LED2是熄灭状态
1...
自制CPU阅读全文
2020年03月02日
⁄ FPGA开发
⁄ 共 266字
⁄ 阅读 20 次
硬件框图还是和上一个一样,稍微优化了一下结构,将总线控制器由CPU Core内部移出来了,放到了和Core平级的地方,以至于保持Core部分逻辑的稳定,不用随时修改,放到外边还方便了总线的控制;另外将CPU时钟评率改为了100M:
较上个测试的主要变化是程序加入了人机交互
并且将GPIO模块的两个pin,一个改为了输入口,用于接按键,另一个还是输出口,接到LED。
编写了一个机器码程序,功能如下:
循环检测按键口p...
自制CPU阅读全文
2020年03月01日
⁄ FPGA开发
⁄ 共 204字
⁄ 阅读 11 次
添加GPIO模块,如下图;
并添加引脚约束
FPGA资源占用情况
编写机器码程序:
查看开发板原理图,知道往对应引脚写1,是点亮LED,写0熄灭
由于程序中两个引脚都是写的1,所以两个LED都被点亮,时钟频率是60MHZ。
下面改一下程序,只改了下图红圈中的指令,将立即数1变为0,即往其中一个引脚写0,另一个引脚写1
下图是运行结果
只点亮了其中一个,另一个被熄灭。
下一次...
自制CPU阅读全文
2020年02月29日
⁄ FPGA开发
⁄ 共 155字
⁄ 阅读 13 次
首先加入了一个时钟及复位控制模块,时钟分频5路输出,现在只用了一路。
mem内存空间地址线改为16bit(之前为8bit),可寻址64K空间;
初步mem空间内存映射入下:
Ram目前只用了256Byte
加入地址管理模块,做的很简单,根据地址范围输出相应的外设的使能信号:
下一步写个GPIO模块或者串口模块,测试一下
自制CPU阅读全文