Code Monkey home page Code Monkey logo

pulpino's People

Contributors

atokulus avatar atraber avatar davideschiavone avatar dfhappyforever avatar el-mohr avatar francescoconti avatar gautschimi avatar haugoug avatar hongzhi2015 avatar olofk avatar razer6 avatar svenstucki avatar wallento avatar wanjun199510 avatar xiaowanwww avatar

pulpino's Issues

Try to halt cpu core by writing to dbg registers at firmware uploading time

Current procedure to uploading firmware to SoC:

  1. Pull fetch_en to low; pull rst low
  2. Pull rst high to make sure fetch_en low is sampled by SoC at boot time, and cpu core is halted
  3. Upload firmware to SoC
  4. Pull fetch_en high

To pull fetch_en low on a board, a switch or a jumper is required, and it is not convenient.

It is best to halt cpu core by writing to dbg registers:

  1. For zeroriscy: write to DBG_CTRL
    zero-riscy: User Manual
  2. For ri5cy: write to DCSR
    RI5CY User Manual

The expected uploading firmware procedure:

  1. fetch_en is always high
  2. SoC boot from boot ROM
  3. Halt cpu core by writing to dbg registers
  4. Upload firmware
  5. Set next pc to reset_handler and start cpu core

Support MEMLOAD=JTAG in testbench

Currently, testbench supports MEMLOAD in (PRELOAD, SPI, STANDALONE).

JTAG firmware download has been validated, and should be add to testbench.

And README should be updated after JTAG support.

unused sign in axi_reg_word_rd.sv

sign named avalid_o is unused in RTL

axi_reg_word_rd.sv :
line 49 : output logic avalid_o ,
line 80 : assign avalid_o = s_ar_store;

axi_up_if.sv :
line 90 : .avalid_o (),

Adapt FPGA build

Current status:

  1. FPGA build is based on original pulpino structure, and does not work on the current structure.
  2. To adapt to various processes, some process related RTL sources under rtl/components have been moved to rtl/components/functional
  3. PULP_FPGA_EMUL macro is used by RTL under rtl/components/functional
  4. PULP_FPGA_EMUL macro is also used by other SoC RTL and IPs

Actions:

  1. Consider fpga as a process, and make rtl/components/fpga directory
  2. Put fpga specific RTL under rtl/components/fpga, and no PULP_FPGA_EMUL is required in that dir
  3. Make rtl/components/functional RTL pure functional by removing FPGA related RTL
  4. Modify FPGA build script to use fpga components RTL

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.