my first blog
P0_Study
电路分析设计
- Input与Output分析
- 功能分析
(可以先进行类似于表格的书面化说明,明白好设计思路与设计需求再去设计电路) - 分层设计与分模块设计
模块类似于函数的封装,便于理清思路、清晰电路、debug
eg1.Moore机与Mealy机都可以划分为状态转移、状态存储、输出模块
eg2.32位加法器分为多个一位加法器
PS:注意子电路的appearance,要跟题目要求一致
有限状态机
首先回顾一下Moore和Mealy叭!
- 状态转移电路一般只是组合逻辑的计算,也就是说随着input的变化(无论clk处于什么状态),其计算的状态也相应发生,所以一定要有状态存储模块,clk处于上升沿时输出prev_state存入now_state
- 对于组合逻辑部分,画好状态转移图,一个经济有效的方法就是打表,利用analyze circuit来实现
- 一定弄清题目对于输出的要求,正确使用register
线路颜色不对报错
小结:
- 红色 E 的可能原因:短路/多驱动,门电路没接输入,多驱动即相当于多个逻辑运算assign同一个output,这当然是不行的
- 状态转移模块是组合逻辑,不需要时钟,不需要 reset
- 真值表生成电路功能的使用
- 不要在组合逻辑电路中出现环路,否则会出现震荡!
question
- register的使用(navigation那里)
①先把问题转化成有限状态机,再把有限状态机实现成电路
②每个时钟上升沿到来,更新寄存器的值 - 三态问题?什么时候用三态?(好像三态的输入用逻辑门运算会变红)
不用考虑三态 - 二进制减法qaq不会(主要是ftoi那里)
扩展为32位,再用0去减
用0去减其实与非门等效
CRC
- 体现了模块化的思想
- 要审题,题目说了被除数是要拼接的
- 注意splitter的最高位最低位以及数据的最高位最低为的对应,不要反了!
GRF
题目不难,注意线路很杂的时候要看有没有接上或者接错,CTRL CV 的时候tunnel要改完改对
ftoi
- 二进制浮点数小数点几位,相当于右移几位;乘2^n想当于左移(正数),注意要先左移再右移,否则就丢失掉后面的数据位了
- 二进制减法?不会qaq
- 计算负数的补码,取反(非门计算)+1,(?2^n-x感觉是不是不太行,因为n达不到32位)
- 学会试着使用simulate-logging功能debug
navigation
- 状态转移打表 “课上课下打表最经济有效”————董老 salute!
此处状态转移以及hit都可以打表得到(注意打表的时候输入输出都只能是一位,这里需要splitter套层皮,同样是注意高低位) - 太憨了!看好输入输出要求,是否提供clk,如果clk是一个input就不要再自己放一个clk了,太憨。
- 注意状态存储部分要符合题目要求
- 状态转移打表、register存储、input和prev_state决定输出,这些没什么好说的
- What deserves special mention is 注意这里利用MUX实现了同步复位,因为后面有register,只有clk处于上升沿,这个clr才是有效的(组合逻辑是不是们没有任何延迟?目前是的)
祝上机顺利!
- Post title:my first blog
- Post author:Coooookie
- Create time:2022-12-27 20:16:19
- Post link:https://coooookie0913.github.io/2022/12/27/my first blog/my-first-blog/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.