07 2023 档案
摘要:分频电路 2.2.1 简单的计数器 计数器实质是对输入的驱动时钟进行计数,所以计数器在某种意义上讲,等同于对时钟进行分频。例如一个最大计数长度为N=2^M(从0计数到N-1)的计数器,也就是寄存器位数为M,那么寄存器最高位的输出为N=2^M分频,次高位为N/2分频...例如下面的代码: module
阅读全文
摘要:计数器 ①时序电路的行为决定了其只能通过always 块语句实现,通过关键词“posedge”和“negedge”来捕获时钟信号的上升沿和下降沿。在always 语句块中可以使用任何可综合的标志符。 ②在描述时序电路的always 块中的reg 型信号都会被综合成寄存器,这是和组合逻辑电路所不同的。
阅读全文
摘要:存储层次结构概况 这是我们非常熟悉的冯·诺依曼计算机结构, 那这其中哪些部件和存储功能有关呢? 存储器和外部记录介质肯定具有存储功能,另外还有一个自带存储功能的运算器,为了描述方便,我们把这些部件统称为存储器。那么我们看一下计算机中对存储器有哪些要求 ? 1、首先存储器当中应该保存了将要运行的程序和
阅读全文
摘要:BL产生的原因 暗电流 暗电流(dark current),也称无照电流,指在没有光照射的状态下,在太阳电池、光敏二极管、光导电元件、光电管等的受光元件中流动的电流,一般由于载流子的扩散或者器件内部缺陷造成。目前常用的CMOS就是光电器件,所以也会有暗电流,导致光照为0的时候也有电压输出。 如图是二
阅读全文
摘要:除法器 与乘法相比,除法的实现较为复杂,运算过程如下: 过程: 被除数和余数:将余数和被除数视为一个,共享一个寄存器,初始值为被除数 除数:可视为不断右移,并和被除数相减 商:每个bit依次生成,可视为不断左移 除法器的工作流程 要注意的是,与手算相比,电路实现总是将余数减除数,所以如果出现差小于0
阅读全文
摘要:乘法器 顺序乘法器 我们需要明确的是两个D_WIDTH位宽的数相乘,结果位宽为2*D_WIDTH, 对于负数乘法,可以利用乘数和被乘数的符号位进行异或得到积的符号位,通过判断符号位得到乘数和被乘数的绝对值,将负数乘法转为无符号数乘法进行运算,首先初始化乘数寄存器和被乘数寄存器Multiplicand
阅读全文
摘要:减法器 半减器 半减器用于计算两比特Xi和Yi的减法,输出结果Di和向高位的借位Bo(Borrow output)。其真值表、逻辑表达式、Verilog描述和门电路图如下: module half_subtract( input xi, input yi, output di, output bo)
阅读全文
摘要:加法器 1.1 半加器 半加器用于计算2个单比特二进制数a与b的和,输出结果sum(s)和进位carry(c)。在多比特数的计算中,进位c将作为下一相邻比特的加法运算中。单个半加器的计算结果是2c+s。其真值表、逻辑表达式、verilog描述和电路图分别如下所示。 逻辑表达式: $$s=a'b |a
阅读全文
摘要:1.数的表示 1.1 数制转换 十进制整数转换成其他进制数:“除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。 十进制小数转换成其他进制数:乘基取整,直至ε,高位到低位;“乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘
阅读全文
摘要:循环语句 在Verilog HDL中存在着四种类型的循环语句,用来控制执行语句的执行次数。 1) forever 连续的执行语句。 2) repeat 连续执行一条语句 n 次。 3) while 执行一条语句直到某个条件不满足。如果一开始条件即不满足(为假),则语句一次也不能被执行。 4) for
阅读全文
摘要:task模块 任务task在模块中任意位置定义,并在模块内任意位置引用,作用范围也局限于此模块。 模块内子程序出现下面任意一个条件时,则必须使用任务而不能使用函数。 1)子程序中包含时序控制逻辑,例如延迟,事件控制等 2)没有输入变量 3)没有输出或输出端的数量大于 1 //任务task定义:如下代
阅读全文