verilog代码转化电路图_门电路实现补码运算

verilog代码转化电路图_门电路实现补码运算comp_conv.v://2022-1-19verilog学习//补码转换逻辑`timescale1ns/10ps;modulecomp_conv( a, a_comp );input[7:0] a;output[7:0] a_comp;//中间变量wire[6:0] b;//负数按位取反的幅度位(1位符号位+7位幅度位)wire[7:0] y;//负数的补码assign ..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述


comp_conv.v:


// 2022-1-19 verilog学习
// 补码转换逻辑
`timescale 1ns/10ps;

module comp_conv(
								a,
								a_comp
								);

input[7:0]			a;
output[7:0]			a_comp;

// 中间变量
wire[6:0]				b;  // 负数按位取反的幅度位 (1位符号位+7位幅度位)
wire[7:0]				y;  // 负数的补码

assign					b = ~a[6:0];
assign					y[6:0] = b+1;  // 负数的补码=幅度位按位取反+1
assign					y[7] = a[7];   // 符号位不变

// 二选一
assign					a_comp = a[7]?y:a; //正数(符号位[7]是0)的补码是自己,负数的补码是y 

endmodule


// testbench 测试台
module comp_conv_tb;  
reg[7:0]						a_in;		 // 输入有变化,reg型变量
wire[7:0]						y_out;  // 输出要看,wire型变量

comp_conv comp_conv(
										.a(a_in),
										.a_comp(y_out)
										);  // 测试输入输出即可
										
initial begin
											a_in <= 0;  // a_in初始化
							#3000		$stop;			// 8位bit从00000000到11111111有256个变化,每个变化10ns,3000ns足够
end

always #10 a_in <= a_in+1; 

endmodule

简洁版


// 2022-1-19 verilog学习
// 补码转换逻辑
`timescale 1ns/10ps;

module comp_conv(
								a,
								a_comp
								);

input[7:0]			a;
output[7:0]			a_comp;

// 中间变量
//wire[6:0] b; // 负数按位取反的幅度位 (1位符号位+7位幅度位)
//wire[7:0] y; // 负数的补码

//assign b = ~a[6:0];
//assign y[6:0] = b+1; // 负数的补码=幅度位按位取反+1
//assign y[7] = a[7]; // 符号位不变
//assign y = {a[7],~a[6:0]+1};

// 二选一
//assign a_comp = a[7]?y:a; //正数(符号位[7]是0)的补码是自己,负数的补码是y 
assign						a_comp = a[7]?{ 
   a[7],~a[6:0]+1}:a;  // 二选一

endmodule


// testbench 测试台
module comp_conv_tb;  
reg[7:0]						a_in;		 // 输入有变化,reg型变量
wire[7:0]						y_out;  // 输出要看,wire型变量

comp_conv comp_conv(
										.a(a_in),
										.a_comp(y_out)
										);  // 测试输入输出即可
										
initial begin
											a_in <= 0;  // a_in初始化
							#3000		$stop;			// 8位bit从00000000到11111111有256个变化,每个变化10ns,3000ns足够
end

always #10 a_in <= a_in+1; 

endmodule


modelsim 仿真:

正数补码与原码相同

在这里插入图片描述
负数补码符号位 [7] 不变,幅度 [6:0]取反+1

在这里插入图片描述


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192506.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 线程池拒绝策略详解[通俗易懂]

    线程池拒绝策略详解[通俗易懂]线程池拒绝策略详解JDK中已经预设了4种线程池拒绝策略,下面结合场景详细聊聊这些策略的使用场景,以及我们还能扩展哪些拒绝策略。池化设计思想池话设计应该不是一个新名词。我们常见的如java线程池、jdbc连接池、redis连接池等就是这类设计的代表实现。这种设计会初始预设资源,解决的问题就是抵消每次获取资源的消耗,如创建线程的开销,获取远程连接的开销等。就好比你去食堂打饭,打饭的大妈会先…

    2022年6月25日
  • Win下tomcat宕机自启vbs脚本[通俗易懂]

    Win下tomcat宕机自启vbs脚本[通俗易懂]将此下面的代码保存到一个.txt文件中,然后将后缀名命名为.vbs,再然后双击运行即可。注意要修改的地方:1.检查tomcat是否挂掉的访问路径,即下面代码中的:http://localhost:8080?a="&amp;now2.一定要先切到bat所在目录WshShell.CurrentDirectory="D:\ProgramFiles\apache-tomcat-9.0….

    2022年7月23日
  • 贴片DO-218AB封装TVS二极管SM8T33A

    贴片DO-218AB封装TVS二极管SM8T33A提及“汽车级瞬态二极管”,大多数电子工程师都会想到DO-218AB封装SM8S系列中的SM8S24V、SM8S33A、SM8S36A、SM8S36CA等等,这些物料常用于汽车12V系统和24系统中,可通过抛负载7637-5a/5b测试,为汽车电子产品安全保驾护航。关于汽车级瞬态TVS二极管SM8T系列,知道的电子工程师并不多,但是经常有客户咨询:SM8T系列型号有哪些?SM8T33A二极管参数?SM8T36A可以替代SM8S36A吗?SM8T24CA和SM8S24CA有什么区别……瞬态二极管厂家东沃电子

    2022年9月23日
  • 简单描述时间轮_rocketmq 时间轮

    简单描述时间轮_rocketmq 时间轮时间轮作用也是用来作定时器触发任务,只是他更高效,时间复杂度为O(1)。运行原理为了方便理解我们参考钟表的形式,它分为3个层次:时、分、秒,只有秒钟在运动同样的,时间轮也分为多层,同样的只有第一层在运动,举个简单的4层时间轮例子(如下左图),我们假设最小计时单位为1(姑且理解为秒),用time来计时,初始为0,随着time递增,则:我们可以知道time应该落在第一层的位置intfirst_index=time%5当first_index==0,也就是第一层轮巡完毕,就需要将

    2022年9月30日
  • angular debounce throttle「建议收藏」

    angular debounce throttle「建议收藏」throttle我们这里说的throttle就是函数节流的意思。再说的通俗一点就是函数调用的频度控制器,是连续执行时间间隔控制。主要应用的场景比如:鼠标移动,mousemove事件DOM元素动态定位,window对象的resize和scroll事件有人形象的把上面说的事件形象的比喻成机关枪的扫射,throttle就是机关枪的扳机,你不放扳机,它就一直扫射。我们

    2022年6月20日
  • gridview DataFormatString[通俗易懂]

    转有个时间要在gridview中显示,但是保持着数据库中的是标准时间,很长,而且只需要显示日期,就想要格式化字符串,可是设置了DataFormatString就是不起作用,后来一查,原来要设置”行为”中HtmlEncode=falseDataFormatString=”{0:格式字符串}”在DataFormatString中的{0}表示数据本身,而在冒号后面的格式字符串代表所们希望…

    2022年4月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号