Git Product home page Git Product logo

ysyxsoc's People

Contributors

jaypiper avatar sashimi-yzh avatar tang-haojin 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ysyxsoc's Issues

【ysyx第六期】关于L1 cache的实现限制和流片要求

动机

我希望实现cache,并且尽可能和流片要求一致。
考虑到ysyx第六期的cache相关的文档和SoC基建似乎并未完成,当前已经有不少同学参照第五期进行cache等后续模块的开发。所以希望了解下,第六期中cache的实现限制和流片要求。

想法和实现

  1. 如果在IFULSU内分别实现L1 instruction cache (L1I)L1 data cache (L1D),这样的cache实现位于核内,对ysyxSoC透明。那么存在的问题就是,核内cache的必然是用reg实现,那么会增加流片的面积,那么流片时是否对核心的总reg数目有限制?或者说L1I+L1D的总大小需要限制在多少以内? (感谢 @chaoyulong 分享的想法和讨论)
IFU -> IDU -> EXU -> LSU
^                     ^
|                     v
  - - - - BUS - - - -
           ^ AXI4
           v    
     ysyxSoC[SRAM,flash,SDRAM]
  1. 利用ysyxSoC中的SRAM来实现cache,需要修改核心和SoC的总线,和SRAM的控制器。第六期是否会采用这种方式?如果提前使用这种方式来进行开发,有什么建议以便和ysyxSoC未来的更新合并?

关于串口行为模型与讲义预期行为不一致的问题

讲义中提到,如果不正确设置除数寄存器,会导致串口只输出前16个字符的内容。但在rtl代码中,字符串的打印是通过uart_tfifo.v第209行代码的if (push) $write("%c", data_in);实现的。这会导致只要产生输入数据的push信号,就会直接将字符串打印至终端。而rtl模型并未对tx的错误信号进行处理,因此也不会阻塞状态机的执行,程序表现仍然如同无误。
为了修正这个问题,需要添加判断该数据执行push的时候,是否会导致溢出的判断条件,即修改为if (push & !(count==fifo_depth)) $write("%c", data_in);新增的判断条件与反转overrun信号的条件一致,表示该数据导致了fifo的溢出。添加该条件以后,可以复现讲义中提到的问题。

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.