Giter Site home page Giter Site logo

si-riscv / e200_opensource Goto Github PK

View Code? Open in Web Editor NEW
2.5K 228.0 992.0 92.27 MB

Deprecated, please go to next generation Ultra-Low Power RISC-V Core https://github.com/riscv-mcu/e203_hbirdv2

Home Page: https://github.com/riscv-mcu/e203_hbirdv2

License: Apache License 2.0

Shell 0.41% Makefile 1.29% M4 0.18% C++ 4.99% C 27.68% Assembly 6.67% Objective-C 0.14% Python 1.22% Perl 0.39% Scala 3.25% Tcl 0.60% Verilog 53.18%
risc-v ultra-low-power cpu core china verilog nuclei

e200_opensource's Introduction

Important Notice

This project will no longer be updated and maintained in this repository, a new generation of hbird e203 is provided with a lot of improvement, such as online documentation, nice extension, new peripherals.

About the new version, please refer to the the following links:

Hummingbird E203 Opensource Processor Core

About

This repository hosts the project for open-source hummingbird E203 RISC processor Core.

To boost the RISC-V popularity and to speed up the IoT development in China, we are very proud to make hummingbird E203 core open-source. It is the first open-source processor core from China mainland with state-of-art CPU design skills to support RISC-V instruction set.

The Hummingbird E203 core is a two-stages pipeline based ultra-low power/area implementation, makes the Hummingbird E203 as a perfect candidate for research and education of RISC-V implementation.

Welcome to visit http://www.rvmcu.com/ to see the discussion of the Hummingbird E203.

Welcome to visit http://www.rvmcu.com/ for more comprehensive information of availiable RISC-V MCU chips and embedded development.

Usages and Applications

The open-source Hummingbird E203 core can be a perferct candidate for research and education of RISC-V implementation:

  • The Hummingbird E203 core as a simple ultra-low power core and SoC, which is "蜂鸟虽小、五脏俱全", with detailed Docs and Software/FPGA Demos, hence, it will be a perfect example for lab practice in university or entry-level studying.

Many people asked if this core can be commercially used, the answer is as below:

  • According to the Apache 2.0 license, this open-sourced core can be used in commercial way.
  • But the feature is not full.
  • The main purpose of this open-sourced core is to be used by students/university/research/ and entry-level-beginners, hence, the commercial quality (bug-free) and service of this core is not not not warranted!!!
  • Welcome to visit http://www.rvmcu.com/ for more comprehensive information of RISC-V core availiable for commercial usage.

Detailed Introduction

We have provided very detailed introduction and quick start-up documents to help you ramping it up.

The detailed introduction and the quick start documentation can be seen from https://github.com/SI-RISCV/e200_opensource/tree/master/doc directory.

By following the guidences from the doc, you can very easily start to use Hummingbird E203 processor core and demo SoC.

Meanwhile, the Hummingbird E203 Core was deeply introduced in the published Book (蜂鸟E203处理器核在如下出版中文书籍中进行深入浅出的分析讲解):

《手把手教你设计CPU:RISC-V处理器篇》(已经上市,请在京东、淘宝、当当上搜索 RISC-V关键字)

《RISC-V架构与嵌入式开发快速入门》(已经上市,请在京东、淘宝、当当上搜索 RISC-V关键字)

What are you waiting for? Try it out now!

Dedicated FPGA-Board and JTAG-Debugger

In order to easy user to study RISC-V in a quick and easy way, we have made a dedicated FPGA-Board and JTAG-Debugger. Diagram as below:

蜂鸟E203专用的FPGA开发板

Nuclei EV Kit

Hummingbird EV Kit

蜂鸟E203专用的JTAG调试器

The detailed introduction and the relevant documentation can be seen from https://github.com/SI-RISCV/e200_opensource/tree/master/boards directory.

Release History

Note at First:

-- Many people asked if this core can be commercially used, the answer as below:
   * According to the Apache 2.0 license, this open-sourced core can be used in commercial way.
   * But the feature is not full (e.g., the debug functionalities is not full, which 
       cannot add breakpoint into the read-only region, .e.g, ROM/Flash)
   * The main purpose of this open-sourced core is to be used by students/university/research/
       and entry-level-beginners, hence, the commercial quality (bug-free) and
       service of this core is not not not warranted!!! 

Sep 27, 2018

-- The 4th official release with some minor fixing.

May 15, 2018

-- The 3rd official release, please clone this version if you want to use it
     or reclone it (if you already cloned the earlier-test version).
-- Compared with earlier-test version, main updates includes:
   ---- Fixed a Typo in a source file (in rtl/e203/core/e203_exu_decocde.v) 
   ---- Fixed a Tied-to-zero issue in source files (in rtl/e203/perips/sirv_qspi_physical_*.v) 
          * This is original freedom-e310 chisel generated QSPI file, which have a bug in Quad-mode (the 4th data enable
            signal was tied to zero), fix it here

Jan 13, 2018

-- The 2nd official release, please clone this version if you want to use it
     or reclone it (if you already cloned the earlier-test version).
-- Compared with earlier-test version, main updates includes:
   ---- Change the default configuration (in rtl/e203/core/config.v) to 
          * Add two stage of syncer for IRQ lines to core, not for function, but for timing
          * Configure the ITCM and DTCM to 64KB by default
          * Configure the Regfile as DFF based rather than latch based
   ---- Update the SoC components and structure to make it in line with the latest SoC Spec
          * Please check `e200_opensource/doc/HBird_OpenSource_MCU_SoC_Spec.pdf` for the details of SoC spec
   ---- Update some internal core logics, mostly to enhance the timing and frequency, 
        which is not matter much, please check the git history if you really care to.
   ---- Note: This version still does not support the hardware-breakpoint yet, i.e.,
          you cannot set the breakpoint to read-only address space (e.g., ROM, Flash).
          But soft-break is okay, means you can use regular interactive debugger 
          functionalities (including set breakpoint to the regular R/W address space).

Oct 13, 2017

-- The 1st official release, please clone this version if you want to use it
     or reclone it (if you already cloned the earlier-test version).
-- Compared with earlier-test version, main updates includes:
   ---- Added the "A" extension for opensourced E203 core, to make it support 
          IMAC sub-set RISC-V ISA, which is more popularly supported by current
          toolchain.
   ---- Updated the RTL Codes accordingly.
   ---- Updated the Docs accordingly, please see the "revision history" in the
          Doc from `e200_opensource/doc` directory.
   ---- Updated verilog tb with random interrupt and bus-error insertion to make
          more intensive. To support this, updated all the self-check tests accordingly.
          Although the test become more intensive, the drawback is make the regression 
          simulation running very slower, so by default now it is turned off.
          If you want to turn on them without caring the the regression speed,
          you can hack the tb mannually (de-comment these `force` line from `tb/tb_top.v`)
          or add macro `ENABLE_TB_FORCE` in simulation (see the note 
          from `vsim/bin/run.makefile`).
   ---- Updated some other minor issues which is not matter much, please check the 
          git history if you really care to.
   ---- Note: This version does not support the hardware-breakpoint yet, i.e.,
          you cannot set the breakpoint to read-only address space (e.g., ROM, Flash).
          But soft-break is okay, means you can use regular interactive debugger 
          functionalities (including set breakpoint to the regular R/W address space).

Sep 30, 2017

-- The earlier-test version uploaded to github to try.
-- NOTE:
   ---- This is not the official release, please wait the official release which will coming
        soon and will be recorded at here. You will see the Release History updates.

e200_opensource's People

Contributors

myron2009 avatar si-riscv avatar zhenbohu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e200_opensource's Issues

编译错误

zzz@zzz:~/code/riscv/e200_opensource/vsim$ make run_test
make compile RUN_DIR=/home/zzz/code/riscv/e200_opensource/vsim/run -C /home/zzz/code/riscv/e200_opensource/vsim/run
make[1]: Entering directory '/home/zzz/code/riscv/e200_opensource/vsim/run'
make[1]: Nothing to be done for 'compile'.
make[1]: Leaving directory '/home/zzz/code/riscv/e200_opensource/vsim/run'
make run DUMPWAVE=1 TESTCASE=/home/zzz/code/riscv/e200_opensource/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add RUN_DIR=/home/zzz/code/riscv/e200_opensource/vsim/run -C /home/zzz/code/riscv/e200_opensource/vsim/run
make[1]: Entering directory '/home/zzz/code/riscv/e200_opensource/vsim/run'
rm -rf rv32ui-p-add
mkdir rv32ui-p-add
cd rv32ui-p-add; echo "Test Result Summary: PASS" +DUMPWAVE=1 +TESTCASE=/home/zzz/code/riscv/e200_opensource/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add |& tee rv32ui-p-add.log; cd /home/zzz/code/riscv/e200_opensource/vsim/run;
/bin/sh: 1: Syntax error: "&" unexpected
make[1]: *** [Makefile:63: run] Error 2
make[1]: Leaving directory '/home/zzz/code/riscv/e200_opensource/vsim/run'
make: *** [Makefile:42: run_test] Error 2
如上log,我运行make run_test,出现/bin/sh: 1: Syntax error: "&" unexpected,这个是什么原因呢?

原生tb仿真报fatal

大家好:
我用e203原生的tb仿真的时候报如下的错误,不知道该如何解决,还请大家不吝赐教啊~

** Fatal:
Error: Oops, detected a X value!!! This should never happen.
Time: 17410 ns Started: 17410 ns Scope: tb_top.u_e203_soc_top.u_e203_subsys_top.u_e203_subsys_main.u_e203_cpu_top.u_e203_cpu.u_e203_dtcm_ctrl.u_sram_icb_ctrl.u_sirv_1cyc_sram_ctrl.u_e1_stage.dp_gt_0.vld_dfflr.sirv_gnrl_xchecker.CHECK_THE_X_VALUE File: D:/item/modelsim/e203/sirv_gnrl_xchecker.sv Line: 44
** Note: $finish : D:/item/modelsim/e203/sirv_gnrl_xchecker.sv(44)

看了下这个sram的信号是和外部的ext2itcm_icb_cmd相关的,但是e203_subsys_top里都是置零的,不知道该怎么解决。

使用 axi_ready 作为 axi_valid 的生成条件

hi all~
在 rtl/e203/general/sirv_gnrl_icbs.v 中
o_axi_aw_fifo 使用 o_axi_awready 作为 o_axi_awvalid 的产生信号。
这不符合 axi 协议中 主机 valid 不能等待ready置起的规定。

我们还没有完全看完代码,是跑 case 发现的这个问题。

关于e200_opensource协处理器模块EAI

亲爱的开发者们:
您好!
首先,我为在这里写这封信而感到抱歉,但是我们实在不知道要怎么联系你们,写给胡老师邮箱的信也一直没有收到回复。
我是**科学技术大学嵌入式实验室的研究生。目前我们实验室对RISC-V处理器比较感兴趣,因此组成了一个小组(四人)来研究学习一下。我们选定了国内的开源e200_opensource来作为研究对象,并且希望能在其中加入协处理器模块。我们每人都买了您所著的《手把手教你设计CPU---RISC_V处理器》,并且已经对照上边进行了大约四个周的学习。然而我们发现e200_opensource里,协处理器以及它的通信模块EAI都是缺省的,这使得我们难以开展下一步学习计划。
由于我们都是研一的新生,之前也没有接触过这方面的内容,水平有限,因此我们诚挚地希望您能提供协处理器EAI的相关代码。如果方便的话,也希望能提供协处理器的源码,这将对我们有巨大的指导作用。
十分感谢您能阅读这封信,我保证以上信息都是真实有效的,我们希望能得到您的帮助!以下是我的联系方式:[email protected],十分希望能收到您的回信!
祝好。

RAS(return address stack)

你好,请问在蜂鸟的处理器e203中是否使用了RAS技术?我查看了蜂鸟的那本书,和rtl代码,并未找到相应的技术使用。
如果要是想使用RAS技术,是不是需要考虑编译器方面的问题?

icb接口模板

您好,我想在整个工程上添加自己的外设,请问一下,这个有icb总线的接口模板吗?

使用 iverilog 仿真會卡住

請教為何使用 iverilog 仿真會停住 ?
我 make compile 之後在 /vsim/run 得到 vvp.exec
執行後,印完 ITCM 的值就停住了!請問這源碼有用 iverilog 執行過沒問題嗎?
Makefile 裡面寫說用 iverilog 會 tooooo slow, 但這看來不是慢,而是沒有辦法仿真,仿真時間無法往前走。
我把所有的 .v 寫到 e200.f , 直接使用 iverilog 去compile *.v , compile 結果看來也是成功的。但執行就是無法讓時間往前走。

有人有遇到同樣的狀況嗎?
adminuser@jasonlee:~/work/e200_opensource/vsim$ iverilog -v -s tb_top -f e200.f -D DISABLE_SV_ASSERTION=1
Icarus Verilog version 10.2 (stable) (v10_2)

Copyright 1998-2015 Stephen Williams

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

translate: /usr/local/lib/ivl/ivlpp -v -L -F"/tmp/ivrlg210b4390c" -f"/tmp/ivrlg10b4390c" -p"/tmp/ivrli10b4390c" | /usr/local/lib/ivl/ivl -v -C"/tmp/ivrlh10b4390c" -C"/usr/local/lib/ivl/vvp.conf" -- -
Icarus Verilog Preprocessor version 10.2 (stable) (v10_2)

Copyright (c) 1999-2011,2015 Stephen Williams ([email protected])

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
/usr/local/lib/ivl/system.sft: Processing System Function Table file.
/usr/local/lib/ivl/vhdl_sys.sft: Processing System Function Table file.
/usr/local/lib/ivl/v2005_math.sft: Processing System Function Table file.
/usr/local/lib/ivl/va_math.sft: Processing System Function Table file.
Using language generation: IEEE1364-2005,no-specify,xtypes,icarus-misc
PARSING INPUT
... done, 0.16 seconds.
ELABORATING DESIGN
... done, 0.43 seconds.
RUNNING FUNCTORS
-F cprop ...
... Iteration detected 257 optimizations.
... Iteration detected 0 optimizations.
... Look for dangling constants
... done
-F nodangle ...
... scan for dangling signal and event nodes. (scomplete=F, ecomplete=F)
... 1 iterations deleted 46228 dangling signals and 0 events.
... scan for dangling signal and event nodes. (scomplete=T, ecomplete=F)
... 2 iterations deleted 46228 dangling signals and 796 events.
... done
CALCULATING ISLANDS
... done, 0.11 seconds.
CODE GENERATION
... invoking target_design
... done, 0.25 seconds.
STATISTICS
lex_string: add_count=102970 hit_count=146754

(編譯完之後 執行 ./a.out)
看起來就是只有執行 time=0 時候的 task, 然後就無法往下了。哪位牛人可以幫忙解一下 ?

adminuser@jasonlee:~/work/e200_opensource/vsim$ ./a.out
Compiling VVP ...
... VVP file version 10.2 (stable) (v10_2)
Compile cleanup...
... Linking
... Removing symbol tables
... Compiletf functions
... 53662 functors (net_fun pool=2883584 bytes)
36107 logic
0 bufif
0 resolv
1390 signals
... 49554 filters (net_fil pool=6029312 bytes)
... 24661 opcodes (614400 bytes)
... 46609 nets
... 53662 vvp_nets (3145632 bytes)
... 178 arrays (8981 words)
... 18 memories
18 logic (90197 words)
0 real (0 words)
... 6550 scopes
... 0.552 seconds, 77376.0/47872.0/4304.0 KBytes size/rss/shared
Running ...
...execute EndOfCompile callbacks
...propagate initialization events
...execute StartOfSim callbacks
...run scheduler
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ITCM 0x00: 340510730001aa0d
ITCM 0x01: ff85051300002517
ITCM 0x02: 01f5222301e52023
ITCM 0x03: 040f416334202f73
ITCM 0x04: 4fa507ff02634fa1
ITCM 0x05: 0c634fad05ff0f63
ITCM 0x06: 0bff05634f8505ff
ITCM 0x07: 4f9d0dff00634f95
ITCM 0x16: 2f03f52505130000
ITCM 0x20: 2f8300052f03f065

环境设置

最近download整个src,安装在linux下,安装报了很多问题,请问整个环境是build在什么系统上的,linux or windows

DTM NOP overwrites a word in Debug RAM

Modules accessed through DTM are chip selected based only on DTM address field. In case of Debug RAM, the other control signal is RD (read/not write). RD maps to DTM Read operation, meaning that any other operation (e.g. NOP) will cause a write into DRAM.

wire dtm_req_sel_dbgram = (dtm_req_bits_addr[4:3] == 2'b0) & (~(dtm_req_bits_addr[2:0] == 3'b111));//0x00-0x06

The issue exploits the case for the Debug RAM, but other components may be affected too.

The fix is to condition DTM chip selects by DTM valid read or write operation.

关于在 Verilog TestBench 中运行测试用例

你好, 我想用你们提供教材里的步骤在ubuntu上进行测试, 但是在 make run_test 的时候没有编译成功。不知道怎么解决,希望能够得到帮助。 本人Linux 新手。

ubuntu

关于蜂鸟的RISCV处理器支持向量扩展的问题

嗨,您们好
我是中科院的学生,我们做的RISCV 向量intrinsic扩展,现在进行矩阵乘法的实验,需要在一台RISCV处理器上跑TSVC测试集(test suite for vectorizing compiler),想问问您这边已经开发出RISCV处理器的向量扩展版本了吗?

谢谢您
此致,敬礼
王鹏同学

English language toolchain host

Could you please upload your toolchain to a another server that is english. Ive tried to log into that baidu server but it needs member ship and i cant figure out how to get one.
something like mega upload or something. or even just a zip file in its own repository would be awsome.
Thanks.

failed in riscv-tools/riscv-tests/isa/generated/rv32ui-p-addi testcase

I simulate riscv-tools/riscv-tests/isa/generated/rv32ui-p-addi testcase, but it failed.

8000019e :
8000019e: 12fd addi t0,t0,-1
800001a0: fe029fe3 bnez t0,8000019e
800001a4: 100083b7 lui t2,0x10008
800001a8: 00838393 addi t2,t2,8 # 10008008 <_start-0x6fff7ff8>
800001ac: 0003a283 lw t0,0(t2)
800001b0: 00040337 lui t1,0x40
800001b4: fff34313 not t1,t1
800001b8: 0062f2b3 and t0,t0,t1 --------stuck here, dont fetch next instruction
800001bc: 0053a023 sw t0,0(t2)
800001c0: 40000293 li t0,1024

Testbench error

hello!Because I want to observe the waveform of e203, I use vcs and verdi, but there is no waveform in the output. The problem is as follows:

Fatal: "/home/xly/xly/11.19/e200_opensource/vsim/run/../install/rtl/general/sirv_gnrl_xchecker.v", 41: tb_top.u_e203_soc_top.u_e203_subsys_top.u_e203_subsys_main.u_e203_cpu_top.u_e203_cpu.u_e203_itcm_ctrl.u_sram_icb_ctrl.u_byp_icb_cmd_buf.u_bypbuf_fifo.dp_gt0.wptr_vec_0_dfflrs.sirv_gnrl_xchecker.CHECK_THE_X_VALUE: at time 17594

Error: Oops, detected a X value!!! This should never happen.

$finish called from file "/home/xly/xly/11.19/e200_opensource/vsim/run/../install/rtl/general/sirv_gnrl_xchecker.v", line 41.
$finish at simulation time 17594

Where is the waveform file ? (.vcd)

Hi,

I did the steps as manual:
$ make install
$ make compile
$ make run_test
It runs OK and finally show "PASS", but I can't find the ".vcd" waveform file.
The message shows "dumping is suppressed." , Why ?

ps: I use iverilog V11.0

jason@dell:~/work/e200_opensource/vsim$ make run_test
...
...
TESTCASE= /home/jason/work/e200_opensource/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add

VCD info: dumping is suppressed.
ITCM 0x00: 340510730001aa0d
ITCM 0x01: ff85051300002517
ITCM 0x02: 01f5222301e52023
ITCM 0x03: 040f416334202f73
ITCM 0x04: 4fa507ff02634fa1
ITCM 0x05: 0c634fad05ff0f63
ITCM 0x06: 0bff05634f8505ff
ITCM 0x07: 4f9d0dff00634f95
ITCM 0x16: 2f03f52505130000
ITCM 0x20: 2f8300052f03f065

一次硬件中断被响应多次

Hi, 各位大牛
我在使用e203 core测试中断时,发现硬件上拉高一个中断之后,软件端响应了两次中断。
软件响应中断的程序是清除中断,在第一响应中断之后,中断源就被清除拉低,但是发现plic模块送到core 的plic_ext_int高电平持续时间较长,中断源被拉低后,但是plic_ext_int依然为高,导致又进入一次中断。

请问在响应中断时,为什么中断源被拉低,但是plic输出到core的plic_ext_int信号却持续高电平呢?
响应中断时需要额外的配置PLIC相关寄存器吗?

Missing some reference in the design

Dear:

I am try to read those Verilog file.
however the tools report some Error.
It seems that some references missing in the design.
How can I fix this issue?
Are those references FPGA blocks?

Warning: Unable to resolve reference to 'sirv_gnrl_dffr' first referenced from module 'e203_clk_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_sync' first referenced from module 'e203_irq_sync_MASTER1'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_n2w' first referenced from module 'e203_itcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_n2w' first referenced from module 'e203_itcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_arbt' first referenced from module 'e203_itcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_sram_icb_ctrl' first referenced from module 'e203_itcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_itcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_arbt' first referenced from module 'e203_dtcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_sram_icb_ctrl' first referenced from module 'e203_dtcm_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_ram' first referenced from module 'e203_itcm_ram'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_ram' first referenced from module 'e203_dtcm_ram'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_arbt' first referenced from module 'e203_biu'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_buffer' first referenced from module 'e203_biu'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_splt' first referenced from module 'e203_biu'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffrs' first referenced from module 'e203_ifu_ifetch'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_ifu_ifetch'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_ifu_ifetch'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_ifu_ifetch'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_bypbuf' first referenced from module 'e203_ifu_ift2icb'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_ifu_ift2icb'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_ifu_ift2icb'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_ifu_ift2icb'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_exu_regfile'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_exu_oitf'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_exu_oitf'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_icb_arbt' first referenced from module 'e203_lsu_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_pipe_stage' first referenced from module 'e203_lsu_ctrl'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_exu_alu_lsuagu'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_exu_alu_muldiv'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dfflr' first referenced from module 'e203_exu_alu_muldiv'. (LNK-005)
Warning: Unable to resolve reference to 'sirv_gnrl_dffl' first referenced from module 'e203_exu_alu_dpath'. (LNK-005)

Thanks very much.

mcs和bit文件生成位置错误,并且无法使用

你好,我按照《教你设计CPU-RISC-V处理器》一书18.3内容从github上下载工程,并按照书本过程编译,但是最终生成的system.bit和system.mcs并不在书本上所写的 artydevkit/obj/ 目录内而是在 hbirdkit/obj 目录下并且烧录进 digilent arty a7 板内连接串口也没有返回值,请问这是为什么?有什么解决办法吗?

谢谢

compare with SiFive-E21

SiFive has released its lowpower RISC-V IP core(E21) whose application target is ultra-low power too.
compared with SiFive, what's the advantage of Hummingbird E200?
E21 is not opensource currently, I think most of its code is reused from "rocket chip".
SiFive's core ip cover from high end to low end: BOOM, U54, E51, E31, E21. it seems there are not so much opportunities left for other Startup Companies(work for RISC-V core).

MCU应用程序存储位置疑问

我在ARTY开发板上面下载了mcs文件,然后用调试器下载了MCU的应用应用程序,在ARTY开发板上面没有给MCU专用的flash ROM,但是为什么在掉电后MCU的应用程序还会存在,自动执行?

蜂鸟E200和Freedom E310内核区别

在书《手把手教你设计CPURISC-V处理器篇》中提到

E200开源项目也是以Freedom E310 SoC为参考蓝本,在其基础上进行二次开发称为E200配套的SOC,主要修改如下:
将Rocket Core替换成蜂鸟E200处理器核;
将TileLink总线替换成ICB总线;
请问一下,蜂鸟E200内核和Freedom E310的内核有什么区别?蜂鸟E200内核是Freedom E310内核简单的改写吗?

A failure when running Verilog simulate testbench

Hello, I am running Verilog simulate testbench according to Chapter 17 of the book, but a fault occurred that

$make run_test
...
cd rv32ui-p-add; echo "Test Result Summary: PASS"  +DUMPWAVE=1 +TESTCASE=MY_WORKSPACE_DIR/e200_opensource-master/vsim/run/../../riscv-tools/riscv-tests/isa/generated/rv32ui-p-add |& tee rv32ui-p-add.log; cd MY_WORKSPACE_DIR/e200_opensource-master/vsim/run; 
/bin/sh: 1: Syntax error: "&" unexpected

My environment is Ubuntu 16.04 with all essential software installed.

源码问题(gpio模块)

您好,我最近在读蜂鸟这个项目源码。发现几个问题想向您请教。
1.在sirv_gpio.v中,有一段代码首先对T_3370_bits_index后五位取异或,再和0x3e0相与,将后五位置零。是有什么别的作用吗?(见图一)
图一

2.在代码中存在多处重复连线的原因是?比如在sirv_gpio.v中,T_3334_bits_extra、T_3370_bits_extra和T_3295_bits_extra这三个wire变量。依次采用这样的一次传递赋值,而其它处也没有使用。这样有别的作用?(见图二)
图二

端口名后缀

_ival, _oval,_oe,_ie,_pue,_ds这些后缀分别是什么意思?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.