赞
踩
符号扩展是计算机算术中在保留数字的符号(正/负)和值的同时增加二进制数的位数的操作。例如10的二进制数“ 00 1010”,并且符号扩展操作将字长增加到16位,则新的表示形式就是“ 0000 0000 0000 1010”。-15的二进制补码值“1111110001”,并且将其符号扩展为16位,则新表示为“1111 1111 1111 0001 ”。
假设a和b是无符号数,是16位,out1 是17位,做减法的时候系统会自动帮我们补位0,如果a和b是有符号数,这时候我们就不能依靠系统来进行自动补位,我们要手动进行补位,不然得出来的结论是不正确的。
时序电路中含有存储单元,所以输出不仅和当前输入有关,还和电路的当前状态有关,而组合电路的输出只取决于当前的输入;
组合逻辑电路的分析方法:确定输入和输出变量;列出真值表;写出逻辑表达式;逻辑表达式进行化简;画出逻辑电路图
时序逻辑电路的分析方法:从逻辑图中写出每个触发器的驱动方程;带入相应的触发器的特性方程;根据逻辑图写出输出方程
同步电路是由时序电路(寄存器和各种触发器)和组合逻辑构成的电路,每一个操作都是在严格的时钟控制下完成的,这些时钟电路共享一个时钟clk,所有的状态变化都是在时钟的上升沿和下降沿来完成的,同步电路的核心逻辑是用触发器来实现的,依据时钟沿查收信号可以很好地避免毛刺,有利于器件移植、静态时序分析和验证设计时序性能等
而异步电路的核心是使用组合电路来实现的,容易产生毛刺。异步电路没有时钟歪斜问题,较低的电源消耗,平均效能、模块性、可组合和复用性。
同步复位:是指复位信息只有在时钟上升沿到来时,才能有效,否则无法完成对系统的复位工作。异步复位:是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。同步复位和异步复位产生的RTL电路也有所不同。
阻塞赋值操作符用“=”表示。阻塞是指在进程语句,当前的赋值语句阻断了后面的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行,阻塞赋值可以看成是一步完成的。阻塞是顺序执行的,在不同的过程赋值语句块中,阻塞赋值的循序语法是无法定义的
非阻塞赋值操作符用“<=”表示。非阻塞是指在进程语句中,当前的赋值语句不会阻断其后的语句。非阻塞语句可以认为是分为两个步骤进行的:第一步,计算等号右边的表达式的值;第二步,在本条赋值语句结束时,将等号右边的值赋给等号左边的变量。非阻塞语句是完全同时执行的
- always @(posedge clk)
- begin
- b = a;
- c = b;
- end
- always @(posedge i_clk)
- begin
- b <= a;
- c <= b;
- end
-
可综合的code建议:组合电路使用“=”赋值,时序逻辑使用“<=”赋值,#1(delay)可以使用,但是在综合的时候会被忽略掉,在多个语句块中不要对同一个变量进行赋值,在一个alwaysy块中,一次触发只对同一个信号最多赋值一次。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。