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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 有哪些你追了很多女生才明白的道理?

    有哪些你追了很多女生才明白的道理?

    2022年2月15日
    29
  • linux下kegg注释软件,网页工具KOBAS进行KEGG富集分析

    KOBAS的介绍KOBAS是北大生物信息中心研发的一个网页工具,用来基因/蛋白功能注释(注释模块)和功能基因集富集(富集模块)。以下是KOBAS的英文介绍:KOBAS3.0isawebserverforgene/proteinfunctionalannotation(Annotatemodule)andfunctionalgenesetenrichment(Enri…

    2022年4月12日
    103
  • 喊山第二部_软组raid0

    喊山第二部_软组raid0原题链接喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发

    2022年8月9日
    4
  • 【比赛】【树上路径(phantasm)】

    【比赛】【树上路径(phantasm)】—恢复内容开始—题目大意:求1,2,…,n有多少个长为m的子序列a,满足  a1=1,am=n  ∀i,ai+1−ai≥k保证这样的子序列存在。只需判断方案数的奇偶性。数据有T组。n,m,k≤109,T≤2×106.//dfs枚举集合//复杂度预估O(T*2^n)/…

    2022年5月30日
    28
  • 好东西!

    好东西!

    2021年7月28日
    59
  • Javascript高级程序设计第四版详细测评[通俗易懂]

    Javascript高级程序设计第四版详细测评[通俗易懂]简介哈喽大家好,我是大圣,上次做了一个js的书籍测评,评价还不错,在做css和node之前,再做几本书的详细推荐吧,国庆今天又在家好好读了几本具有代表性的javascript高级程…

    2022年8月20日
    3

发表回复

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

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