如何計算浮點數? (SOC) (Verilog) http://www.cnblogs.com/oomusou/archive/2008/10/11/verilog_floating.html

本文介紹在Verilog中進行浮點數運算的方法,特別是通過Quartus II 8.0環境下的YCbCr到RGB轉換示例來說明。該過程涉及具體的數學公式與實現細節。

Abstract
演算法常常會遇到浮點數運算,如何計算浮點數是Verilog初學者常問的問題。

Introduction
使用環境:Quartus II 8.0

在DE2的DE2_TV與DE2-70的DE2_70_TV範例中,有個YCbCr2RGB.v,負責將YCbCr轉成RGB,其公式如下:

1.创建一个Arithmetic类 public class Arithmetic { //整数加法 public int add(int a, int b) { return a+b; } //整数减法 public int subtract(int a, int b) { return a-b; } //整数乘法 public int multiply(int a, int b) { return a*b; } //整数除法 public int divide(int a, int b) { return a/b; } //浮点数加法 public double add(double a, double b) { return a+b; } //浮点数减法 public double subtract(double a, double b) { return a-b; } //浮点数乘法 public double multiply(double a, double b) { return a*b; } //浮点数除法 public double divide(double a, double b) { return a/b; } //整数加法,多参数 public int add(int... nums) { int sum = 0; for(int num : nums) { sum += num; } return sum; } //浮点数加法,多参数 public double add(double... nums) { double sum = 0; for(double num : nums) { sum += num; } return sum; } } 2.测试类 public class TestArithmetic { public static void main(String[] args) { Arithmetic arithmetic = new Arithmetic(); //整数加法 System.out.println(arithmetic.add(1, 2)); //整数减法 System.out.println(arithmetic.subtract(2, 1)); //整数乘法 System.out.println(arithmetic.multiply(2, 3)); //整数除法 System.out.println(arithmetic.divide(6, 2)); //浮点数加法 System.out.println(arithmetic.add(1.2, 2.3)); //浮点数减法 System.out.println(arithmetic.subtract(2.3, 1.2)); //浮点数乘法 System.out.println(arithmetic.multiply(2.0, 3.0)); //浮点数除法 System.out.println(arithmetic.divide(6.0, 2.0)); //整数加法,多参数 System.out.println(arithmetic.add(1, 2, 3)); //浮点数加法,多参数 System.out.println(arithmetic.add(1.2, 2.3, 3.4)); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值