数字ic学习笔记

学习目标:数字ic学习笔记


学习内容:

1.data[10+:5] 左边开始索引,右边为位宽;+就递增,-就递减;"
变量[起始地址 +: 数据位宽] <–等价于–> 变量[(起始地址+数据位宽-1):起始地址]

data[0 +: 8] <–等价于–> data[7:0]
data[15 +: 2] <–等价于–> data[16:15]
变量[结束地址 -: 数据位宽] <–等价于–> 变量[结束地址:(结束地址-数据位宽+1)]

data[7 -: 8] <–等价于–> data[7:0]
data[15 -: 2] <–等价于–> data[15:14]

2.setup time违例:降低时钟频率,增大时钟周期;时钟路径上加buff,让时钟晚到来;组合逻辑优化或插入buf,缩短关键路径;使用更小延时的触发器;
hold time违例:在数据路径上插buf;使用具有更大延时的触发器;优化时钟路径让时钟更早的到来。

3.异步复位需要进行recovery和removal检查。
这种检查的目的是为了保证复位释放的时刻能早于时钟沿并且保持到时钟沿到来(recovery,恢复),并且保证复位置位的时刻能晚于时钟沿一段时间(removal,清除),以此来避免复位释放的时候出现亚稳态。类似于寄存器D端的setup和hold检查。

4.同步电路于异步电路的区别在于电路触发是否与驱动时钟同步。
同步复位和异步复位电路是同步电路和异步电路中两个典型的逻辑单元。在同步复位电路中,当复位信号有效时,必须要等到时钟沿有效时,才能处理复位信号相关逻辑行为;而在异步复位电路中,当复位信号有效时,立即处理复位信号相关逻辑行为。
同步复位: always @(posedge clk) if(rst)
异步复位: always @(posedge clk or negedge rst) if(!rst)

5.latch的缺点:对毛刺敏感、上电后处于不定态、不能异步复位、同时使得静态时序分析变得困难。在FPGA中没有锁存器这种资源,需要用寄存器来组成锁存器,从而会消耗更多的逻辑资源。在ASIC设计中,锁存器会带来额外的延时,不利于提高系统的工作频率。当然锁存器不是一无是处,锁存器在异步电路中还是很有用的,由于我们设计的大多是同步电路,所以要避免锁存器的产生。
latch只会产生于组合逻辑。组合逻辑if没有else;case语句条件举例不完整且没有default;组合逻辑赋值给自己。
避免latch产生:规范代码书写,输出在任何条件下都有一个确定的状态。

6.function:函数的目的用于返回一个表达式的值。
(1)函数定义不能包含有任何的时间控制语句,例如:#、@、wait;
(2)函数不能调用“task”;
(3)定义函数时至少需要一个输入;
(4)在函数的定义中必须有一条赋值语句给函数中与函数名同名、位宽相同的内部寄存器赋
值。
(5)verilog中的function只能用于组合逻辑。
task:任务时通过调用来执行的,只有在调用时才执行。
(1)在第一行“task”语句中不能列出端口名称;
(2)任务的输入、输出端口和双向端口数量不受限制,甚至可以没有输入、输出以及
双向端口。
(3)在任务定义的描述语句中,可以使用出现不可综合操作符合语句(使用最为频繁
的就是延迟控制语句) ,但这样会造成该任务不可综合。
(4)在任务中可以调用其他的任务或函数,也可以调用自身。
(5)在任务定义结构内不能出现 initial 和 always 过程块。
(6)在任务定义中可以出现“disable 中止语句” ,将中断正在执行的任务,但其是不
可综合的。当任务被中断后,程序流程将返回到调用任务的地方继续向下执行。
7.二进制加减操作。
首先将原码变为补码(计算机存储以补码形式)进行加减操作,之后再将补码转为原码。
负数的补码为原码取反加1.
5:00000101 原码
00000101 补码
-5: 10000101 原码
11111011 补码

学习时间:

提示:这里可以添加计划学习的时间

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

提示:这里统计学习计划的总量

例如:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值