URL
https://opencores.org/ocsvn/mkjpeg/mkjpeg/trunk
Subversion Repositories mkjpeg
Compare Revisions
- This comparison shows the changes necessary to convert path
/mkjpeg/trunk
- from Rev 32 to Rev 34
- ↔ Reverse comparison
Rev 32 → Rev 34
/doc/JPEG.doc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/tb/wave.do
1,6 → 1,5
onerror {resume} |
quietly virtual signal -install /jpeg_tb/u_jpegenc/u_fdct { /jpeg_tb/u_jpegenc/u_fdct/dbuf_waddr(5 downto 0)} wad |
quietly virtual signal -install /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider { /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/mult_out(27 downto 16)} mult_out_msb |
quietly WaveActivateNextPane {} 0 |
add wave -noupdate -divider HostBFM |
add wave -noupdate -format Logic /jpeg_tb/u_hostbfm/clk |
83,35 → 82,44
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/sof |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_ctrlsm/img_size_x |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_ctrlsm/img_size_y |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/img_size_x |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/img_size_y |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/jpeg_ready |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/jpeg_busy |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/cmp_max |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/fdct_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/fdct_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/fdct_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/zig_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/zig_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/zig_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/qua_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/qua_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/qua_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/rle_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/rle_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/rle_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/huf_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/huf_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/huf_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/bs_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/bs_ready |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/fdct_sm_settings |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/zig_sm_settings |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/rle_sm_settings |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/huf_sm_settings |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/bs_sm_settings |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/bs_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/jfif_start |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/jfif_ready |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/jfif_eoi |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/out_mux_ctrl |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/main_state |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/cmp_max |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/reg |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/rsm |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/start |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/idle |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/start_pb |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/ready_pb |
add wave -noupdate -format Literal -expand /jpeg_tb/u_jpegenc/u_ctrlsm/fsm |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/start |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/idle |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/start_pb |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/ready_pb |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/fsm |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/start1_d |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_ctrlsm/rsm |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/out_mux_ctrl_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_ctrlsm/out_mux_ctrl_s2 |
add wave -noupdate -divider BUF_FIFO |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_buf_fifo/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_buf_fifo/rst |
251,150 → 259,36
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/eoi_fdct |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/bf_fifo_rd_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/wad |
add wave -noupdate -divider mdct |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/rst |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/dcti |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/idv |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/odv |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/dcto |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/odv1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/dcto1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramdatao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramraddro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramwaddro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramdatai_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramwe_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romedatao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romodatao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romeaddro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romoaddro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/rome2datao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romo2datao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/rome2addro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/romo2addro_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/odv2_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/dcto2_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/trigger2_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/trigger1_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramdatao1_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramdatao2_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramwe1_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/ramwe2_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/memswitchrd_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/memswitchwr_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/wmemsel_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/rmemsel_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/dataready_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/datareadyack_s |
add wave -noupdate -divider dct1d |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/rst |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/dcti |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/idv |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romedatao |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romodatao |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/odv |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/dcto |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romeaddro |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romoaddro |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwaddro |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramdatai |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwe |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/wmemsel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/databuf_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/latchbuf_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/col_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/row_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/rowr_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/inpcnt_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/dcto_1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/dcto_2 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwe_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwe_d1 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwe_d2 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/wmemsel_reg |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/wmemsel_d1 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/wmemsel_d2 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/stage2_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/stage2_cnt_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/col_2_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwaddro_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwaddro_d1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/ramwaddro_d2 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/even_not_odd |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/even_not_odd_d1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romedatao_d1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct1d/romodatao_d1 |
add wave -noupdate -divider dct2d |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/rst |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/ramdatao |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/dataready |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/odv |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/dcto |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/ramraddro |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/rmemsel |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/datareadyack |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/databuf_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/latchbuf_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/col_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/row_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/colram_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/rowram_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/colr_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/rowr_reg |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/rmemsel_reg |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/stage1_reg |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/stage2_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/stage2_cnt_reg |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_fdct/u_mdct/u_dct2d/dataready_2_reg |
add wave -noupdate -divider ZZ_TOP |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/start_pb |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/ready_pb |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/zig_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/rle_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/rle_rdaddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/rle_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/zig_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/qua_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/qua_rdaddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/qua_data |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/fdct_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/fdct_rd_addr |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/fdct_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/qdata |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/qaddr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/qwren |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/fdct_data |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/fdct_rden |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/dbuf_data |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/dbuf_q |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/dbuf_q |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/dbuf_we |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/dbuf_waddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/dbuf_raddr |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/zigzag_di |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/zigzag_di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/zigzag_divalid |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/zigzag_dout |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/zigzag_dout |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/zigzag_dovalid |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/quant_dout |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/quant_dovalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/wr_cnt |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/rd_cnt |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/rd_en_d |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/rd_en |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/fdct_buf_sel_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/clk |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/divalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/rd_addr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_rden |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_empty |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/dout |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/dovalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/zz_rd_addr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_wr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_q |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_full |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_count |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_data_in |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/zz_rd_addr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/fifo_empty |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/fifo_rden |
add wave -noupdate -divider {zigzag core} |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/clk |
411,47 → 305,60
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_full |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_count |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_zigzag/fifo_data_in |
add wave -noupdate -divider QUANT_TOP |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/start_pb |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/ready_pb |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/qua_sm_settings |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/rle_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/rle_rdaddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/rle_data |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/zig_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/zig_rd_addr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/zig_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/qdata |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/qaddr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/qwren |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/dbuf_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/dbuf_q |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/dbuf_we |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/dbuf_waddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/dbuf_raddr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/zigzag_di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/zigzag_divalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/quant_dout |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/quant_dovalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/wr_cnt |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/rd_cnt |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/rd_en_d |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/rd_en |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/zig_buf_sel_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/zz_rd_addr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/fifo_empty |
add wave -noupdate -divider quantizer |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/clk |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/divalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/qdata |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/qwaddr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/qwren |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/cmp_idx |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/do |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/dovalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/romaddr_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/slv_romaddr_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/romdatao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/divisor_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/remainder_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/do_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/round_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/di_d1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/pipeline_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/sign_bit_pipe |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/do_rdiv |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/table_select |
add wave -noupdate -divider r_divider |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/clk |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/a |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/d |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/q |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/romr_addr |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/romr_datao |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/dividend |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/dividend_d1 |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/reciprocal |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/mult_out_msb |
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/mult_out |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/mult_out_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/signbit |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/signbit_d1 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/signbit_d2 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_zz_top/u_quantizer/r_divider/signbit_d3 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/rst |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/clk |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/divalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/qdata |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/qwaddr |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/qwren |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/cmp_idx |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/do |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/dovalid |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/romaddr_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/slv_romaddr_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/romdatao_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/divisor_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/remainder_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/do_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/round_s |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/di_d1 |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/pipeline_reg |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/sign_bit_pipe |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/do_rdiv |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_quant_top/u_quantizer/table_select |
add wave -noupdate -divider RLE_TOP |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/rst |
465,9 → 372,6
add wave -noupdate -format Literal -radix unsigned /jpeg_tb/u_jpegenc/u_rle_top/huf_amplitude |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/huf_dval |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/huf_fifo_empty |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/zig_buf_sel |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_rle_top/zig_rd_addr |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_rle_top/zig_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_rle_top/dbuf_data |
add wave -noupdate -format Literal /jpeg_tb/u_jpegenc/u_rle_top/dbuf_q |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/dbuf_we |
480,7 → 384,6
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/rle_dovalid |
add wave -noupdate -format Literal -radix decimal /jpeg_tb/u_jpegenc/u_rle_top/rle_di |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/rle_divalid |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/zig_buf_sel_s |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/huf_dval_p0 |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/u_rledoublefifo/clk |
add wave -noupdate -format Logic /jpeg_tb/u_jpegenc/u_rle_top/u_rledoublefifo/rst |
660,7 → 563,7
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} {45000815232 ps} 0} |
WaveRestoreCursors {{Cursor 4} {444348 ps} 0} |
configure wave -namecolwidth 150 |
configure wave -valuecolwidth 55 |
configure wave -justifyvalue left |
675,4 → 578,4
configure wave -timeline 0 |
configure wave -timelineunits ps |
update |
WaveRestoreZoom {45000756225 ps} {45001012831 ps} |
WaveRestoreZoom {0 ps} {1050 ns} |
/tb/COMPILE.do
54,11 → 54,12
vcom ../tb/vhdl/DCT_TROM.vhd |
|
# quantizer |
vcom ../design/quantizer/ROMQ.vhd |
vcom ../design/quantizer/s_divider.vhd |
#vcom ../design/quantizer/ROMQ.vhd |
#vcom ../design/quantizer/s_divider.vhd |
vcom ../design/quantizer/ROMR.vhd |
vcom ../design/quantizer/r_divider.vhd |
vcom ../design/quantizer/QUANTIZER.vhd |
vcom ../design/quantizer/QUANT_TOP.vhd |
|
# zigzag |
vcom ../design/zigzag/ZIGZAG.vhd |
/tb/vhdl/HostBFM.vhd
303,10 → 303,10
--X"1C", X"1E", X"1F", X"1E" |
|
-- 75% |
X"08", X"06", X"06", X"07", X"06", X"05", X"08", X"07", X"07", X"07", X"09", X"09", X"08", X"0A", X"0C", X"14", |
X"0D", X"0C", X"0B", X"0B", X"0C", X"19", X"12", X"13", X"0F", X"14", X"1D", X"1A", X"1F", X"1E", X"1D", X"1A", |
X"1C", X"1C", X"20", X"24", X"2E", X"27", X"20", X"22", X"2C", X"23", X"1C", X"1C", X"28", X"37", X"29", X"2C", |
X"30", X"31", X"34", X"34", X"34", X"1F", X"27", X"39", X"3D", X"38", X"32", X"3C", X"2E", X"33", X"34", X"32" |
--X"08", X"06", X"06", X"07", X"06", X"05", X"08", X"07", X"07", X"07", X"09", X"09", X"08", X"0A", X"0C", X"14", |
--X"0D", X"0C", X"0B", X"0B", X"0C", X"19", X"12", X"13", X"0F", X"14", X"1D", X"1A", X"1F", X"1E", X"1D", X"1A", |
--X"1C", X"1C", X"20", X"24", X"2E", X"27", X"20", X"22", X"2C", X"23", X"1C", X"1C", X"28", X"37", X"29", X"2C", |
--X"30", X"31", X"34", X"34", X"34", X"1F", X"27", X"39", X"3D", X"38", X"32", X"3C", X"2E", X"33", X"34", X"32" |
|
-- 15 % |
--X"35", X"25", X"28", X"2F", |
327,14 → 327,14
--X"FF", X"FF", X"FF", X"FF" |
|
-- 50% |
--X"10", X"0B", X"0C", X"0E", X"0C", X"0A", X"10", X"0E", |
--X"0D", X"0E", X"12", X"11", X"10", X"13", X"18", X"28", |
--X"1A", X"18", X"16", X"16", X"18", X"31", X"23", X"25", |
--X"1D", X"28", X"3A", X"33", X"3D", X"3C", X"39", X"33", |
--X"38", X"37", X"40", X"48", X"5C", X"4E", X"40", X"44", |
--X"57", X"45", X"37", X"38", X"50", X"6D", X"51", X"57", |
--X"5F", X"62", X"67", X"68", X"67", X"3E", X"4D", X"71", |
--X"79", X"70", X"64", X"78", X"5C", X"65", X"67", X"63" |
X"10", X"0B", X"0C", X"0E", X"0C", X"0A", X"10", X"0E", |
X"0D", X"0E", X"12", X"11", X"10", X"13", X"18", X"28", |
X"1A", X"18", X"16", X"16", X"18", X"31", X"23", X"25", |
X"1D", X"28", X"3A", X"33", X"3D", X"3C", X"39", X"33", |
X"38", X"37", X"40", X"48", X"5C", X"4E", X"40", X"44", |
X"57", X"45", X"37", X"38", X"50", X"6D", X"51", X"57", |
X"5F", X"62", X"67", X"68", X"67", X"3E", X"4D", X"71", |
X"79", X"70", X"64", X"78", X"5C", X"65", X"67", X"63" |
); |
|
constant qrom_chr : ROMQ_TYPE := |
/design/control/CtrlSM.vhd
65,6 → 65,11
zig_ready : in std_logic; |
zig_sm_settings : out T_SM_SETTINGS; |
|
-- Quantizer |
qua_start : out std_logic; |
qua_ready : in std_logic; |
qua_sm_settings : out T_SM_SETTINGS; |
|
-- RLE |
rle_start : out std_logic; |
rle_ready : in std_logic; |
97,16 → 102,18
------------------------------------------------------------------------------- |
architecture RTL of CtrlSM is |
|
constant NUM_STAGES : integer := 6; |
|
type T_STATE is (IDLES, JFIF, HORIZ, COMP, VERT, EOI); |
type ARR_FSM is array(5 downto 1) of std_logic_vector(1 downto 0); |
type ARR_FSM is array(NUM_STAGES downto 1) of std_logic_vector(1 downto 0); |
|
type T_ARR_SM_SETTINGS is array(6 downto 1) of T_SM_SETTINGS; |
type T_ARR_SM_SETTINGS is array(NUM_STAGES+1 downto 1) of T_SM_SETTINGS; |
signal Reg : T_ARR_SM_SETTINGS; |
signal main_state : T_STATE; |
signal start : std_logic_vector(6 downto 1); |
signal idle : std_logic_vector(6 downto 1); |
signal start_PB : std_logic_vector(5 downto 1); |
signal ready_PB : std_logic_vector(5 downto 1); |
signal start : std_logic_vector(NUM_STAGES+1 downto 1); |
signal idle : std_logic_vector(NUM_STAGES+1 downto 1); |
signal start_PB : std_logic_vector(NUM_STAGES downto 1); |
signal ready_PB : std_logic_vector(NUM_STAGES downto 1); |
signal fsm : ARR_FSM; |
signal start1_d : std_logic; |
signal RSM : T_SM_SETTINGS; |
120,9 → 127,10
|
fdct_sm_settings <= Reg(1); |
zig_sm_settings <= Reg(2); |
rle_sm_settings <= Reg(3); |
huf_sm_settings <= Reg(4); |
bs_sm_settings <= Reg(5); |
qua_sm_settings <= Reg(3); |
rle_sm_settings <= Reg(4); |
huf_sm_settings <= Reg(5); |
bs_sm_settings <= Reg(6); |
|
fdct_start <= start_PB(1); |
ready_PB(1) <= fdct_ready; |
130,21 → 138,24
zig_start <= start_PB(2); |
ready_PB(2) <= zig_ready; |
|
rle_start <= start_PB(3); |
ready_PB(3) <= rle_ready; |
qua_start <= start_PB(3); |
ready_PB(3) <= qua_ready; |
|
huf_start <= start_PB(4); |
ready_PB(4) <= huf_ready; |
rle_start <= start_PB(4); |
ready_PB(4) <= rle_ready; |
|
bs_start <= start_PB(5); |
ready_PB(5) <= bs_ready; |
huf_start <= start_PB(5); |
ready_PB(5) <= huf_ready; |
|
bs_start <= start_PB(6); |
ready_PB(6) <= bs_ready; |
|
----------------------------------------------------------------------------- |
-- CTRLSM1..5 |
-- CTRLSM 1..NUM_STAGES |
----------------------------------------------------------------------------- |
G_S_CTRL_SM : for i in 1 to 5 generate |
G_S_CTRL_SM : for i in 1 to NUM_STAGES generate |
|
-- CTRLSM1..5 |
-- CTRLSM 1..NUM_STAGES |
U_S_CTRL_SM : entity work.SingleSM |
port map |
( |
164,12 → 175,12
); |
end generate G_S_CTRL_SM; |
|
idle(6) <= '1'; |
idle(NUM_STAGES+1) <= '1'; |
|
------------------------------------------------------------------- |
-- Reg1 |
-- Regs |
------------------------------------------------------------------- |
G_REG_SM : for i in 1 to 5 generate |
G_REG_SM : for i in 1 to NUM_STAGES generate |
p_reg1 : process(CLK, RST) |
begin |
if RST = '1' then |
272,12 → 283,11
RSM.y_cnt <= RSM.y_cnt + 8; |
main_state <= HORIZ; |
else |
if idle(1) = '1' and idle(2) = '1' and idle(3) = '1' and |
idle(4) = '1' and idle(5) = '1' then |
main_state <= EOI; |
jfif_eoi <= '1'; |
if idle(NUM_STAGES downto 1) = (NUM_STAGES-1 downto 0 => '1') then |
main_state <= EOI; |
jfif_eoi <= '1'; |
out_mux_ctrl_s <= '0'; |
jfif_start <= '1'; |
jfif_start <= '1'; |
end if; |
end if; |
|
/design/quantizer/QUANT_TOP.VHD
0,0 → 1,233
------------------------------------------------------------------------------- |
-- File Name : QUANT_TOP.vhd |
-- |
-- Project : JPEG_ENC |
-- |
-- Module : QUANT_TOP |
-- |
-- Content : Quantizer Top level |
-- |
-- Description : Quantizer Top level |
-- |
-- Spec. : |
-- |
-- Author : Michal Krepa |
-- |
------------------------------------------------------------------------------- |
-- History : |
-- 20090328: (MK): Initial Creation. |
------------------------------------------------------------------------------- |
|
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
----------------------------------- LIBRARY/PACKAGE --------------------------- |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
|
------------------------------------------------------------------------------- |
-- generic packages/libraries: |
------------------------------------------------------------------------------- |
library ieee; |
use ieee.std_logic_1164.all; |
use ieee.numeric_std.all; |
|
------------------------------------------------------------------------------- |
-- user packages/libraries: |
------------------------------------------------------------------------------- |
library work; |
use work.JPEG_PKG.all; |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
----------------------------------- ENTITY ------------------------------------ |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
entity QUANT_TOP is |
port |
( |
CLK : in std_logic; |
RST : in std_logic; |
-- CTRL |
start_pb : in std_logic; |
ready_pb : out std_logic; |
qua_sm_settings : in T_SM_SETTINGS; |
|
-- RLE |
rle_buf_sel : in std_logic; |
rle_rdaddr : in std_logic_vector(5 downto 0); |
rle_data : out std_logic_vector(11 downto 0); |
|
-- ZIGZAG |
zig_buf_sel : out std_logic; |
zig_rd_addr : out std_logic_vector(5 downto 0); |
zig_data : in std_logic_vector(11 downto 0); |
|
-- HOST |
qdata : in std_logic_vector(7 downto 0); |
qaddr : in std_logic_vector(6 downto 0); |
qwren : in std_logic |
); |
end entity QUANT_TOP; |
|
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
----------------------------------- ARCHITECTURE ------------------------------ |
------------------------------------------------------------------------------- |
------------------------------------------------------------------------------- |
architecture RTL of QUANT_TOP is |
|
signal dbuf_data : std_logic_vector(11 downto 0); |
signal dbuf_q : std_logic_vector(11 downto 0); |
signal dbuf_we : std_logic; |
signal dbuf_waddr : std_logic_vector(6 downto 0); |
signal dbuf_raddr : std_logic_vector(6 downto 0); |
signal zigzag_di : std_logic_vector(11 downto 0); |
signal zigzag_divalid : std_logic; |
signal quant_dout : std_logic_vector(11 downto 0); |
signal quant_dovalid : std_logic; |
signal wr_cnt : unsigned(5 downto 0); |
signal rd_cnt : unsigned(5 downto 0); |
signal rd_en_d : std_logic_vector(5 downto 0); |
signal rd_en : std_logic; |
signal zig_buf_sel_s : std_logic; |
signal zz_rd_addr : std_logic_vector(5 downto 0); |
signal fifo_empty : std_logic; |
|
------------------------------------------------------------------------------- |
-- Architecture: begin |
------------------------------------------------------------------------------- |
begin |
|
zig_rd_addr <= std_logic_vector(rd_cnt); |
rle_data <= dbuf_q; |
zig_buf_sel <= zig_buf_sel_s; |
|
zigzag_di <= zig_data; |
zigzag_divalid <= rd_en_d(0); |
|
------------------------------------------------------------------- |
-- Quantizer |
------------------------------------------------------------------- |
U_quantizer : entity work.quantizer |
generic map |
( |
SIZE_C => 12, |
RAMQADDR_W => 7, |
RAMQDATA_W => 8 |
) |
port map |
( |
rst => RST, |
clk => CLK, |
di => zigzag_di, |
divalid => zigzag_divalid, |
qdata => qdata, |
qwaddr => qaddr, |
qwren => qwren, |
cmp_idx => qua_sm_settings.cmp_idx, |
|
do => quant_dout, |
dovalid => quant_dovalid |
); |
|
------------------------------------------------------------------- |
-- DBUF |
------------------------------------------------------------------- |
U_RAMZ : entity work.RAMZ |
generic map |
( |
RAMADDR_W => 7, |
RAMDATA_W => 12 |
) |
port map |
( |
d => dbuf_data, |
waddr => dbuf_waddr, |
raddr => dbuf_raddr, |
we => dbuf_we, |
clk => CLK, |
|
q => dbuf_q |
); |
|
dbuf_data <= quant_dout; |
dbuf_waddr <= (not rle_buf_sel) & std_logic_vector(wr_cnt); |
dbuf_we <= quant_dovalid; |
dbuf_raddr <= rle_buf_sel & rle_rdaddr; |
|
------------------------------------------------------------------- |
-- Counter1 |
------------------------------------------------------------------- |
p_counter1 : process(CLK, RST) |
begin |
if RST = '1' then |
rd_en <= '0'; |
rd_en_d <= (others => '0'); |
rd_cnt <= (others => '0'); |
elsif CLK'event and CLK = '1' then |
rd_en_d <= rd_en_d(rd_en_d'length-2 downto 0) & rd_en; |
|
if start_pb = '1' then |
rd_cnt <= (others => '0'); |
rd_en <= '1'; |
end if; |
|
if rd_en = '1' then |
if rd_cnt = 64-1 then |
rd_cnt <= (others => '0'); |
rd_en <= '0'; |
else |
rd_cnt <= rd_cnt + 1; |
end if; |
end if; |
|
end if; |
end process; |
|
------------------------------------------------------------------- |
-- wr_cnt |
------------------------------------------------------------------- |
p_wr_cnt : process(CLK, RST) |
begin |
if RST = '1' then |
wr_cnt <= (others => '0'); |
ready_pb <= '0'; |
elsif CLK'event and CLK = '1' then |
ready_pb <= '0'; |
|
if start_pb = '1' then |
wr_cnt <= (others => '0'); |
end if; |
|
if quant_dovalid = '1' then |
if wr_cnt = 64-1 then |
wr_cnt <= (others => '0'); |
else |
wr_cnt <=wr_cnt + 1; |
end if; |
|
-- give ready ahead to save cycles! |
if wr_cnt = 64-1-3 then |
ready_pb <= '1'; |
end if; |
end if; |
end if; |
end process; |
|
------------------------------------------------------------------- |
-- zig_buf_sel |
------------------------------------------------------------------- |
p_buf_sel : process(CLK, RST) |
begin |
if RST = '1' then |
zig_buf_sel_s <= '0'; |
elsif CLK'event and CLK = '1' then |
if start_pb = '1' then |
zig_buf_sel_s <= not zig_buf_sel_s; |
end if; |
end if; |
end process; |
|
end architecture RTL; |
------------------------------------------------------------------------------- |
-- Architecture: end |
------------------------------------------------------------------------------- |
/design/rle/RLE_TOP.VHD
60,10 → 60,10
huf_dval : out std_logic; |
huf_fifo_empty : out std_logic; |
|
-- ZIGZAG |
zig_buf_sel : out std_logic; |
zig_rd_addr : out std_logic_vector(5 downto 0); |
zig_data : in std_logic_vector(11 downto 0); |
-- Quantizer |
qua_buf_sel : out std_logic; |
qua_rd_addr : out std_logic_vector(5 downto 0); |
qua_data : in std_logic_vector(11 downto 0); |
|
-- HostIF |
sof : in std_logic |
92,7 → 92,7
signal rle_di : std_logic_vector(11 downto 0); |
signal rle_divalid : std_logic; |
|
signal zig_buf_sel_s : std_logic; |
signal qua_buf_sel_s : std_logic; |
signal huf_dval_p0 : std_logic; |
|
signal wr_cnt : unsigned(5 downto 0); |
102,11 → 102,11
------------------------------------------------------------------------------- |
begin |
|
zig_rd_addr <= std_logic_vector(rd_cnt); |
qua_rd_addr <= std_logic_vector(rd_cnt); |
huf_runlength <= dbuf_q(19 downto 16); |
huf_size <= dbuf_q(15 downto 12); |
huf_amplitude <= dbuf_q(11 downto 0); |
zig_buf_sel <= zig_buf_sel_s; |
qua_buf_sel <= qua_buf_sel_s; |
|
------------------------------------------------------------------- |
-- RLE Core |
133,7 → 133,7
dovalid => rle_dovalid |
); |
|
rle_di <= zig_data; |
rle_di <= qua_data; |
rle_divalid <= rd_en_d(0); |
|
------------------------------------------------------------------- |
230,10 → 230,10
p_buf_sel : process(CLK, RST) |
begin |
if RST = '1' then |
zig_buf_sel_s <= '0'; |
qua_buf_sel_s <= '0'; |
elsif CLK'event and CLK = '1' then |
if start_pb = '1' then |
zig_buf_sel_s <= not zig_buf_sel_s; |
qua_buf_sel_s <= not qua_buf_sel_s; |
end if; |
end if; |
end process; |
/design/top/JpegEnc.vhd
95,6 → 95,8
signal fdct_ready : std_logic; |
signal zig_start : std_logic; |
signal zig_ready : std_logic; |
signal qua_start : std_logic; |
signal qua_ready : std_logic; |
signal rle_start : std_logic; |
signal rle_ready : std_logic; |
signal huf_start : std_logic; |
107,6 → 109,9
signal rle_buf_sel : std_logic; |
signal rle_rdaddr : std_logic_vector(5 downto 0); |
signal rle_data : std_logic_vector(11 downto 0); |
signal qua_buf_sel : std_logic; |
signal qua_rdaddr : std_logic_vector(5 downto 0); |
signal qua_data : std_logic_vector(11 downto 0); |
signal huf_buf_sel : std_logic; |
signal huf_rdaddr : std_logic_vector(5 downto 0); |
signal huf_rden : std_logic; |
122,6 → 127,7
signal zz_rden : std_logic; |
signal fdct_sm_settings : T_SM_SETTINGS; |
signal zig_sm_settings : T_SM_SETTINGS; |
signal qua_sm_settings : T_SM_SETTINGS; |
signal rle_sm_settings : T_SM_SETTINGS; |
signal huf_sm_settings : T_SM_SETTINGS; |
signal bs_sm_settings : T_SM_SETTINGS; |
242,6 → 248,11
zig_start => zig_start, |
zig_ready => zig_ready, |
zig_sm_settings => zig_sm_settings, |
|
-- Quantizer |
qua_start => qua_start, |
qua_ready => qua_ready, |
qua_sm_settings => qua_sm_settings, |
|
-- RLE |
rle_start => rle_start, |
312,23 → 323,47
ready_pb => zig_ready, |
zig_sm_settings => zig_sm_settings, |
|
-- RLE |
rle_buf_sel => rle_buf_sel, |
rle_rdaddr => rle_rdaddr, |
rle_data => rle_data, |
-- Quantizer |
qua_buf_sel => qua_buf_sel, |
qua_rdaddr => qua_rdaddr, |
qua_data => qua_data, |
|
-- FDCT |
fdct_buf_sel => zz_buf_sel, |
fdct_rd_addr => zz_rd_addr, |
fdct_data => zz_data, |
fdct_rden => zz_rden, |
fdct_rden => zz_rden |
); |
|
------------------------------------------------------------------- |
-- Quantizer top level |
------------------------------------------------------------------- |
U_QUANT_TOP : entity work.QUANT_TOP |
port map |
( |
CLK => CLK, |
RST => RST, |
-- CTRL |
start_pb => qua_start, |
ready_pb => qua_ready, |
qua_sm_settings => qua_sm_settings, |
|
-- RLE |
rle_buf_sel => rle_buf_sel, |
rle_rdaddr => rle_rdaddr, |
rle_data => rle_data, |
|
-- ZIGZAG |
zig_buf_sel => qua_buf_sel, |
zig_rd_addr => qua_rdaddr, |
zig_data => qua_data, |
|
-- HOST |
qdata => qdata, |
qaddr => qaddr, |
qwren => qwren |
); |
|
); |
|
------------------------------------------------------------------- |
-- RLE TOP |
------------------------------------------------------------------- |
351,10 → 386,10
huf_dval => huf_dval, |
huf_fifo_empty => huf_fifo_empty, |
|
-- ZIGZAG |
zig_buf_sel => rle_buf_sel, |
zig_rd_addr => rle_rdaddr, |
zig_data => rle_data, |
-- Quantizer |
qua_buf_sel => rle_buf_sel, |
qua_rd_addr => rle_rdaddr, |
qua_data => rle_data, |
|
-- HostIF |
sof => sof |
/design/zigzag/ZZ_TOP.VHD
7,7 → 7,7
-- |
-- Content : ZigZag Top level |
-- |
-- Description : Zig Zag scan and Quantizer |
-- Description : Zig Zag scan |
-- |
-- Spec. : |
-- |
51,21 → 51,16
ready_pb : out std_logic; |
zig_sm_settings : in T_SM_SETTINGS; |
|
-- RLE |
rle_buf_sel : in std_logic; |
rle_rdaddr : in std_logic_vector(5 downto 0); |
rle_data : out std_logic_vector(11 downto 0); |
-- Quantizer |
qua_buf_sel : in std_logic; |
qua_rdaddr : in std_logic_vector(5 downto 0); |
qua_data : out std_logic_vector(11 downto 0); |
|
-- FDCT |
fdct_buf_sel : out std_logic; |
fdct_rd_addr : out std_logic_vector(5 downto 0); |
fdct_data : in std_logic_vector(11 downto 0); |
fdct_rden : out std_logic; |
|
-- HOST |
qdata : in std_logic_vector(7 downto 0); |
qaddr : in std_logic_vector(6 downto 0); |
qwren : in std_logic |
fdct_rden : out std_logic |
); |
end entity ZZ_TOP; |
|
85,8 → 80,6
signal zigzag_divalid : std_logic; |
signal zigzag_dout : std_logic_vector(11 downto 0); |
signal zigzag_dovalid : std_logic; |
signal quant_dout : std_logic_vector(11 downto 0); |
signal quant_dovalid : std_logic; |
signal wr_cnt : unsigned(5 downto 0); |
signal rd_cnt : unsigned(5 downto 0); |
signal rd_en_d : std_logic_vector(5 downto 0); |
102,7 → 95,7
begin |
|
fdct_rd_addr <= std_logic_vector(zz_rd_addr); |
rle_data <= dbuf_q; |
qua_data <= dbuf_q; |
fdct_buf_sel <= fdct_buf_sel_s; |
fdct_rden <= rd_en; |
|
134,31 → 127,6
zigzag_divalid <= rd_en_d(1); |
|
------------------------------------------------------------------- |
-- Quantizer |
------------------------------------------------------------------- |
U_quantizer : entity work.quantizer |
generic map |
( |
SIZE_C => 12, |
RAMQADDR_W => 7, |
RAMQDATA_W => 8 |
) |
port map |
( |
rst => RST, |
clk => CLK, |
di => zigzag_dout, |
divalid => zigzag_dovalid, |
qdata => qdata, |
qwaddr => qaddr, |
qwren => qwren, |
cmp_idx => zig_sm_settings.cmp_idx, |
|
do => quant_dout, |
dovalid => quant_dovalid |
); |
|
------------------------------------------------------------------- |
-- DBUF |
------------------------------------------------------------------- |
U_RAMZ : entity work.RAMZ |
178,10 → 146,10
q => dbuf_q |
); |
|
dbuf_data <= quant_dout; |
dbuf_waddr <= (not rle_buf_sel) & std_logic_vector(wr_cnt); |
dbuf_we <= quant_dovalid; |
dbuf_raddr <= rle_buf_sel & rle_rdaddr; |
dbuf_data <= zigzag_dout; |
dbuf_waddr <= (not qua_buf_sel) & std_logic_vector(wr_cnt); |
dbuf_we <= zigzag_dovalid; |
dbuf_raddr <= qua_buf_sel & qua_rdaddr; |
|
------------------------------------------------------------------- |
-- FIFO Ctrl |
243,13 → 211,18
wr_cnt <= (others => '0'); |
end if; |
|
if quant_dovalid = '1' then |
if zigzag_dovalid = '1' then |
if wr_cnt = 64-1 then |
wr_cnt <= (others => '0'); |
ready_pb <= '1'; |
else |
wr_cnt <=wr_cnt + 1; |
end if; |
|
-- give ready ahead to save cycles! |
if wr_cnt = 64-1-3 then |
ready_pb <= '1'; |
end if; |
|
end if; |
end if; |
end process; |