- 博客(28)
- 收藏
- 关注
原创 warm reset 和 cold reset 区别
cold reset = complete removal of power and restart.warm reset = forcing a restart via a reboot with out powering down.
2023-09-21 17:33:41
450
原创 Verilog权重轮询仲裁器设计——Weighted Round Robin Arbiter
Verilog权重轮询仲裁器设计 Weighted Round Robin 含代码
2023-04-12 20:08:52
3095
10
原创 Verilog轮询仲裁器设计——Round Robin Arbiter
当N个source同时发出请求时,默认source 0的优先级最高,当source 0 被响应后,它的优先级变为最低,source 1的优先级转为最高,以此类推。在固定优先级仲裁器的那一篇,讲了指定最高优先级的固定优先级仲裁器的实现方法。即初始情况下,最高优先级为source 0,然后是source 1、source 2、……直到source N。轮询仲裁就是在固定优先级仲裁器的基础上,所有的request轮流当最高优先级。上篇讲了固定优先级仲裁器的设计,并给出了指定最高优先级的实现方法。
2023-03-20 17:07:39
4466
10
原创 有符号小数的表示、扩展和计算
目录一、有符号数和无符号数的表示方法二、小数的表示方法三、数的扩展四、有符号小数的计算一、有符号数和无符号数的表示方法对于n bit有符号数,其表示方法为:对于n bit无符号数,其表示方法为:例如,对于一个4bit数 4‘b1011,如果它是一个有符号数,其值为如果它是一个无符号数,其值为二、小数的表示方法对于一个有符号数,假设数据总位宽为m,小数位宽为n,则可表示为mQn例如10Q8,表示总位宽为10,小数位宽为8三、数的扩展1、整..
2022-02-24 17:31:32
2459
2
原创 一拍找出数组中的多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。假设数据位宽为m构建如图所示矩阵,每一行为数组中的一个数,从左到右依次为数据的高bit到底bit计算时,将每一列的数相加,得到的值如果大于n/2,则多数元素的该bit为1,否则为0例如,当m=4,n=5时,结果如下图所示数组中共有5个元素,值分别为3、7、3、3、7每一列的和的值为2、2、5、5n/2=2当和为2时,不满足>2,所以该bit为0
2022-02-23 15:03:46
227
原创 对booth乘法器面积与功耗的优化
对booth乘法器的介绍见上篇:booth乘法器的原理与verilog实现_weixin_42330305的博客-CSDN博客1、部分积编码的优化上文中编码用了一个八选一的选择器,面积较大,我们对它进行进一步的优化。如图所示,对于Radix-4编码,以第二层部分积为例,其值取决于b[3:1]、a即a*(-2*b[3]+b[2]+b[1])不难看出Neg = b[3]two = (!(b[2]^b[1]))^b[3]One = b[2]^b[1]对于第一层部..
2022-02-11 17:39:43
1076
2
原创 booth乘法器的原理与verilog实现
一、乘法原理如图所示,二进制乘法和十进制乘法类似,都是单bit相乘,移位后相加如a(4bit)*b(4bit)将上图中所有数相加时,我们会用到阵列乘法器其中,HA表示半加器,FA表示全加器,虚线表示进位链上图红色和紫色线表示最长路径,代表了组合逻辑深度,我们对其进行优化优化后,进位链变短由此我们可以得出,乘法运算由2部分组成:生成部分积、通过加法树对数据压缩二、部分积生成如图所示,红框中的数即为部分积我们知道,01110 = 10000 - 00010因此,上
2022-02-10 20:40:13
15838
13
原创 rtl低功耗除法器设计
对于在性能要求不高的地方,可以使用这种除法其原理是每一拍除数减去被除数,直到被除数小于除数。减的次数为商,剩下的是余数。对于a/b,假设a位宽为m,b位宽为n,则需要m拍出结果算法原理:对于无符号除法,其商不会超过,余数一定不会超过n定义变量assign a_tmp = {n{1'b0},a}assign b_tmp = {b,m{1'b0}}在每个周期开始时,先将a_tmp左移一位,末尾补0,然后与b_tmp比较,是否大于b_tmp,是则a_tmp减去b_tmp将且加上1,
2022-02-07 18:18:23
649
原创 用小位宽乘法器实现大位宽乘法
我们在使用大位宽乘法器时,有时受到工艺的限制,乘法器位宽太大,时序收不下来,这时候需要将其拆为若干个小位宽乘法再相加,并在其中插入寄存器,即可解决以上问题。其核心原理是乘法交换律。我们以两个16bit无符号数相乘为例。a[15:0] * b[15:0]a[15:0] = a[15:8]<<8 + a[7:0]b[15:0] = b[15:8]<<8 + b[7:0]a[15:0] * b[15:0] = (a[15:8]<<8 + a[7:0])
2022-01-29 15:27:38
1443
2
原创 rtl低功耗方法总结
功耗来源=动态功耗+静态功耗低功耗设计技术:时钟门控、电源关断、多电压供电、多电压阈值、动态调压调频/自适应调压一、Clock Gating时钟门控:1、模块级时钟门控对模块整体进行门控,通过例化门控单元,将空闲模块的时钟关断或者降低时钟工作的频率2、电路级门控工具根据rtl自动综合出时钟门控电路always @ (posedge clk or negedge rst_n) begin if(!rst_n) q <= 32'b0; else...
2022-01-25 20:17:58
3950
原创 CRC原理及rtl高效实现方法
CRC 算法的基本思想是将传输的数据当做一个位数很长的数。将这个数除以另一个数。得到的余数作为校验数据附加到原数据后面。CRC算法中,将二进制数据流作为多项式的系数,然后进行的是多项式的乘除法。如:除法其实做的是异或运算,可以更简便的用表格表示,假设生成项为10011转化为电路:数据从低位输入,若最高位数据为0则寄存器移位,若最高位数据为1则生成项与寄存器中的值异或后寄存器移位。因此,在生成项为10011时,待测数据移位一次结果如图所示:但是这种方法每次只能计算1..
2022-01-25 14:24:36
936
原创 Chisel Module/RawModule/MultiIOModule
Module最常用的是Module,常用于时序逻辑,不用特意用声明clock和reset,默认会自动生成,且Module内只能声明一个IOclass add extend RawModule { val io = IO(new Bundle { val a = Input(UInt(1.W)) val b = Input(UInt(1.W)) val c = Output(UInt(2.W))}) io.c := io.a + io
2022-01-24 14:42:21
509
原创 chisel编码初体验
本文记录了初次使用chisel编码时遇到的一些问题及解决办法,希望对以后的工作有所帮助。1、内部信号赋值1.1 单bit数信号定义 单bit使能需要定义为Bool型,在io端口定义如下val pipe_en = Input(Bool())注意:"Bool"后需要加"()"1.2 寄存器打拍 Chisel中支持的Reg类型有RegNext、RegInit、RegEnable、ShiftRegister,具体的差别和使用方法可参考Chisel中的几种常见的寄存器_C...
2022-01-11 17:10:59
667
原创 rtl高效定位问题的方法——verilog加打印
我们定位rtl问题一般都是通过看波形,可是当pipe line 太长,或者是数据量太多,拉波形定位定位问题就会带来一种把眼瞅瞎的感觉。如果能将中间值打印到文件中,使rtl的打印结果和rm的打印结果自动比对,则能快速精准定位问题。verilog的打印方法:`define PRINT U_PRINT_TOP.U_PRINT_ALGO.U_PRINT_OUT_0 //定义打印信号所在的层级reg [8*100-1:0] file_name_p = "p_out.txt"integer p_
2022-01-11 16:56:17
977
原创 TRIZ(一级)
TRIZ:发明问题的解决理论。由前苏联发明家根里奇·阿奇舒勒所提出,通过对250万件世界高水平发明专利的分析研究,提出了有关发明问题的基本理论。TRIZ理论成功地揭示了创造发明的内在规律和原理,着力于澄清和强调系统中存在的矛盾,其目标是完全解决矛盾,获得最终的理想解。它不是采取折中或者妥协的做法,而且它是基于技术的发展演化规律研究整个设计与开发过程,而不再是随机的行为。TRIZ发明问题解决流程问题调研客户声音、最终理想解、根因分析、资源、九宫格1、什么是系统提供的最重要的功能?(设计的最
2022-01-07 15:58:46
2365
3
原创 scala学习笔记
Chisel(Constructing Hardware In a Scala Embedded Language)是UC Berkeley开发的一种开源硬件构造语言。它是建构在Scala语言之上的领域专用语言(DSL),支持高度参数化的硬件生成器。原本以为在了解了chisel基本语法之后,在运用chisel的大道上就可以畅通无阻了。没想到在chisel的高阶应用中一脸懵逼。看来学习一下scala是十分必要的。本文为《快学scala》的学习笔记,和chisel相同部分不再记录,仅记录笔者认为对chi
2021-12-16 10:45:57
139
特斯拉Dojo FP8、FP16数据规格
2022-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人