Verilog-格雷码加法器
2024-10-08 09:05:37
1、概述
格雷码执行加1操作最多只会变1位,可用在多位地址指针中消除毛刺。
2、verilog代码
`timescale 1ns / 1ps module gray_adder
#(parameter length = )
(
input clk,
input rstn,
input inc,
output [length-:] Gray
); reg [length-:] Gray_reg;
reg [length-:] Gray_next_reg; reg [length-:] Bin_reg;
reg [length-:] Bin_next_reg; integer i; always @(posedge clk or negedge rstn) begin
if(!rstn) begin
Gray_reg <= ;
end
else begin
Gray_reg <= Gray_next_reg;
end
end always @(*) begin
Bin_reg[length-] = Gray_reg[length-]; // 格雷码转二进制码
for(i=length-;i>=;i=i-)
Bin_reg[i] = Bin_reg[i+]^Gray_reg[i];
Bin_next_reg = Bin_reg + inc; // 二进制码加1
Gray_next_reg = (Bin_next_reg>>)^Bin_next_reg; // 二进制码转回格雷码
end assign Gray = Gray_reg; endmodule
3、仿真波形
最新文章
- Visual C++ 的代码折叠
- cocos2d-x WebSocket
- 【我所理解的Cocos2d-x】第六章 精灵Sprite 读书笔记
- 最长回文子串Manacher算法模板
- IDA 使用技巧
- 监听某个div或其它标签的大小改变来执行相应的处理
- nginx+php-fpm 的配置下,php的错误日志
- 201521123064 《Java程序设计》第13周学习总结
- CodeForces 553E Kyoya and Train 动态规划 多项式 FFT 分治
- python模块部分----模块、包、常用模块
- siimpleHttpServer 快速建立一个文件服务器
- C# 反编译项目修复
- react 学习笔记 npm 命令
- shiro实战系列(十三)之单元测试
- 深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
- Python学习札记(三十四) 面向对象编程 Object Oriented Program 5
- linux 命令行基础
- 深入探索C++对象模型(一)
- Azure继续降价云 价格战就此终结?
- Java SE之break和continue标签
热门文章
- Nginx之常用基本配置
- python笔记23(面向对象课程五)
- Spring Boot 2从入门到放弃(持续更新)
- js函数与作用域,了解函数基本概念
- 使用 Apache James 3.3.0(开源免费) 搭建内网电子邮件服务器(基于 Windows + Amazon Corretto 8)
- SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析
- 洛谷P1331-搜索基础-什么是矩形?(我的方案)
- 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t
- SpringBoot项目自定义浏览器选项卡左上角图标(favicon.ico)-sunziren
- 数组工具Array的基本使用