【【带有握手信号的无符号数乘法verilog+ testbench 代码】】
带有握手信号的无符号数乘法verilog+ testbench 代码
uumultiplier.v
module uumultiplier #(parameter NUMBER1 = 8 ,parameter NUMBER2 = 10)(input [NUMBER1-1 : 0] input1 ,input [NUMBER2-1 : 0] input2 ,input clk ,input rst_n ,input begin_en ,output reg finish_en ,output reg [NUMBER1+NUMBER2 : 0] out);//======================================================================================\// define parameter and internal signal \//======================================================================================\reg [NUMBER1+NUMBER2 : 0] out1 ;//==========================================================================================\// next is main code \\//===========================================================================================\\
always@(posedge clk or negedge rst_n)beginif(rst_n == 0)beginout <= 0 ;endelse if(begin_en && finish_en )beginout <= input1 * input2 ;endelseout <= out ;endalways@(posedge clk or negedge rst_n )beginif(rst_n == 0)beginout1 <= 0 ;endelseout1 <= out ;endalways@(posedge clk or negedge rst_n)beginif(rst_n == 0)beginfinish_en <= 1'b1 ;endelse if(out != out1)beginfinish_en <= 1'b1 ;endelsefinish_en <= 1'b0 ;endendmodule
uumultiplier_tb.v
module uumultiplier_tb #(parameter NUMBER1 = 8 ,parameter NUMBER2 = 10 );reg [NUMBER1-1 : 0] input1 ;
reg [NUMBER2-1 : 0] input2 ;
reg clk ;
reg rst_n ;
reg begin_en ;
wire finish_en ;
wire [NUMBER1+NUMBER2 : 0] out ;uumultiplier#(.NUMBER1 ( NUMBER1 ),.NUMBER2 ( NUMBER2 )
)u_uumultiplier(.input1 ( input1 ),.input2 ( input2 ),.clk ( clk ),.rst_n ( rst_n ),.begin_en ( begin_en ),.finish_en ( finish_en ),.out ( out )
);always #5 clk = ~clk ;initial begin clk = 0 ;rst_n = 0 ;input1 = 1 ;input2 = 1 ;begin_en = 1 ;#20rst_n = 1 ;input1 = 10 ; input2 = 8 ;#20input1 = 12 ; input2 = 8 ;#20 input1 = 1 ; input2 = 8 ;#20input1 = 3 ; input2 = 5 ;end
endmodule
相关文章:
【【带有握手信号的无符号数乘法verilog+ testbench 代码】】
带有握手信号的无符号数乘法verilog testbench 代码 uumultiplier.v module uumultiplier #(parameter NUMBER1 8 ,parameter NUMBER2 …...
【Python机器学习】零基础掌握BayesianRidge贝叶斯回归
如何准确预测房价? 在现实生活中,购买房产可能是最大的一笔投资。因此,准确预测房价变得尤为重要。通常,房价受到多个因素的影响,包括地段、房龄、房屋面积等。但如何综合这些因素来做出准确预测呢? 这里介绍一种机器学习算法:贝叶斯岭回归(Bayesian Ridge Regressio…...
【机器学习】朴素贝叶斯算法基本原理与计算案例
朴素贝叶斯算法基本原理与计算案例 文章目录 朴素贝叶斯算法基本原理与计算案例1. 朴素贝叶斯算法的基本原理2. 概率基础3. 朴素贝叶斯简单计算案例4. 朴素贝叶斯算法对文本进行分类5. 拉普拉斯平滑系数6. 案例:20类新闻分类7. 总结 1. 朴素贝叶斯算法的基本原理 朴…...
redis6.0源码分析:简单动态字符串sds
文章目录 sds简介与特性(面试)sds结构模型数据结构苛刻的数据优化数据结构优化uintX_t对齐填充 sds优势O(1)时间复杂度获取字符串长度二进制安全杜绝缓冲区溢出自动扩容机制——sdsMakeRoomFor方法 内存重分配次数优化 sds最长是多少部分API源码解读创建sds释放sds sds简介与特…...
1.7 攻击面和攻击树
思维导图: 1.7 攻击面与攻击树 攻击面: 描述计算机和网络系统面对的安全威胁和攻击。 定义: 攻击面是由系统中可访问和可利用的漏洞所组成。常见攻击面: 向外部Web及其他服务器开放的端口和相应代码。防火墙内部的服务。处理入站数据、电子邮件、XML文件、Office文档…...
解决input在谷歌浏览器自动填充问题
解决input在谷歌浏览器自动填充问题 <input typepassword readonly onfocus"this.removeAttribute(readonly);" />...
Java字节码技术
Java 字节码简介 Java 中的字节码,英文名为 bytecode, 是 Java 代码编译后的中间代码格式。JVM 需要读取并解析字节码才能执行相应的任务。 从技术人员的角度看,Java 字节码是 JVM 的指令集。JVM 加载字节码格式的 class 文件,校验之后通过 J…...
Java SE 学习笔记(十八)—— 注解、动态代理
目录 1 注解1.1 注解概述1.2 自定义注解1.3 元注解1.4 注解解析1.5 注解应用于 junit 框架 2 动态代理2.1 问题引入2.2 动态代理实现 1 注解 1.1 注解概述 Java 注解(Annotation)又称Java标注,是JDK 5.0引入的一种注释机制,Java语…...
虚拟内存之请求分页管理
一、与基本分页存储管理的区别 程序执行过程中,访问信息不在内存时,OS需要从外存调入内存。——>调页功能 内存空间不够时,OS需要将内存中暂时用不到的信息换出到外存。——>页面置换功能 二、页表机制 1.页表:需要知道页面…...
lazarus开发:提升sqlite数据插入速度
目录 1 前言 2 优化数据容器 3 开启事务插入数据 4 其他方面优化 1 前言 近期有一个需求是向数据库中插入excel文件中的10万多条数据,接近70个字段。最初整个插入数据时间是大约40分钟,经过优化调整后,大幅优化为大约5分钟。这里简单介绍…...
瑞萨RH850-P1X ECM和英飞凌TC3xx SMU对比
1.1 基本结构 P1X ECM(Error Control Module)收集从不同的错误源和监控电路发来的错误信号,并通过error pin(ERROROUTZ)对外输出、产生中断并发出ECM reset信号。 P1x-C系列根据产品型号不同,ECM个数也不相同,如下: 对应寄存器基地…...
Ajax学习笔记第三天
做决定之前仔细考虑,一旦作了决定就要勇往直前、坚持到底! 【1 ikunGG邮箱注册】 整个流程展示: 1.文件目录 2.页面效果展示及代码 mysql数据库中的初始表 2.1 主页 09.html:里面代码部分解释 display: inline-block; 让块元素h1变成行内…...
ESP32-C3 低功耗懒人开关:传统开关轻松上云和本地控制
项目背景 随着科技的快速发展,智能家居已经成为我们日常生活的一部分。而对于基础设施已经配备完毕的家庭而言,对家居设备的智能化改造是一项相对困难的工作。本文将分享一款基于 Wi-Fi 的低功耗懒人开关—— “ESP32-C3 管灯熊猫”。将智能的 “ESP32-…...
前端学习路线指南:从入门到精通【①】
前言 作为一个前端开发者,学习前端技术是必不可少的。然而,由于前端领域的广阔和不断演进的技术栈,对于初学者来说可能会感到困惑。本篇文章将为你提供一个清晰的前端学习路线,帮助你系统地掌握前端开发技能,并成为一名…...
Flash模拟EEPROM原理浅析
根据ST的手册,我们可以看到,外挂EEPROM和Dflash模拟EEPROM,区别如下: 很明显,模拟EEprom的写入速度要远远快于外挂eeprom(有数据传输机制); 其次,外挂EEPROM不需要擦除即可实现写入数据…...
Typora 最新激活方法
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,其目标是实现易读易写。而Typora则是一个非常不错的Markdown编辑器,它的界面非常的简洁直观,并且功能各…...
jenkins如何安装?
docker pull jenkins/jenkins:lts-centos7-jdk8 2.docker-compose.yml version: 3 services:jenkins:image: jenkins/jenkins:lts-centos7-jdk8container_name: my-jenkinsports:- "8080:8080" # 映射 Jenkins Web 界面端口volumes:- jenkins_home:/var/jenkins_h…...
从零开始的LINUX(三)
bc:进行浮点数运算 uname:查看当前的操作系统 ctrlc:中止当前正在执行的程序 ctrld:退出xshell shutdown:关机 reboot:重启 shell外壳: 作用:1、命令解释(将输入的程序…...
CleanMyMac2024永久免费版Mac系统磁盘清理工具
Cleanmymac对很多用户来说已经非常熟悉了,因为在网上如果你搜寻有关清理mac系统方面的软件时,占比非常多的会是cleanmymac的相关消息。许多刚从Windows系统转向Mac系统怀抱的用户,一开始难免不习惯,因为Mac系统没有像Windows一样的…...
HashSet 元素不重复
HashSet通过底层使用HashMap来保证元素不重复。具体来说,HashSet内部维护一个HashMap,其中元素存储在HashMap的key上,而所有的value都指向同一个共享的内部对象。在存储元素时,HashSet会根据元素的hashCode值来确定其在HashMap中的…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
