分享

【教女朋友学数字芯片】学习计划

 昵称28372044 2022-01-24

01


Verilog学习


学习计划

1.《Verilog数字系统设计教程-夏宇闻》3-6章快速学习一下;

2.  掌握简单的数字设计实现(全加器、计数器、算数,逻辑,移位操作、上升沿触发器、异步置位、带复位触发器、同步置位、复位的触发器等),学会用Modelsim仿真;

3. 这部分学习主要靠看书和实验,需要在Modelsim中完成《Verilog数字系统设计教程》第三部分所有练习。刚开始不会写可以抄书上的代码,但是必须看到仿真的结果,对着波形理解;

4. 如果不会写testbench,可以先抄书上的;但是后续要自己学习编写testbench;

5. 理解经典数字设计问题:逻辑函数、异步/同步复位、竞争冒险等;

6. 掌握经典设计题目:FSM、跨时钟域传输(包括FIFO、握手)、Arbiter等;

7. Verilog大作业是IIC/MCDF设计部分(先学会IIC,然后学会MCDF)。

作业

1. 编写边沿检测程序;

2. 编写完成奇数分频;

3. 状态机作业:

1)学习状态机思想,总结状态机写法(三段式)

2)用状态机实现红绿灯程序

    要求:

    绿灯时,当过25周期,则切到黄灯;

    黄灯时,当过2周期,则切到红灯;

    红灯时,每过15周期,则切到绿灯;

    输出state信号指示当前状态;

3) 状态机实现序列检测

    用Verilog描述一个可综合的序列检测器,用于检测输入数据码流中的特定序列(本次检测序列为100101)。当检测到100101序列(包括重叠的情况)时,序列检测器输出1,否则输出0。状态编码要求:One-hot独热码,代码风格要规范;

4)Round_Robin_Arbiter 设计

    总线上挂3个从机A,B,C,输出仲裁信号grant;

    grant[1:0]=2'b01   A获得总线

    grant[1:0]=2'b10   B获得总线

    grant[1:0]=2'b11   C获得总线

    总线轮询算法要求:

    a. 如果当前只有一个信号请求,则处理;

    b. 如果没有请求,那么保持不变;

    c. 如果同时有多个信号请求,考虑上一个请求信号;

    d. 如果当前请求信号是A,那么之后轮询的是BCA,如果当前请求信号是B,那么之后轮询的是CAB,如果当前请求信号是C,那么之后轮询的是ABC;

    e. 状态机实现;

4. 同步FIFO学习和编写;

5. 跨时钟域学习和程序编写

1)主要参考《硬件架构的艺术》,讲的非常细致;

2)异步FIFO:看书讲解完成程序编写,仿真结果要认真理解;

3)跨时钟域传输握手协议学习和编写;

6. IIC协议:学习《FPGA实战》,前期看书,后续可以自己实现。








02


System Verilog学习


学习计划

1. 前期学习以《SystemVerilog与功能验证》钟文枫为主,对初学者比较友好,最终目标是学会石头剪刀布的设计验证;

2. 后续将学习《芯片验证漫游》红宝书)、《SystemVerilog测试验证平台》绿宝书);

3. 后面要学习下怎么验证FIFO、IIC、MCDF;学会SV核心在于写代码,跑仿真;

4. 详细的学习计划和作业将会在后面发布。








03


UVM学习


学习计划:

1. 学习以白皮书(《UVM实战》)为主;

2. 涉及到UVM后,再学习LINUX环境和脚本语言,在虚拟机跑代码;

3. 详细的学习计划和作业将会在后面发布。








04


求职培训


学习计划:

1. 指导完成项目梳理;

2. 指导完成简历编写;

2. 分享面试经验,模拟面试。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多