SOC设计及Verilog学习笔记三

SOC设计课-3.20
assign #2 out=in(过于理想,放于Test benchs)

电路设计(考虑可综合性)
综合工具:
  1‘HDL(功能网表)
  2'约束条件(性能要求)-根据约束自动选择合适的电路结构进行网表优化

3-8译码器实例(两种实现方式)
不在case条件中的状态赋值-defult
case条件不全会导致latch(边沿触发)

计数器RTC--需要时序逻辑,N位计数器需要N位寄存器-注意定义cnt初值
计数器电路图??
同步复位与异步复位区别-复位过程是否包含时钟沿
带复位电路功耗稍高

定时器Timer
时间片-嵌入式系统中任务切换,时分复用

串并转换-位宽匹配-速度匹配

FIFO(匹配两端速度不一样的情况,数据积累然后打包传送)
同步FIFO:存储电路+控制电路+IO+Read/Write+Empty/full+clk+reset

-----------------------3.27------------------
RAM:
单端口-一组地址-只能读/写(用作缓冲分时复用)
双端口-两组地址-可同时读写(用作缓冲效率高)

FIFO:(first in first out)输出吞吐率>输入吞吐率(平均)
比特率-吞吐率=流速-流量
用途: 匹配两端比特率(瞬间)不一样的情况,数据积累然后打包传送,减少CPU负载
1进快出慢.CPU快于UART,CPU->FIFO->UART
2.进慢出快.UART->FIFO->CPU

FIFO框架:(二维存储阵列/读写地址,自动递增/满空标志)
二维:depth(深度)*width(位宽)-位宽要与总线匹配-深度取决于单次输入的最大块,比如DMA 一次取一个Burst长度
FIFO外围+串并转换结构-实现挂在总线上的数据输出
UART数据帧连续
地址规则:
1、都用满
2、读写顺序一致
满信号-给输入
空信号-给输出

-------------FIFO设计----------------
阵列+控制+标识
写数-读数=0 空
写数-读数=depth 满

防止FIFO内数据覆盖:
数据写入时检查是否已满/数据不满+虽然满但是读写同时进行
数据溢出:overflow=full&WE&!RE
数据下溢:underflow=empty&RE&!WE

 

6管SRAM结构

---------------RAM/ROM设计--------------
端口:A/Din/CEN(片选)/WEN(写)/读信号可由CEN和WE确定/Q/clk
时间窗口:T1出控制信号(Setup Window+hold)

-----------------FSM(有限状态机)-----------------
MCU中休眠/工作转换
UART
※涉及协议的都需要状态机
套路:(状态一般有进有出形成环,单向概率很小)
1、当前状态:
always @(posedge)
current state=Next State
2、下一个状态:
always @* 任何变化
对当前状态下的条件进行判断
Case(current state)
State A:
State B:
State C:
注意遍历情况均有对应赋值,否则会造成latch
3、控制输出:
always @*
begin 
case(current state)
State:{out2,out1}=2'b 00;
/
状态机编码-parameter/define
parameter State A=2'b 00;

BT.601格式/ITU.601-视频格式标准,适合200W像素以下:FIFO+FSM案例


 

你可能感兴趣的:(数字IC设计)