【【Verilog典型电路设计之log函数的Verilog HDL设计】】
Verilog典型电路设计之log函数的Verilog HDL设计
log函数是一种典型的单目计算函数,与其相应的还有指数函数、三角函数等。对于单目计算函数的硬件加速器设计一般两种简单方法:一种是查找表的方式;一种是使用泰勒级数展开成多项式进行近似计算。这两种方式在设计方法和精确度方面有很大的不同。查找表方式是通过存储器进行设计,设计方法简单,其精度需要通过提高存储器深度实现,在集成电路中占用面积大,因此着这种方式通常在精度要求不高的近似计算中使用。泰勒级数展开方式采用乘法器和加法器实现,可以通过增加展开级数提高计算精确度。例:用Verilog HDL设计采用查找表方式的log函数,输入信号位宽4bits,输出信号位宽8bits

其中输入数据为一位整数位三位小数位精确到2-3,输出结果两位整数位六位小数位精确到26。其Verilog HDL程序代码是:
module log_lookup(x,clk,out);
input [3:0] x;
input clk;
output [7:0] out;
reg[7:0] out;
always@(posedge clk) begin
case(x)
4'b1000:out<=8'b00000000;
4'b1001:out<=8'b00000111;
4'b1010:out<=8'b00001110;
4'b1011:out<=8'b00010101;
4'b1100:out<=8'b00011001;
4'b1101:out<=8'b00100000;
4'b1110:out<=8'b00100100;
4'b1111:out<=8'b00101000;
default:out<=8'bz;
endcase
end
endmodule
下面是testbench
module log_lookup_tb;
reg clk;
reg [3:0]x;
wire [7:0] out;
initial begin
x=4'b1000;
clk=1'b0;
repeat(7)
#10 x=x+1;
end
always
#5 clk=~clk;
log_lookup U1(.x(x),.clk(clk),.out(out));
endmodule
例:用Verilog HDL设计采用泰勒级数展开方式的log函数,输入信号位宽4bits,输出信号位宽8bits
泰勒级数的定义:若函数f (x)在点的某一邻域内具有直到(n+1)阶导数,则在该邻域内f (x)的n阶泰勒公式为:

泰勒级数可以将一些复杂的函数用多项式相加的形式进行近似,从而简化其硬件的实现。
logax在x=b处的泰勒展开为

误差范围为:

电路结构图如图所示

上述的log函数在X=1处展开,并且要求X的取值范围为1<X<2,输入4位二进制数据X精确到2-3,其中一位整数位四位小数位,输出8位二进制数据精确到2-6,其中两位整数位六位小数位。设计当中所用到的乘法器和减法器均采用前文所给出的减法器和乘法器。
module log(x,out);
input[3:0] x;
output[7:0] out;
wire [3:0] out1;
wire [7:0] out2,out3, out5, out;
wire [3:0] out4;
assign out4={out3[7:4]};
assign out1=x-4'b1000;//(x-1)
wallace U1(.×(out1),.y(4'b0111),.out(out2));
wallace U2(.x(out1),.y(out1),.out(out3));
wallace u3(.x(out4),.y(4'b0011),.out(out5));
assign out=out2-out5;
endmodule
下面是所显示的testbench
module log_tb;
reg [3:0] x=4'b1000;
wire [7:0] out;
log U1(.x(x),.out(out));
always
#10x=x+1;
always@(x)begin
if(x==4'b0000)$stop;
end
endmodule
相关文章:
【【Verilog典型电路设计之log函数的Verilog HDL设计】】
Verilog典型电路设计之log函数的Verilog HDL设计 log函数是一种典型的单目计算函数,与其相应的还有指数函数、三角函数等。对于单目计算函数的硬件加速器设计一般两种简单方法:一种是查找表的方式;一种是使用泰勒级数展开成多项式进行近似计算。这两种方式在设计方…...
数字放大(C++)
系列文章目录 1.进阶的卡沙_睡觉觉觉得的博客-CSDN博客 2. 数1的个数_睡觉觉觉得的博客-CSDN博客 3. 双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客 4. 足球联赛积分_睡觉觉觉得的博客-CSDN博客 5. 大减价(一级)_睡觉觉觉得的博客-CSDN博客 6. 小写字母的判断_睡觉觉觉得…...
FOC控制框架图
pmsm电机数学模型以及FOC控制框图(开源小项目FOC控制BLDC电机)_foc 框图_栋哥爱做饭的博客-CSDN博客 电机控制----FOC框架讲解_foc电机控制_修才生的博客-CSDN博客...
Spring工具类(获取bean,发布事件)
spring-beans-5.3.1.jar Component public final class SpringUtils implements BeanFactoryPostProcessor{/*** Spring应用上下文环境*/private static ConfigurableListableBeanFactory beanFactory;//初始化成员变量Overridepublic void postProcessBeanFactory(Configurab…...
腾讯云和阿里云服务器折扣对比_看看哪家划算?
阿里云服务器和腾讯云服务器根据购买时长可以享受一定的优惠折扣,综合对比下来腾讯云折扣更低,阿腾云来对比下阿里云和腾讯云的云服务器根据购买时长可以享受的常规折扣对比: 目录 阿里云和腾讯云折扣对比 阿里云服务器常规折扣 腾讯云服…...
GO语言中的Defer与Error异常报错详细教程
目录标题 一、Defer1. Example2. Deferred methods 延迟方法3. Arguments evaluation 延迟参数4. Stack of defers 延迟程序堆栈5. Practical use of defer 实际使用 二、Error1. Example2. PathError3. DNSError4. Direct Comparison 直接比较5. Do not ignore errors 不要忽略…...
AP6315 DC单节锂电池充电IC 同步2A锂电芯片
概述 是一款面向5V交流适配器的2A锂离子电池充电器。它是采用1.5MHz固定频率的同步降压型转换器,因此具有高达90%以上的充电效率,自身发热量极小。包括完整的充电终止电路、自动再充电和一个达1%的4.2V预设充电电压,内部集成了防反灌保护、输…...
PDF校对工具正式上线,为用户提供卓越的文档校对解决方案
为满足当下对数字化文档校对的精准需求,我们今日正式发布全新的PDF校对工具。经过深入的技术研发与细致的测试,该工具旨在为企业和个人用户带来一个高效且准确的PDF文档校对平台。 PDF校对工具的主要特性: 1.全面性校对:工具支持…...
WSL 配置 Oracle 19c 客户端
Windows WSL 登陆后显示如下: Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as…...
ChatGPT⼊门到精通(1):ChatGPT 是什么
⼀、直观感受 1、公司 OpenAI(美国) 2、官⽅⽹站 3、登录ChatGPT  at com.alibaba.druid.pool…...
软考高级系统架构设计师系列论文八十九:论软件需求分析方法和工具的选用
软考高级系统架构设计师系列论文八十九:论软件需求分析方法和工具的选用 一、软件需求相关知识点二、摘要三、正文四、总结一、软件需求相关知识点 软考高级系统架构设计师:论软件需求管理...
java八股文面试[JVM]——类加载器
一、类加载器的概念 类加载器是Java虚拟机用于加载类文件的一种机制。在Java中,每个类都由类加载器加载,并在运行时被创建为一个Class对象。类加载器负责从文件系统、网络或其他来源中加载类的字节码,并将其转换为可执行的Java对象。类加载器…...
CSS中如何实现元素之间的间距(Margin)合并效果?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 外边距合并的示例:⭐ 如何控制外边距合并:⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅ÿ…...
【实操干货】如何开始用Qt Widgets编程?(三)
Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中࿰…...
基于深度学习的图像风格迁移发展总结
前言 本文总结深度学习领域的图像风格迁移发展脉络。重点关注随着GAN、CUT、StyleGAN、CLIP、Diffusion Model 这些网络出现以来,图像风格迁移在其上的发展。本文注重这些网络对图像风格迁移任务的影响,以及背后的关键技术和研究,并总结出一…...
小程序页面间有哪些传递数据的方法?
使用全局变量实现数据传递 在 app.js 文件中定义全局变量 globalData, 将需要存储的信息存放在里面使用的时候,直接使用 getApp() 拿到存储的信息 App({// 全局变量globalData: {userInfo: null} }) 使用 wx.navigateTo 与 wx.redirectTo 的时候&…...
bh002- Blazor hybrid / Maui 保存设置快速教程
1. 建立工程 bh002_ORM 源码 2. 添加 nuget 包 <PackageReference Include"BootstrapBlazor.WebAPI" Version"7.*" /> <PackageReference Include"FreeSql" Version"*" /> <PackageReference Include"FreeSql.…...
同源政策与CORS
CORS意为跨源资源共享(Cross origin resource sharing),它是一个W3C标准,由一系列HTTP Header组成,这些 HTTP Header决定了浏览器是否允许JavaScript 代码成功获得跨源请求的服务器响应。 在说CORS之前,先…...
科技资讯|三星再申请智能戒指商标,智能穿戴进入更小型化发展
三星正在积极扩展可穿戴设备生态,近日向英国知识产权局提交了名为“Samsung Curio”的新商标,其分类为“Class 9”,可能会用于未来的智能戒指。 智能戒指: 可穿戴计算机本质上的智能手环、智能项链、智能眼镜和智能戒指࿱…...
从内存条到手机主板:盘点不同场景下过孔尺寸选择的实战经验与避坑指南
从内存条到手机主板:不同场景下过孔尺寸选择的实战经验与避坑指南 在高速PCB设计中,过孔的选择往往被工程师视为"细节问题",但正是这些看似微小的设计决策,决定了产品的信号完整性、电源完整性和最终可靠性。从内存条的…...
Claude Code 实战复盘:工程师能力地图中 3 类新增核心技能解析
1. 工程师能力地图正在被重绘:3 类技能已从“加分项”变成“准入门槛” 上周三下午,我帮团队一位三年经验的后端工程师做 Code Review。他提交了一个用 Spring Boot 实现的订单状态机模块,逻辑清晰、测试覆盖完整——但整个 PR 的 commit message 里反复出现 “Claude sugg…...
EPUBCheck测试框架深度解析:单元测试和集成测试最佳实践
EPUBCheck测试框架深度解析:单元测试和集成测试最佳实践 【免费下载链接】epubcheck The conformance checker for EPUB publications 项目地址: https://gitcode.com/gh_mirrors/ep/epubcheck EPUBCheck作为EPUB出版物的官方一致性检查工具,其强…...
【亲测免费】 探索INA282:电流检测与测量的利器
探索INA282:电流检测与测量的利器 【下载地址】INA282电路图与使用说明 INA282电路图与使用说明本仓库提供了一个关于INA282的详细资源文件,包括电路图和使用说明 项目地址: https://gitcode.com/open-source-toolkit/9e96c 项目介绍 INA282是一…...
为Cursor IDE定制AI代码生成规则:打造波士顿动力级精准开发助手
1. 项目概述:一个为Cursor定制的波士顿动力风格代码生成器如果你和我一样,每天都在和代码编辑器打交道,尤其是深度使用Cursor这款AI驱动的IDE,那你一定对“如何让AI更懂我”这件事有执念。Cursor自带的代码补全和生成能力已经很强…...
在 GitHub Actions 中集成 Taotoken 实现大模型 API 自动化调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 GitHub Actions 中集成 Taotoken 实现大模型 API 自动化调用 将大模型能力集成到自动化工作流中,是提升开发效率的有…...
WebPlotDigitizer完整指南:5步从图表图像中智能提取数据,科研效率提升90%
WebPlotDigitizer完整指南:5步从图表图像中智能提取数据,科研效率提升90% 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigit…...
CVPR 2023风向解读:多模态与扩散模型如何重塑计算机视觉
1. 从顶会风向标,看计算机视觉的“现在进行时”又到了年中盘点的时候,对于计算机视觉(CV)圈子的从业者、学生和研究者来说,每年CVPR的论文录用情况,就是一张最权威的“技术晴雨表”。它不只是一份论文列表&…...
3分钟搞定macOS OBS虚拟摄像头:专业直播与视频会议的终极指南
3分钟搞定macOS OBS虚拟摄像头:专业直播与视频会议的终极指南 【免费下载链接】obs-mac-virtualcam ARCHIVED! This plugin is officially a part of OBS as of version 26.1. See note below for info on upgrading. 🎉🎉🎉Creat…...
Orange Pi 3B深度评测:RK3566创客板在边缘AI与家庭服务器中的应用实战
1. 项目概述:一块“搅局”的创客板最近,Orange Pi 3B的发布在创客圈和嵌入式开发者社区里激起了一阵不小的波澜。官方打出的“创客价”这个标签,更是精准地戳中了许多硬件爱好者和项目开发者的心。简单来说,Orange Pi 3B是一款基于…...
