⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dve_ccir_lut.v

📁 全电视信号编码器
💻 V
📖 第 1 页 / 共 3 页
字号:
// -----------------------------------------------------------------------------
//
//
//                  D I G I T A L   C O L O R   V I D E O   E N C O D E R
//
// SINE/COSINE LOOKUP TABLE. Stores sine and cosine values from 0 to Pi/4 
// Version : 1.0
//
// Copyright (c) 1998 Maxim Vlassov (maxismsx@hotmail.com)
//
// All rights reserved
//
// Redistribution and reuse of source code and synthesized forms of this source code and it's
// derivatives is strictly permitted under the following conditions:
//
// Redistributions of source code MUST retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// Redistributions of code in synthesized form MUST reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// Neither the name of the author nor the names of other contributors may
// be used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
// -----------------------------------------------------------------------------
//
// Any derivated work from the current design could be not synchronized with the
// latest design updates. Report any design reuse issues to the author.
// Lates release notes and design relseases are available upon request via e-mail.
//
// -----------------------------------------------------------------------------
//
// Two lookup tables
// The two tables contain the sine values from 0 to PI/4 with steps 2*PI/2048
// 9 bit quantization is utilized
// -----------------------------------------------------------------------------


module dve_ccir_lut(
 addr_lut,
 sin_lut,
 cos_lut 
);

parameter               SUBCARRIER_INTEGER_PRECISION = 11;

input [SUBCARRIER_INTEGER_PRECISION-4 : 0]   addr_lut;
output [7 : 0] sin_lut, cos_lut;
reg [7 : 0] sin_lut_value, cos_lut_value;

always @(addr_lut)
begin
  case (addr_lut)
//value for sin(0*2*PI/2048)
 10'd0 : sin_lut_value = 8'd0; 
 //value for sin(1*2*PI/2048)
 10'd1 : sin_lut_value = 8'd0; 
 //value for sin(2*2*PI/2048)
 10'd2 : sin_lut_value = 8'd1; 
 //value for sin(3*2*PI/2048)
 10'd3 : sin_lut_value = 8'd2; 
 //value for sin(4*2*PI/2048)
 10'd4 : sin_lut_value = 8'd3; 
 //value for sin(5*2*PI/2048)
 10'd5 : sin_lut_value = 8'd3; 
 //value for sin(6*2*PI/2048)
 10'd6 : sin_lut_value = 8'd4; 
 //value for sin(7*2*PI/2048)
 10'd7 : sin_lut_value = 8'd5; 
 //value for sin(8*2*PI/2048)
 10'd8 : sin_lut_value = 8'd6; 
 //value for sin(9*2*PI/2048)
 10'd9 : sin_lut_value = 8'd7; 
 //value for sin(10*2*PI/2048)
 10'd10 : sin_lut_value = 8'd7; 
 //value for sin(11*2*PI/2048)
 10'd11 : sin_lut_value = 8'd8; 
 //value for sin(12*2*PI/2048)
 10'd12 : sin_lut_value = 8'd9; 
 //value for sin(13*2*PI/2048)
 10'd13 : sin_lut_value = 8'd10; 
 //value for sin(14*2*PI/2048)
 10'd14 : sin_lut_value = 8'd10; 
 //value for sin(15*2*PI/2048)
 10'd15 : sin_lut_value = 8'd11; 
 //value for sin(16*2*PI/2048)
 10'd16 : sin_lut_value = 8'd12; 
 //value for sin(17*2*PI/2048)
 10'd17 : sin_lut_value = 8'd13; 
 //value for sin(18*2*PI/2048)
 10'd18 : sin_lut_value = 8'd14; 
 //value for sin(19*2*PI/2048)
 10'd19 : sin_lut_value = 8'd14; 
 //value for sin(20*2*PI/2048)
 10'd20 : sin_lut_value = 8'd15; 
 //value for sin(21*2*PI/2048)
 10'd21 : sin_lut_value = 8'd16; 
 //value for sin(22*2*PI/2048)
 10'd22 : sin_lut_value = 8'd17; 
 //value for sin(23*2*PI/2048)
 10'd23 : sin_lut_value = 8'd18; 
 //value for sin(24*2*PI/2048)
 10'd24 : sin_lut_value = 8'd18; 
 //value for sin(25*2*PI/2048)
 10'd25 : sin_lut_value = 8'd19; 
 //value for sin(26*2*PI/2048)
 10'd26 : sin_lut_value = 8'd20; 
 //value for sin(27*2*PI/2048)
 10'd27 : sin_lut_value = 8'd21; 
 //value for sin(28*2*PI/2048)
 10'd28 : sin_lut_value = 8'd21; 
 //value for sin(29*2*PI/2048)
 10'd29 : sin_lut_value = 8'd22; 
 //value for sin(30*2*PI/2048)
 10'd30 : sin_lut_value = 8'd23; 
 //value for sin(31*2*PI/2048)
 10'd31 : sin_lut_value = 8'd24; 
 //value for sin(32*2*PI/2048)
 10'd32 : sin_lut_value = 8'd25; 
 //value for sin(33*2*PI/2048)
 10'd33 : sin_lut_value = 8'd25; 
 //value for sin(34*2*PI/2048)
 10'd34 : sin_lut_value = 8'd26; 
 //value for sin(35*2*PI/2048)
 10'd35 : sin_lut_value = 8'd27; 
 //value for sin(36*2*PI/2048)
 10'd36 : sin_lut_value = 8'd28; 
 //value for sin(37*2*PI/2048)
 10'd37 : sin_lut_value = 8'd28; 
 //value for sin(38*2*PI/2048)
 10'd38 : sin_lut_value = 8'd29; 
 //value for sin(39*2*PI/2048)
 10'd39 : sin_lut_value = 8'd30; 
 //value for sin(40*2*PI/2048)
 10'd40 : sin_lut_value = 8'd31; 
 //value for sin(41*2*PI/2048)
 10'd41 : sin_lut_value = 8'd32; 
 //value for sin(42*2*PI/2048)
 10'd42 : sin_lut_value = 8'd32; 
 //value for sin(43*2*PI/2048)
 10'd43 : sin_lut_value = 8'd33; 
 //value for sin(44*2*PI/2048)
 10'd44 : sin_lut_value = 8'd34; 
 //value for sin(45*2*PI/2048)
 10'd45 : sin_lut_value = 8'd35; 
 //value for sin(46*2*PI/2048)
 10'd46 : sin_lut_value = 8'd36; 
 //value for sin(47*2*PI/2048)
 10'd47 : sin_lut_value = 8'd36; 
 //value for sin(48*2*PI/2048)
 10'd48 : sin_lut_value = 8'd37; 
 //value for sin(49*2*PI/2048)
 10'd49 : sin_lut_value = 8'd38; 
 //value for sin(50*2*PI/2048)
 10'd50 : sin_lut_value = 8'd39; 
 //value for sin(51*2*PI/2048)
 10'd51 : sin_lut_value = 8'd39; 
 //value for sin(52*2*PI/2048)
 10'd52 : sin_lut_value = 8'd40; 
 //value for sin(53*2*PI/2048)
 10'd53 : sin_lut_value = 8'd41; 
 //value for sin(54*2*PI/2048)
 10'd54 : sin_lut_value = 8'd42; 
 //value for sin(55*2*PI/2048)
 10'd55 : sin_lut_value = 8'd42; 
 //value for sin(56*2*PI/2048)
 10'd56 : sin_lut_value = 8'd43; 
 //value for sin(57*2*PI/2048)
 10'd57 : sin_lut_value = 8'd44; 
 //value for sin(58*2*PI/2048)
 10'd58 : sin_lut_value = 8'd45; 
 //value for sin(59*2*PI/2048)
 10'd59 : sin_lut_value = 8'd46; 
 //value for sin(60*2*PI/2048)
 10'd60 : sin_lut_value = 8'd46; 
 //value for sin(61*2*PI/2048)
 10'd61 : sin_lut_value = 8'd47; 
 //value for sin(62*2*PI/2048)
 10'd62 : sin_lut_value = 8'd48; 
 //value for sin(63*2*PI/2048)
 10'd63 : sin_lut_value = 8'd49; 
 //value for sin(64*2*PI/2048)
 10'd64 : sin_lut_value = 8'd49; 
 //value for sin(65*2*PI/2048)
 10'd65 : sin_lut_value = 8'd50; 
 //value for sin(66*2*PI/2048)
 10'd66 : sin_lut_value = 8'd51; 
 //value for sin(67*2*PI/2048)
 10'd67 : sin_lut_value = 8'd52; 
 //value for sin(68*2*PI/2048)
 10'd68 : sin_lut_value = 8'd53; 
 //value for sin(69*2*PI/2048)
 10'd69 : sin_lut_value = 8'd53; 
 //value for sin(70*2*PI/2048)
 10'd70 : sin_lut_value = 8'd54; 
 //value for sin(71*2*PI/2048)
 10'd71 : sin_lut_value = 8'd55; 
 //value for sin(72*2*PI/2048)
 10'd72 : sin_lut_value = 8'd56; 
 //value for sin(73*2*PI/2048)
 10'd73 : sin_lut_value = 8'd56; 
 //value for sin(74*2*PI/2048)
 10'd74 : sin_lut_value = 8'd57; 
 //value for sin(75*2*PI/2048)
 10'd75 : sin_lut_value = 8'd58; 
 //value for sin(76*2*PI/2048)
 10'd76 : sin_lut_value = 8'd59; 
 //value for sin(77*2*PI/2048)
 10'd77 : sin_lut_value = 8'd59; 
 //value for sin(78*2*PI/2048)
 10'd78 : sin_lut_value = 8'd60; 
 //value for sin(79*2*PI/2048)
 10'd79 : sin_lut_value = 8'd61; 
 //value for sin(80*2*PI/2048)
 10'd80 : sin_lut_value = 8'd62; 
 //value for sin(81*2*PI/2048)
 10'd81 : sin_lut_value = 8'd62; 
 //value for sin(82*2*PI/2048)
 10'd82 : sin_lut_value = 8'd63; 
 //value for sin(83*2*PI/2048)
 10'd83 : sin_lut_value = 8'd64; 
 //value for sin(84*2*PI/2048)
 10'd84 : sin_lut_value = 8'd65; 
 //value for sin(85*2*PI/2048)
 10'd85 : sin_lut_value = 8'd66; 
 //value for sin(86*2*PI/2048)
 10'd86 : sin_lut_value = 8'd66; 
 //value for sin(87*2*PI/2048)
 10'd87 : sin_lut_value = 8'd67; 
 //value for sin(88*2*PI/2048)
 10'd88 : sin_lut_value = 8'd68; 
 //value for sin(89*2*PI/2048)
 10'd89 : sin_lut_value = 8'd69; 
 //value for sin(90*2*PI/2048)
 10'd90 : sin_lut_value = 8'd69; 
 //value for sin(91*2*PI/2048)
 10'd91 : sin_lut_value = 8'd70; 
 //value for sin(92*2*PI/2048)
 10'd92 : sin_lut_value = 8'd71; 
 //value for sin(93*2*PI/2048)
 10'd93 : sin_lut_value = 8'd72; 
 //value for sin(94*2*PI/2048)
 10'd94 : sin_lut_value = 8'd72; 
 //value for sin(95*2*PI/2048)
 10'd95 : sin_lut_value = 8'd73; 
 //value for sin(96*2*PI/2048)
 10'd96 : sin_lut_value = 8'd74; 
 //value for sin(97*2*PI/2048)
 10'd97 : sin_lut_value = 8'd75; 
 //value for sin(98*2*PI/2048)
 10'd98 : sin_lut_value = 8'd75; 
 //value for sin(99*2*PI/2048)
 10'd99 : sin_lut_value = 8'd76; 
 //value for sin(100*2*PI/2048)
 10'd100 : sin_lut_value = 8'd77; 
 //value for sin(101*2*PI/2048)
 10'd101 : sin_lut_value = 8'd78; 
 //value for sin(102*2*PI/2048)
 10'd102 : sin_lut_value = 8'd78; 
 //value for sin(103*2*PI/2048)
 10'd103 : sin_lut_value = 8'd79; 
 //value for sin(104*2*PI/2048)
 10'd104 : sin_lut_value = 8'd80; 
 //value for sin(105*2*PI/2048)
 10'd105 : sin_lut_value = 8'd81; 
 //value for sin(106*2*PI/2048)
 10'd106 : sin_lut_value = 8'd81; 
 //value for sin(107*2*PI/2048)
 10'd107 : sin_lut_value = 8'd82; 
 //value for sin(108*2*PI/2048)
 10'd108 : sin_lut_value = 8'd83; 
 //value for sin(109*2*PI/2048)
 10'd109 : sin_lut_value = 8'd84; 
 //value for sin(110*2*PI/2048)
 10'd110 : sin_lut_value = 8'd84; 
 //value for sin(111*2*PI/2048)
 10'd111 : sin_lut_value = 8'd85; 
 //value for sin(112*2*PI/2048)
 10'd112 : sin_lut_value = 8'd86; 
 //value for sin(113*2*PI/2048)
 10'd113 : sin_lut_value = 8'd86; 
 //value for sin(114*2*PI/2048)
 10'd114 : sin_lut_value = 8'd87; 
 //value for sin(115*2*PI/2048)
 10'd115 : sin_lut_value = 8'd88; 
 //value for sin(116*2*PI/2048)
 10'd116 : sin_lut_value = 8'd89; 
 //value for sin(117*2*PI/2048)
 10'd117 : sin_lut_value = 8'd89; 
 //value for sin(118*2*PI/2048)
 10'd118 : sin_lut_value = 8'd90; 
 //value for sin(119*2*PI/2048)
 10'd119 : sin_lut_value = 8'd91; 
 //value for sin(120*2*PI/2048)
 10'd120 : sin_lut_value = 8'd92; 
 //value for sin(121*2*PI/2048)
 10'd121 : sin_lut_value = 8'd92; 
 //value for sin(122*2*PI/2048)
 10'd122 : sin_lut_value = 8'd93; 
 //value for sin(123*2*PI/2048)
 10'd123 : sin_lut_value = 8'd94; 
 //value for sin(124*2*PI/2048)
 10'd124 : sin_lut_value = 8'd95; 
 //value for sin(125*2*PI/2048)
 10'd125 : sin_lut_value = 8'd95; 
 //value for sin(126*2*PI/2048)
 10'd126 : sin_lut_value = 8'd96; 
 //value for sin(127*2*PI/2048)
 10'd127 : sin_lut_value = 8'd97; 
 //value for sin(128*2*PI/2048)
 10'd128 : sin_lut_value = 8'd97; 
 //value for sin(129*2*PI/2048)
 10'd129 : sin_lut_value = 8'd98; 
 //value for sin(130*2*PI/2048)
 10'd130 : sin_lut_value = 8'd99; 
 //value for sin(131*2*PI/2048)
 10'd131 : sin_lut_value = 8'd100; 
 //value for sin(132*2*PI/2048)
 10'd132 : sin_lut_value = 8'd100; 
 //value for sin(133*2*PI/2048)
 10'd133 : sin_lut_value = 8'd101; 
 //value for sin(134*2*PI/2048)
 10'd134 : sin_lut_value = 8'd102; 
 //value for sin(135*2*PI/2048)
 10'd135 : sin_lut_value = 8'd103; 
 //value for sin(136*2*PI/2048)
 10'd136 : sin_lut_value = 8'd103; 
 //value for sin(137*2*PI/2048)
 10'd137 : sin_lut_value = 8'd104; 
 //value for sin(138*2*PI/2048)
 10'd138 : sin_lut_value = 8'd105; 
 //value for sin(139*2*PI/2048)
 10'd139 : sin_lut_value = 8'd105; 
 //value for sin(140*2*PI/2048)
 10'd140 : sin_lut_value = 8'd106; 
 //value for sin(141*2*PI/2048)
 10'd141 : sin_lut_value = 8'd107; 
 //value for sin(142*2*PI/2048)
 10'd142 : sin_lut_value = 8'd108; 
 //value for sin(143*2*PI/2048)
 10'd143 : sin_lut_value = 8'd108; 
 //value for sin(144*2*PI/2048)
 10'd144 : sin_lut_value = 8'd109; 
 //value for sin(145*2*PI/2048)
 10'd145 : sin_lut_value = 8'd110; 
 //value for sin(146*2*PI/2048)
 10'd146 : sin_lut_value = 8'd110; 
 //value for sin(147*2*PI/2048)
 10'd147 : sin_lut_value = 8'd111; 
 //value for sin(148*2*PI/2048)
 10'd148 : sin_lut_value = 8'd112; 
 //value for sin(149*2*PI/2048)
 10'd149 : sin_lut_value = 8'd112; 
 //value for sin(150*2*PI/2048)
 10'd150 : sin_lut_value = 8'd113; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -