学学学学学学学 发表于 2023-12-17 20:48

【国产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 />
               &nbsp; &nbsp;</li>
                <li>还要注意电路中复位的引脚要改变,根据原理图的不同而改变。原本的代码中是按键按下去低电平复位,但是25K电路是高电平复位,所以需要取反一下。<br />
               &nbsp;<br />
               &nbsp;</li>
                <li>下面是添加IP核设置PLL锁相环的操作,尤其要注意为PLL添加复位引脚和锁定引脚,还有更改时钟容忍度才能设置成8M388Hz<br />
               &nbsp; &nbsp;</li>
                <li>更改IOBUF原语,改用为高云的IOBUF原语,推荐用一些专用的编辑软件直接一键搜索替换/<br />
               &nbsp;</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 />
               &nbsp;</li>
                <li>然后就是绑定引脚,这里绑定引脚没什么特殊需求,按键绑按键,时钟绑时钟,普通IO就随便找个没用的口绑定,但是需要特别注意的引脚和网络,时钟clk和JTAG的TCK引脚,因为时钟路径太多了,导致时序报告并不好,TCK还尤其需要特殊在引脚绑定文件中添加一个语句,通常类似如下:<br />
                &nbsp;&nbsp;<br />
                或<br />
               &nbsp;<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 />
               &nbsp; &nbsp;<br />
                &nbsp;</li>
                <li>最后的最后还有额外的额外关于NUcleo设置的一些注意:还是依照那位UP的视频,那位UP主很贴心的准备了Nucleo的包,只需要从github上安装下来就能启用,如果要自己去蜂鸟官方下载软件的话,也可以选择自己新建工程或者导入工程;riscv-nuclei-elf-objcopy -O verilog &quot;${BuildArtifactFileBaseName}.elf&quot; &quot;${BuildArtifactFileBaseName}.verilog&quot;;sed -i &#39;s/@800/@000/g&#39; &quot;${BuildArtifactFileBaseName}.verilog&quot;; sed -i &#39;s/@00002FB8/@00002000/g&#39; &quot;${BuildArtifactFileBaseName}.verilog&quot;;<br />
               &nbsp;&nbsp;&nbsp; &nbsp;<br />
               &nbsp; &nbsp; &nbsp;<br />
                &nbsp;&nbsp;<br />
                添加如下:riscv-nuclei-elf-objcopy -O verilog &quot;${BuildArtifactFileBaseName}.elf&quot; &quot;${BuildArtifactFileBaseName}.verilog&quot;;sed -i &#39;s/@800/@000/g&#39; &quot;${BuildArtifactFileBaseName}.verilog&quot;; sed -i &#39;s/@00002FB8/@00002000/g&#39; &quot;${BuildArtifactFileBaseName}.verilog&quot;;<br />
               &nbsp;</li>
                <li>最后的最后,附张图证明一下移植成功了,做了一个串口打印的例程,可以看到ch340模块提示灯在闪烁。<br />
                然后是新鲜出炉的Gitee链接:<a href="https://gitee.com/mrhaungsir/E203">mrhaungsir/基于国产高云GOWIN或紫光同创PDS移植开源RIC-V软核蜂鸟E203 (gitee.com)</a><br />
               &nbsp;</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>

忆此生 发表于 2024-3-10 14:54

<p>大佬你给的代码是否有配置好jtag呢,我测试了很久都无法用openocd连接到riscv,希望能够得到大佬指教</p>

学学学学学学学 发表于 2024-4-1 16:02

忆此生 发表于 2024-3-10 14:54
大佬你给的代码是否有配置好jtag呢,我测试了很久都无法用openocd连接到riscv,希望能够得到大佬指教

<p>我忘记了,你看看引脚约束文件里有没有对jtag的引脚约束,TCK还需要在时钟约束里设置,建议去b站搜索教程&rdquo;手把手移植蜂鸟e203&ldquo;或者去蜂鸟的网站看。另外需要蜂鸟专用的调试器,蜂鸟还有自己专用的编译软件</p>

卑微小徐 发表于 2024-8-16 10:58

本帖最后由 卑微小徐 于 2024-8-17 20:54 编辑

<p>、</p>

卑微小徐 发表于 2024-8-16 21:32

<p>请问下po主,&ldquo;我下载e203软核的编译文件hex的方法不是通过JTAG口,而是根据Nucleo编译软件生成的.Verilog文件,删除去不必要的一些信息后&rdquo;,这里是怎么把.verilog文件转成txt的,删除去不必要的信息是那些信息呢。有类似这方面的资料吗</p>

<p>&nbsp;</p>
页: [1]
查看完整版本: 【国产Tang Primer 25K测评】基于高云GOWINFPGA开发平台移植RISC-V软核E203