智能芯片与嵌入式复习
文章发布时间:
最后更新时间:
页面浏览: 加载中...
最后更新时间:
页面浏览: 加载中...
用状态机设计一个序列检测模块,检测一个二进制串行序列中是否含有“110”字段,每次出现“110”字段后,输出一个时钟周期的高电平检测标志信号。
1 |
|
基础概念与背景知识
人工智能芯片技术架构分类
技术架构 GPU FPGA ASIC 冯诺依曼架构
类脑芯片 神经形态架构
可编程逻辑器件
概念 可由二次开发者定制硬件架构和功能的芯片
分类
a. 单次:ASIC
b. 多次:CPLD FPGA
游离式编程方式:ASICaaa
芯片特点
GPU:峰值性能高
FPGA;平均性能高,知识产权安全性高
开发设计方法
测试平台基础知识
概念:一种用硬件描述语言设计的虚拟电路,用于在仿真环境下测试芯片模块的功能。
功能:产生待测芯片模块的全部输入
代码特点:
- 全封闭环境,不与外界交互数据
- 只能用于仿真,无法成为实际的电路
测试方法
timescale 语法
代码主体结构:定义输入输出测试信号、例化待测芯片模块、关联输入/输出信号。
例化格式:工程名、例化名、输入输出信号关联格式。
主要输入信号的产生方法:时钟显示/隐藏赋值、占空比精确控制、异步/同步触发复位、产生输入数据。
重要概念:
- 时钟和复位是测试平台的基础信号,必须正确产生。
- 时钟信号只能使用边沿触发,不能使用电平触发。
- 异步触发复位方式:触发可靠性高、复位可靠性低。
- 同步触发复位方式:触发可靠性低、复位可靠性高。
- 每一个二进制数据对应一个时钟周期。
仿真与综合知识
- 仿真:支持所有语法。(仿真语法)
- 综合:支持部分语法,是实际电路实现与工艺映射。(可综合语法)
掌握可综合设计方法
阻塞/非阻塞赋值:操作符“=”/“<=”。
阻塞/非阻塞赋值应用:组合逻辑电路用阻塞赋值,时序逻辑电路用非阻塞赋值。
组合电路赋值语法:assign语法、always语法。
时序电路赋值语法:always语法、6种格式。
时序逻辑电路采用阻塞/非阻塞赋值的区别:阻塞串行执行,非阻塞并行执行。
时序逻辑电路采用阻塞赋值的危害:赋值不受时钟沿直接控制,违法时序电路触发原则,导致;
电路可靠性差。
不利于实现高速设计。信号初始化
线网行数据(wire):不需要初始化;
寄存器(reg):必须初始化,在复位时执行。信号延时:
逻辑条件判断
循环结构展开:掌握for循环展开方法。
例:1
2
3for (K = 0; k < MAX; k = k + 1) begin
if(en) Abus = 2'b00;
else Abus = 2'b01;展开为时序逻辑电路:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18always @(posedge clk or posedge rst)
begin
if(rst)
begin
k <= 0;
Abus <= 2'b00;
end
else if(en)
begin
k <= k + 1;
Abus <= 2'b01;
end
else
begin
k <= k + 1;
Abus <= 2'b00;
end
end可综合设计目的:可靠性。
掌握可综合设计原则
敏感信号完备性原则:
工程型设计
- IP核
- 状态机
Moore型状态机:输出只与当前状态有关,与输入无关。
二段式状态机设计:代码结构正确、掌握设计流程(会对简单模块设计进行状态分解、状态编码、画状态转移图、编写第一段:状态转移控制的代码)。
期末考试四种题型:
- 填空题
- 简答题
- 代码分析题(补写/改写/注释/结论)
- 综合设计