【国产Tang Primer 25K测评】基于高云GOWINFPGA开发平台移植RISC-V软核E203
<div class='showpostmsg'> 本帖最后由 学学学学学学学 于 2023-12-17 22:55 编辑<ol>
<li>本来想要自己写个IIC驱动的,但这周末偷懒了,emmm下星期有缘再来,废话不多说,这次主要介绍下简单移植开源的RIAC-V软核蜂鸟E203。</li>
<li>先贴下一个B站上UP主的视频,我主要是借鉴人家的流程学习的:<a href="https://www.bilibili.com/video/BV1xP411d78n/?spm_id_from=333.337.search-card.all.click">【RISC-V】手把手教你使用蜂鸟E203-v2(Altera及国产FPGA篇)_哔哩哔哩_bilibili</a></li>
<li>下面介绍一下移植E203在Tang-25K板上的要点:
<ol>
<li>首先是手动添加所有的E203的Verilog文件,由于GOWIM似乎没有自动识别外部导入文件夹并简单分类的功能?(也可能是我没找到)反正要手动操作好多次,导入文件之后还要设置顶层文件,有需要可参考下列操作:<br />
</li>
<li>还要注意电路中复位的引脚要改变,根据原理图的不同而改变。原本的代码中是按键按下去低电平复位,但是25K电路是高电平复位,所以需要取反一下。<br />
<br />
</li>
<li>下面是添加IP核设置PLL锁相环的操作,尤其要注意为PLL添加复位引脚和锁定引脚,还有更改时钟容忍度才能设置成8M388Hz<br />
</li>
<li>更改IOBUF原语,改用为高云的IOBUF原语,推荐用一些专用的编辑软件直接一键搜索替换/<br />
</li>
<li>更改完之后直接编译就会发现,emmm25K的资源不够多,LUT不够多,所以需要进一步更改,主要是减小由LUT资源构成RAM核,以及尽量减少所用到的外设,更改的方式在这位UP主的视频里已经详细说明了(<a href="https://www.bilibili.com/video/BV1xP411d78n/?spm_id_from=333.337.search-card.all.click">【RISC-V】手把手教你使用蜂鸟E203-v2(Altera及国产FPGA篇)_哔哩哔哩_bilibili</a>),主要更改的文件是config.v和e203_subsys_perips.v文件,把不用的统统注释或者更改数值。另外UP主的视频中把协处理器的接口注释掉了,但是我个人觉得最好是保留。<br />
</li>
<li>然后就是绑定引脚,这里绑定引脚没什么特殊需求,按键绑按键,时钟绑时钟,普通IO就随便找个没用的口绑定,但是需要特别注意的引脚和网络,时钟clk和JTAG的TCK引脚,因为时钟路径太多了,导致时序报告并不好,TCK还尤其需要特殊在引脚绑定文件中添加一个语句,通常类似如下:<br />
<br />
或<br />
<br />
这两个分别是vivado和PDS上绑定的语句,高云应该也有类似的语句,但是因为我这里用不到JTAG,所以就没特殊绑定。</li>
<li><span style="background-color:#e67e22;">最后,我还会贴上自己的代码,有需要的朋友可以看看,如果要下载下来自己用的还还需要注意更改一些路径。如下:|</span><br />
<span style="background-color:#e67e22;">我下载e203软核的编译文件hex的方法不是通过JTAG口,而是根据Nucleo编译软件生成的.Verilog文件,删除去不必要的一些信息后,然后通过$readmemh语句,对软核的Ram进行初始化,只要一下载bit流文件,就会自动启动软件。</span><br />
<br />
</li>
<li>最后的最后还有额外的额外关于NUcleo设置的一些注意:还是依照那位UP的视频,那位UP主很贴心的准备了Nucleo的包,只需要从github上安装下来就能启用,如果要自己去蜂鸟官方下载软件的话,也可以选择自己新建工程或者导入工程;riscv-nuclei-elf-objcopy -O verilog "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.verilog";sed -i 's/@800/@000/g' "${BuildArtifactFileBaseName}.verilog"; sed -i 's/@00002FB8/@00002000/g' "${BuildArtifactFileBaseName}.verilog";<br />
<br />
<br />
<br />
添加如下:riscv-nuclei-elf-objcopy -O verilog "${BuildArtifactFileBaseName}.elf" "${BuildArtifactFileBaseName}.verilog";sed -i 's/@800/@000/g' "${BuildArtifactFileBaseName}.verilog"; sed -i 's/@00002FB8/@00002000/g' "${BuildArtifactFileBaseName}.verilog";<br />
</li>
<li>最后的最后,附张图证明一下移植成功了,做了一个串口打印的例程,可以看到ch340模块提示灯在闪烁。<br />
然后是新鲜出炉的Gitee链接:<a href="https://gitee.com/mrhaungsir/E203">mrhaungsir/基于国产高云GOWIN或紫光同创PDS移植开源RIC-V软核蜂鸟E203 (gitee.com)</a><br />
</li>
</ol>
</li>
</ol>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>大佬你给的代码是否有配置好jtag呢,我测试了很久都无法用openocd连接到riscv,希望能够得到大佬指教</p>
忆此生 发表于 2024-3-10 14:54
大佬你给的代码是否有配置好jtag呢,我测试了很久都无法用openocd连接到riscv,希望能够得到大佬指教
<p>我忘记了,你看看引脚约束文件里有没有对jtag的引脚约束,TCK还需要在时钟约束里设置,建议去b站搜索教程”手把手移植蜂鸟e203“或者去蜂鸟的网站看。另外需要蜂鸟专用的调试器,蜂鸟还有自己专用的编译软件</p>
本帖最后由 卑微小徐 于 2024-8-17 20:54 编辑
<p>、</p>
<p>请问下po主,“我下载e203软核的编译文件hex的方法不是通过JTAG口,而是根据Nucleo编译软件生成的.Verilog文件,删除去不必要的一些信息后”,这里是怎么把.verilog文件转成txt的,删除去不必要的信息是那些信息呢。有类似这方面的资料吗</p>
<p> </p>
页:
[1]