OpenCores
URL https://opencores.org/ocsvn/djpeg/djpeg/trunk

Subversion Repositories djpeg

[/] [djpeg/] [trunk/] [src/] [jpeg_dht.v] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 hidemi
//---------------------------------------------------------------------------
2
// File Name   : jpeg_dht.v
3
// Module Name : jpeg_dht
4
// Description : DHT space
5
// Project     : JPEG Decoder
6
// Belong to   : 
7
// Author      : H.Ishihara
8
// E-Mail      : hidemi@sweetcafe.jp
9
// HomePage    : http://www.sweetcafe.jp/
10
// Date        : 2006/10/01
11
// Rev.        : 1.1
12
//---------------------------------------------------------------------------
13
// Rev. Date       Description
14
//---------------------------------------------------------------------------
15
// 1.01 2006/10/01 1st Release
16
//---------------------------------------------------------------------------
17
// $Id: 
18
//---------------------------------------------------------------------------
19
`timescale 1ps / 1ps
20
 
21
module jpeg_dht
22
  (
23
   rst,
24
   clk,
25
 
26
   DataInEnable,
27
   DataInColor,
28
   DataInCount,
29
   DataIn,
30
 
31
   ColorNumber,
32
   TableNumber,
33
   ZeroTable,
34
   WidhtTable
35
   );
36
 
37
   input        rst;
38
   input        clk;
39
 
40
   input        DataInEnable;
41
   input [1:0]   DataInColor;
42
   input [7:0]   DataInCount;
43
   input [7:0] DataIn;
44
 
45
   input [1:0]   ColorNumber;
46
   input [7:0]  TableNumber;
47
   output [3:0] ZeroTable;
48
   output [3:0] WidhtTable;
49
 
50
   // RAM
51
   reg [7:0]    DHT_Ydc [0:15];
52
   reg [7:0]    DHT_Yac [0:255];
53
   reg [7:0]    DHT_Cdc [0:15];
54
   reg [7:0]    DHT_Cac [0:255];
55
 
56
   reg [7:0]     ReadDataYdc;
57
   reg [7:0]     ReadDataYac;
58
   reg [7:0]     ReadDataCdc;
59
   reg [7:0]     ReadDataCac;
60
 
61 5 hidemi
   wire [7:0]    ReadData;
62 3 hidemi
 
63
   // RAM
64
   always @(posedge clk) begin
65
      if(DataInEnable ==1'b1 & DataInColor ==2'b00) begin
66
         DHT_Ydc[DataInCount[3:0]] <= DataIn;
67
      end
68
      if(DataInEnable ==1'b1 & DataInColor ==2'b01) begin
69
         DHT_Yac[DataInCount] <= DataIn;
70
      end
71
      if(DataInEnable ==1'b1 & DataInColor ==2'b10) begin
72
         DHT_Cdc[DataInCount[3:0]] <= DataIn;
73
      end
74
      if(DataInEnable ==1'b1 & DataInColor ==2'b11) begin
75
         DHT_Cac[DataInCount] <= DataIn;
76
      end
77
   end // always @ (posedge clk)
78
 
79
   always @(posedge clk) begin
80
      ReadDataYdc <= DHT_Ydc[TableNumber[3:0]];
81
      ReadDataYac <= DHT_Yac[TableNumber];
82
      ReadDataCdc <= DHT_Cdc[TableNumber[3:0]];
83
      ReadDataCac <= DHT_Cac[TableNumber];
84
   end // always @ (posedge clk or negedge rst)
85
 
86
   // Selector
87 5 hidemi
/*
88 3 hidemi
   always @(*) begin
89
      case (ColorNumber)
90
        2'b00: ReadData <= ReadDataYdc;
91
        2'b01: ReadData <= ReadDataYac;
92
        2'b10: ReadData <= ReadDataCdc;
93
        2'b11: ReadData <= ReadDataCac;
94
      endcase // case(ColorNumber)
95
   end
96 5 hidemi
*/
97
        function [7:0] ReadDataSel;
98
                input [1:0]      ColorNumber;
99
                input [7:0]      ReadDataYdc;
100
                input [7:0]      ReadDataYac;
101
                input [7:0]      ReadDataCdc;
102
                input [7:0]      ReadDataCac;
103
        begin
104
                case (ColorNumber)
105
                2'b00: ReadDataSel = ReadDataYdc;
106
                2'b01: ReadDataSel = ReadDataYac;
107
                2'b10: ReadDataSel = ReadDataCdc;
108
                2'b11: ReadDataSel = ReadDataCac;
109
                endcase
110
        end
111
        endfunction
112 3 hidemi
 
113 5 hidemi
   assign ReadData = ReadDataSel(ColorNumber, ReadDataYdc, ReadDataYac, ReadDataCdc, ReadDataCac);
114
 
115 3 hidemi
   assign ZeroTable  = ReadData[7:4];
116
   assign WidhtTable = ReadData[3:0];
117
 
118
endmodule // jpeg_dht

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.