type
status
slug
date
summary
tags
category
password
icon
第二章
符号只看国标:
与 或 非
16进制转10进制:
8进制转10进制:
与10进制转二进制类似,用十进制数除以8取余数,商再除以8,直到商为0,余数由下到上依次排列即可,如136→
136/8 = 17 余数 0
17/8 = 2 余数 1
2/8 = 0 余数 2
则结果是从下到上排列: 210
注意对于小数的话,就是乘8取整,一直乘到小数部分为0为止,然后将整数部分从上到下排列
2进制转10进制:
用十进制数除以2取余数,商再除以2,直到商为0,余数从下到上依次排列,如29→
29/2 = 14 余 1
14/2 = 7 余 0
7/2 = 3 余 1
3/2 = 1 余 1
1/2 = 0 余 1
从下到上排列就是: 11101
第三章verilog描述
verilog的四种描述方式
开关级、门级、数据流级和行为级
基本的数据/数值
1、数值
Verilog HDL的数值有四类:0(逻辑0)、1(逻辑1)、Z/z(高阻)、X/x(未知)。
高阻态(Z):高阻态是一个电路分析中的概念,相当于开路,因此没有电压信号流过。在仿真或者实际电路中,高阻态可以被视为断开的意思。所谓的高阻,就是阻高。什么阻高,就是电阻值高呗。电阻值高到无穷高是多么高?就是断路了,与外界没有连接。
未知态(X):未知态表示信号的状态未定义,可能是因为电路中的不确定性。
2、常量
1)整数型常量
定义格式:<位宽><’进制><数字>
其中:o(O)表示八进制;b(B)表示二进制;d(D)表示十进制;h(H)表示十六进制。
注意:单引号和进制之间不能有空格。
例:3’b001、3’b01、3’b1111001、’b001。
比较运算
若两个操作数位宽不同,如果操作数都是无符号数,则位宽较小的操作数需在高位填0补齐,如果操作数都是有符号数,则位宽较小的操作数需在高位填符号位补齐。
注意
(6)在门级描述中,调用Verilog-HDL具有的内置门实例语句,描述顺序为“(输出,输入1,输入2········);”的形式。
模块形式
举例:
拼接操作
拼接操作符用花括号{}表示,通过拼接操作符可以将多个操作数拼接在一起,组成一个操作数,拼接操作符的每个操作数必须有确定的位宽。
拼接操作符的用法是将各个操作数用花括号括起来,每个操作数之间用逗号隔开,操作数类型可以是线网类型或者寄存器类型。
如果需要多次重复拼接同一个操作数,可以使用常数表示需要重复拼接的次数。
移位操作
Verilog HDL支持4种移位操作符:逻辑左移(<<)、逻辑右移(>>)、算术左移(<<<)、算术右移(>>>)。
举例
verilog HDL的行为级描述
Verilog HDL的行为级描述可以使用过程块结构进行描述,过程块结构有initial过程块和always过程块。
只有寄存器型数据能够在这两种语句中被赋值,这种类型的变量数据在被赋新值前保持原有值不变,所有的initial过程块和always过程块在0时刻并发执行。
赋值
Verilog有如下几种赋值操作
连续赋值:用于对线网(nets)的赋值;
过程赋值:用于对寄存器的赋值;
连续赋值
可以是组合逻辑,不需要使用逻辑门,直接使用逻辑表达式驱动线网。
例:
assign mynet={enable? data : 1’b0};
过程赋值
把值放在寄存器中,过程赋值没有持续时间,相反,寄存器将保持赋值的值,直到发生下一次对变量的赋值。过程赋值发生在过程块(always,initial,task和function)中,可以把它认为是触发器赋值。当执行到达过程块的赋值时,触发就发生。
过程赋值受执行语句控制,事件控制、延迟控制、if语句、case语句和循环语句都能用来控制是否执行赋值操作。
例:寄存器声明赋值。
第四章
4.1组合逻辑电路分析
1、组合逻辑电路
任意时刻的输出仅仅取决于该时刻的输入组合,而与输入信号作用前电路的原状态无关(与过去的输入无关)。
特点:
(1)电路由逻辑门构成,无记忆元件;
(2)输入信号是单向传输,一般无反馈。
2、时序逻辑电路
任意时刻的输出不仅仅与该时刻的输入有关,而且还与电路的原状态有关(与过去的输入有关)。
分析步骤
示例
4.2组合逻辑电路设计
根据功能描述设计出合适的组合电路。
1、逻辑抽象与赋值
2、列出真值表(根据因果关系)
3、导出表达式 or 卡诺图
4、化简或变换
5、画出逻辑电路图->Verilog
4.3典型组合逻辑电路的设计
半加器
verilog 数据流级描述
全加器
Si= Ci=
也可以是
代码
典型例子(74283集成全加器)
全减器
同样,其实这里B异或G可以修改为B或G,因为BG同时为1的时候借位值一定为1.
数值比较电路
F1是A>B F2是A=B F3是A<B
调用它的顶层文件:
集成比较器7485
比较器和集成比较器(7485)的应用
四位比较器:
纯四位比较器的verilog 行为级描述
主要是它的级联:
它是低位将其输出连接到高位的级联部位,逻辑是只有当当前判定A和B两个四位数字相等的时候才会将级联的结果作为输出,否则就是高位判断的大于还是小于,但是因为要最后能判定出A=B,所以最后的没有更低位级联的那个7485比较器就应该把A=B的级联部分设置为1,A>B和A<B部分都设置为0
编码器
二进制编码器(线输入-n线输出)
就是把 个 线输入的高低电平转换为对应的2进制表示(如电平的1000→11,因为高电平在第3位,这里是高电平有效)
拿个2-4编码器来说:
可以有两种verilog描述,通过真值表化简这里
我们能把数据流级给表示出来 行为级也能很容易写出来
留意一下化简方式,3-8线这里的例子很能说明:
译码器74LS138
就是反过来,把输入的n线内容输出到 线输出
有个地方是将2片2-4译码器(有使能端)扩展为3-8译码器
二-十进制译码器
它的功能是将8421BCD码翻译成十个不同点位的指定电平。
七段数码管
集成数据选择器74LS151(8选1)
4选1数据选择器和8选1数据选择器的应用
真值表分组法
卡诺图法
组合逻辑电路的竞争和险象问题
基本概念(有竞争无险象、有竞争有险象、静态险象和动态险象、0型险象和1型险象)
险象的判定和消除
判定:代数法(得到A+A非这样的形式)、卡诺图法(看相切的部分)
消除:加冗余项、接入滤波电容
芯片汇总
我看了下有这几个:
7485 集成比较器,它可以级联
74LS138 3-8译码器,存在s1 s2 s3,其中s1是高电平 s2和s3为低电平有效
74283 4位集成全加器
主要案例是这个,可以级联,C0-1就是来自前一级别的进位输出
74LS151 8选一数据选择器 3条选择线(A0-A2) 8条数据输入线(D0-D7) 1条数据输出
第五章触发器
触发器做分频器
寄存器
第六章
6.3同步时序电路的设计
存在任意项(或约束项)的状态表称不完全确定状态表,它所描述的电路叫不完全确定电路。
若状态表中的次态和输出都有确定的状态和输出,则称为完全确定状态表。
完全确定状态表的化简
等效状态:设状态S1和S2是完全确定状态表中的两个状态,如果对于所有可能的输入序列,分别从状态S1和S2出发,所得到的输出和次态序列完全相同,则状态S1和S2是等效的。
等效类:是彼此等效的状态的集合称为等效类。
如果Si和Sj是完全确定原始状态表中的两个现态,则Si和Sj等效的条件可归纳为:
从最大相容类里面找最小闭覆盖
计数器
嵌入式实验
实验1
串口Minicom的配置和使用
Minicom:串口通信工具,类似Windows下的超级终端,通过串口控制外部嵌入式设备
网口NFS配置及使用
NFS:Network File System,网络文件系统,用户和程序可以像访问本地文件一样访问网络上远端系统上的文件
ifconfig eth0 192.168.0.100: 设置网卡eth0 地址为 192.168.0.100
因为这个可执行文件的目标架构是32位arm架构,而当前pc机是intel的x64架构
在Ubuntu控制台中输入ping -c 4 实验箱IP地址(-c 4表示测试4次与后面IP地址所在主机的连通性)
实验2
JDK(Java Development Kit)
安装配置Eclipse
安装配置NDK插件(Native Development Kit)
如果在Android应用程序开发中需要使用C语言,则还需要NDK( Native Development Kit)
- 作者:liamY
- 链接:https://liamy.clovy.top/article/school/circuit
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章