URL
https://opencores.org/ocsvn/mkjpeg/mkjpeg/trunk
Subversion Repositories mkjpeg
Compare Revisions
- This comparison shows the changes necessary to convert path
/mkjpeg/branches
- from Rev 20 to Rev 21
- ↔ Reverse comparison
Rev 20 → Rev 21
/main/tb/wave.do
495,7 → 495,7
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/rle_fifo_empty |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/state |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/rle_buf_sel_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/dc_idx |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/first_rle_word |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/word_reg |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_huffman/bit_ptr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/num_fifo_wrs |
528,13 → 528,6
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/bs_fifo_empty |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/bs_rd_req |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/bs_packed_byte |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/vlc_plus_vli_size |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_huffman/word_idx |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/vlx_idx |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/vlc_d |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_huffman/vlc_size_d |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_huffman/vli_ext_size_d |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_huffman/vli_ext_d |
add wave -noupdate -divider DoubleFIFO |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/u_doublefifo/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_huffman/u_doublefifo/rst |
624,9 → 617,9
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_outmux/ram_wren |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_outmux/ram_wraddr |
TreeUpdate [SetDefaultTree] |
WaveRestoreCursors {{Cursor 4} {77531047 ps} 0} |
WaveRestoreCursors {{Cursor 4} {32587245 ps} 0} |
configure wave -namecolwidth 150 |
configure wave -valuecolwidth 131 |
configure wave -valuecolwidth 55 |
configure wave -justifyvalue left |
configure wave -signalnamewidth 1 |
configure wave -snapdistance 10 |
639,4 → 632,4
configure wave -timeline 0 |
configure wave -timelineunits ps |
update |
WaveRestoreZoom {99606455 ps} {100020713 ps} |
WaveRestoreZoom {32290772 ps} {33398533 ps} |
/main/design/huffman/Huffman.vhd
87,7 → 87,6
signal state : T_STATE; |
signal rle_buf_sel_s : std_logic; |
signal first_rle_word : std_logic; |
signal VLC_VLI_sel : std_logic; |
signal word_reg : unsigned(C_M-1 downto 0); |
signal bit_ptr : unsigned(4 downto 0); |
signal num_fifo_wrs : unsigned(1 downto 0); |
107,6 → 106,7
signal VLC_DC : unsigned(8 downto 0); |
signal VLC_AC_size : unsigned(4 downto 0); |
signal VLC_AC : unsigned(15 downto 0); |
signal vlc_vld : std_logic; |
signal d_val_d1 : std_logic; |
signal d_val_d2 : std_logic; |
signal d_val_d3 : std_logic; |
119,7 → 119,8
signal runlength_r : std_logic_vector(3 downto 0); |
signal VLI_size_r : std_logic_vector(3 downto 0); |
signal VLI_r : std_logic_vector(11 downto 0); |
|
signal rd_en_s : std_logic; |
|
------------------------------------------------------------------------------- |
-- Architecture: begin |
------------------------------------------------------------------------------- |
127,6 → 128,9
|
rle_buf_sel <= rle_buf_sel_s; |
|
rd_en <= rd_en_s; |
vlc_vld <= rd_en_s; |
|
------------------------------------------------------------------- |
-- latch FIFO Q |
------------------------------------------------------------------- |
133,12 → 137,10
p_latch_fifo : process(CLK, RST) |
begin |
if RST = '1' then |
runlength_r <= (others => '0'); |
VLI_size_r <= (others => '0'); |
VLI_r <= (others => '0'); |
elsif CLK'event and CLK = '1' then |
if d_val = '1' then |
runlength_r <= runlength; |
VLI_size_r <= VLI_size; |
VLI_r <= VLI; |
end if; |
252,8 → 254,8
end if; |
end process; |
|
VLI_ext <= unsigned("0000" & VLI_d); |
VLI_ext_size <= unsigned('0' & VLI_size_d); |
VLI_ext <= unsigned("0000" & VLI_d1); |
VLI_ext_size <= unsigned('0' & VLI_size_d1); |
|
------------------------------------------------------------------- |
-- delay line |
334,10 → 336,9
p_vlp : process(CLK, RST) |
begin |
if RST = '1' then |
rd_en <= '0'; |
rd_en_s <= '0'; |
ready_pb <= '0'; |
first_rle_word <= '0'; |
VLC_VLI_sel <= '0'; |
state <= IDLE; |
word_reg <= (others => '0'); |
bit_ptr <= (others => '0'); |
344,7 → 345,7
start_HFW <= '0'; |
HFW_running <= '0'; |
elsif CLK'event and CLK = '1' then |
rd_en <= '0'; |
rd_en_s <= '0'; |
start_HFW <= '0'; |
ready_pb <= '0'; |
|
353,15 → 354,14
when IDLE => |
if start_pb = '1' then |
first_rle_word <= '1'; |
VLC_VLI_sel <= '0'; |
state <= RUN_VLC; |
rd_en <= '1'; |
rd_en_s <= '1'; |
end if; |
|
when RUN_VLC => |
-- data valid DC or data valid AC |
if (d_val_d2 = '1' and first_rle_word = '1') or |
(d_val = '1' and first_rle_word = '0') then |
(vlc_vld = '1' and first_rle_word = '0') then |
for i in 0 to C_M-1 loop |
if i < to_integer(VLC_size) then |
word_reg(C_M-1-to_integer(bit_ptr)-i) <= VLC(to_integer(VLC_size)-1-i); |
380,16 → 380,12
-- modulo 8 operation |
bit_ptr <= bit_ptr - (num_fifo_wrs & "000"); |
HFW_running <= '0'; |
|
state <= RUN_VLI; |
VLC_VLI_sel <= '1'; |
first_rle_word <= '0'; |
state <= RUN_VLI; |
end if; |
|
when RUN_VLI => |
if HFW_running = '0' then |
--word_reg(C_M-1-to_integer(bit_ptr) downto |
-- C_M-to_integer(bit_ptr)-to_integer(VLI_ext_size)) <= |
-- VLI_ext(to_integer(VLI_ext_size)-1 downto 0); |
|
for i in 0 to C_M-1 loop |
if i < to_integer(VLI_ext_size) then |
422,9 → 418,7
state <= IDLE; |
end if; |
else |
rd_en <= '1'; |
first_rle_word <= '0'; |
VLC_VLI_sel <= '0'; |
rd_en_s <= '1'; |
state <= RUN_VLC; |
end if; |
end if; |