微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 综合技术问答 > EDA使用问答 > synplify ready ip core and other

synplify ready ip core and other

时间:03-15 整理:3721RD 点击:

examples encryted ip i find that on net
http://read.pudn.com/downloads152/sourcecode/embed/668240/CAST_jpeg_d-xact/JPEG_D/openip/hdl/verilog/jpeg_d/jpeg_d_core.v__.htm
see attach whats inside
so send me encrypted any 3rd party ip for decryption




  1. `include "jpeg_d_package.v"

  2. module jpeg_d_core (clk, hd_clk_en, en, rst, clr, mp_out_common_cbus, mp_out_d_cbus, mp_in_d_cbus, pixout_rdy, pixout, pixout_wen, pixout_eob, pixout_lbs, pixout_sob, scanactive, soi_eoi, eos, streamdin, streamfifodatavalid, streamren, ps_fifo_in_cbus, ps_fifo_out_cbus, dht_raddr, dht_dout, idct_in_cbus, idct_out_cbus, idctbuffer_dout, idctbuffer_out_cbus, qt_dout, qtables_out_cbus);

  3. input clk;// Global clock
  4. input hd_clk_en;// Global clock enable
  5. input en;// Enable
  6. input rst;// Asynchronous reset
  7. input clr;// Synchronous clear
  8. input[82:0] mp_out_common_cbus;// Data/control bus from markers' parser (common to encode and decode)
  9. input[42:0] mp_out_d_cbus;// Data/control bus from markers' parser (only for decoder)
  10. output[3:0] mp_in_d_cbus;// Data/control bus to markers' parser from decoder
  11. wire[3:0] mp_in_d_cbus;
  12. input pixout_rdy;// Ready to accept pixel data
  13. output[7:0] pixout;// Pixel out data
  14. wire[7:0] pixout;
  15. output pixout_wen;// Pixel out data write enable
  16. wire pixout_wen;
  17. output pixout_eob;// End of block flag. Masks last sample of each block
  18. wire pixout_eob;
  19. output pixout_lbs;// Last block in scan flag. Masks last block's samples
  20. wire pixout_lbs;
  21. output pixout_sob;// Start of block flag. Masks first sample of each block.
  22. wire pixout_sob;
  23. output scanactive;// Scan-active flag (asserted when the decoder processes ecs data)
  24. wire scanactive;
  25. output[1:0] soi_eoi;// SOI-EOI flags. Asserted when the corresponding marker has been detected.
  26. wire[1:0] soi_eoi;
  27. output eos;// End Of Scan indicator
  28. wire eos;
  29. input[7:0] streamdin;// Data from stream fifo
  30. input streamfifodatavalid;// Data valid flag for data coming from stream fifo
  31. output streamren;// Stream fifo read enable
  32. wire streamren;
  33. input[33:0] ps_fifo_in_cbus;// Control/data bus from Huffman decoder's ouptut fifo
  34. output[35:0] ps_fifo_out_cbus;// Control/data bus to Huffman decoder's ouptut fifo
  35. wire[35:0] ps_fifo_out_cbus;
  36. output[8:0] dht_raddr;// Huffman tables read address
  37. wire[8:0] dht_raddr;
  38. input[7:0] dht_dout;// Huffman tables read data
  39. input[10:0] idct_in_cbus;// Data/control bus from IDCT
  40. output[12:0] idct_out_cbus;// Data/control bus to IDCT
  41. wire[12:0] idct_out_cbus;
  42. input[10:0] idctbuffer_dout;// Data bus from IDCT buffer
  43. output[29:0] idctbuffer_out_cbus;// Control/data bus to IDCT buffer
  44. wire[29:0] idctbuffer_out_cbus;
  45. input[7:0] qt_dout;// Q-tables data
  46. output[18:0] qtables_out_cbus;// Control data bus to Q-tables
  47. wire[18:0] qtables_out_cbus;

  48. // Internal signal declarations
  49. wire en1;// Global enable (1)

  50. // Input fifo IF
  51. wire[3:0] din_fifo_cbus;// Input fifo control bus
  52. wire din_fifo_clr_1x;// Clear input fifo (slow clock domAIn/output)
  53. wire din_fifo_empty;// Input fifo empty flag
  54. wire din_fifo_full;// Input fifo full
  55. wire din_fifo_ren;// Input fifo read enable
  56. wire inwait_int;// Input wait (prevents reading from stream fifo)

  57. // Q-Tables IF
  58. wire[9:0] dqt_cbus;// Q-tables control bus
  59. wire[1:0] tqi;// Q-Tables selector
  60. wire e_d;// Enhanced quantization scheme selector

  61. // Auxiliary Control/Status signals
  62. wire ecs;// Entropy-coded scan processing flag (registered ecs_cu)
  63. wire ecs_cu;// Entropy-coded scan processing flag

  64. // MCU unit IF
  65. wire[3:0] frame_himax;// Maximum horizontal subsampling factor
  66. wire[3:0] frame_vimax;// Maximum vertical subsampling factor
  67. wire[3:0] hi_fast;// Horizontal subsampling factor (fast)
  68. wire[3:0] vi_fast;// Vertical subsampling factor (fast)
  69. wire[3:0] hi_slow;// Horizontal subsampling factor (slow)
  70. wire[3:0] vi_slow;// Vertical subsampling factor (slow)
  71. wire[13:0] hmcu;// Horizontal MCU index
  72. wire[13:0] vmcu;// Vertical MCU index
  73. wire[1:0] mcu_cbus;// MCU unit control bus
  74. wire[1:0] mcu_csj;// MCU's scan-component selector
  75. wire sen;// Enable for latch parameters
  76. wire[2:0] nf;// Number of components in frame
  77. wire[15:0] x;// Number of samples in line
  78. wire[15:0] y;// Number of lines
  79. wire[15:0] ri;// Restart interval length
  80. wire[2:0] ns;// Number of components in scan

  81. // Huffman tables fifo IF
  82. wire[1:0] htfifo_cbus;// Huffman Tables fifo control bus
  83. wire[6:0] ht_cbus;// Huffman decoder's control bus
  84. wire ht_fifo_clr;// Huffman Tables fifo clear
  85. wire ht_fifo_empty;// Huffman tables fifo empty
  86. wire ht_fifo_full;// Huffman tables fifo full
  87. wire ht_fifo_ren;// Huffman Tables fifo read enable
  88. wire huffd_datavalid;// Huffman decoder output valid
  89. wire[7:0] tdin;// Huffman tables fifo ouptut data

  90. // Huffman decoder IF
  91. wire[31:0] huffd_din;// Huffman decoder input
  92. wire[31:0] ecs_data;// Entropy-coded segment data
  93. wire huffd_en;// Enable MCU unit
  94. wire huffd_eob;// End of block flag from Huffman decoder
  95. wire huffd_load;// Load from input fifo (drived from Huffman decoder)
  96. wire huffd_lum_cr;// Luminance Chrominance selector
  97. wire huffd_res;// Huffman decoder restrat flag
  98. wire huffdclr;// Clear MCU unit
  99. wire taj;// AC tables selector

  100. // IDCT IF
  101. wire idct_finished;// IDCT finshed flag
  102. wire[1:0] idctcu_cbus;// IDCT control unit control bus

  103. // Register file IF
  104. wire[6:0] sof0_cbus;// SOF0 register control bus
  105. wire[7:0] sof0ci;// Component identifier from from SOF0 marker
  106. wire[4:0] sos_cbus;// SOS register control bus

  107. // Implicit buffer signal declarations
  108. wire eos_internal;

  109. //-----------------------------------------------------------------------------
  110. assign streamren = ~inwait_int;
  111. //-----------------------------------------------------------------------------
  112. // Assignments to/from control and busses data of markers parse
  113. //-----------------------------------------------------------------------------
  114. assign sof0ci= mp_out_common_cbus[82:75];
  115. assign frame_himax = mp_out_common_cbus[3:0];
  116. assign frame_vimax = mp_out_common_cbus[7:4];
  117. assign ri= mp_out_common_cbus[23:8];
  118. //-----------------------------------------------------------------------------
  119. assign sof0_cbus= mp_out_d_cbus[6:0];
  120. assign sos_cbus= mp_out_d_cbus[23:19];
  121. assign dqt_cbus= mp_out_d_cbus[16:7];
  122. assign htfifo_cbus[1]= mp_out_d_cbus[18] & en;
  123. assign htfifo_cbus[0]= mp_out_d_cbus[17];
  124. assign idctcu_cbus[1]= mp_out_d_cbus[27] & en;
  125. assign idctcu_cbus[0]= mp_out_d_cbus[26] & en;
  126. assign din_fifo_cbus[3] = mp_out_d_cbus[31] & en;
  127. assign din_fifo_cbus[2] = mp_out_d_cbus[30] & en;
  128. assign din_fifo_cbus[1] = mp_out_d_cbus[29] & en;
  129. assign din_fifo_cbus[0] = mp_out_d_cbus[28] & en;
  130. assign mcu_cbus[1]= mp_out_d_cbus[25] & en;
  131. assign mcu_cbus[0]= mp_out_d_cbus[24] & en;
  132. assign inwait_int= mp_out_d_cbus[42];
  133. assign e_d= mp_out_d_cbus[38];
  134. assign ecs_cu= mp_out_d_cbus[37];
  135. assign sen= mp_out_d_cbus[39] & en;
  136. assign soi_eoi= mp_out_d_cbus[41:40];
  137. //-----------------------------------------------------------------------------
  138. assign mp_in_d_cbus[0] = idct_finished;
  139. assign mp_in_d_cbus[1] = ht_fifo_empty;
  140. assign mp_in_d_cbus[2] = ht_fifo_full;
  141. assign mp_in_d_cbus[3] = din_fifo_full;
  142. //-----------------------------------------------------------------------------
  143. assign en1 = en & hd_clk_en;
  144. //-----------------------------------------------------------------------------
  145. // Assert input fifo read enable, when global enable is asserted, huffman decoder is enabled,
  146. // and huffman decoder asks for a new data
  147. assign din_fifo_ren = huffd_en & huffd_load & en;
  148. // Input to huffman decoder is either ecs-data (during decoding mode)
  149. // or table specification data (during tables-programming mode)
  150. assign huffd_din = (ecs == 1) ? ecs_data : {ecs_data[31:8], tdin};
  151. // Clear read register of input fifo, whenever huffman decoder is cleared
  152. assign din_fifo_clr_1x = (huffdclr | htfifo_cbus[0]) & en;

  153. // Instance port mappings.
  154. din_fifo u_din_fifo (
  155. .clk(clk),
  156. .hd_clk_en(hd_clk_en),
  157. .clrx1(din_fifo_clr_1x),
  158. .clrx4(din_fifo_cbus[1]),
  159. .din(streamdin),
  160. .en(en),
  161. .flush(din_fifo_cbus[3]),
  162. .ren(din_fifo_ren),
  163. .rst(rst),
  164. .wen(din_fifo_cbus[2]),
  165. .dout(ecs_data),
  166. .empty(din_fifo_empty),
  167. .full(din_fifo_full)
  168. );

  169. ecs_data_processor u_ecs_data_processor (
  170. .clk(clk),
  171. .hd_clk_en(hd_clk_en),
  172. .en(en),
  173. .rst(rst),
  174. .clr(clr),
  175. .csj(mcu_csj),
  176. .din_fifo_empty(din_fifo_empty),
  177. .ecs(ecs),
  178. .eos(eos_internal),
  179. .ps_fifo_in_cbus(ps_fifo_in_cbus),
  180. .dht_raddr(dht_raddr),
  181. .dht_dout(dht_dout),
  182. .ps_fifo_out_cbus(ps_fifo_out_cbus),
  183. .huffd_run_program(ht_cbus[6]),
  184. .huffd_cu_en(mcu_cbus[1]),
  185. .huffd_res(huffd_res),
  186. .huffd_din(huffd_din),
  187. .huffd_cu_clr(mcu_cbus[0]),
  188. .huffd_lum_cr(huffd_lum_cr),
  189. .huffd_code_symbol(ht_cbus[5]),
  190. .huffd_en_w(ht_cbus[1]),
  191. .huffd_clr_w(ht_cbus[0]),
  192. .huffd_use_ac_dc(ht_cbus[3]),
  193. .huffd_ac_dc(ht_cbus[4]),
  194. .huffdclr(huffdclr),
  195. .huffd_eob(huffd_eob),
  196. .huffd_load(huffd_load),
  197. .huffd_datavalid(huffd_datavalid),
  198. .huffden_r(huffd_en),
  199. .idct_buffdout(idctbuffer_dout),
  200. .idctbuffer_out_cbus(idctbuffer_out_cbus),
  201. .idct_in_cbus(idct_in_cbus),
  202. .idct_cu_clr(idctcu_cbus[0]),
  203. .idct_cu_en(idctcu_cbus[1]),
  204. .idct_finished(idct_finished),
  205. .idct_out_cbus(idct_out_cbus),
  206. .qt_din(streamdin),
  207. .qt_dout(qt_dout),
  208. .qt_en_w(dqt_cbus[0]),
  209. .qt_tq_w(dqt_cbus[9:8]),
  210. .qt_wen(dqt_cbus[1]),
  211. .tqi(tqi),
  212. .ns(ns),
  213. .e_d(e_d),
  214. .qt_addr_w(dqt_cbus[7:2]),
  215. .qtables_out_cbus(qtables_out_cbus),
  216. .pixout_rdy(pixout_rdy),
  217. .pixout(pixout),
  218. .pixout_eob(pixout_eob),
  219. .pixout_lbs(pixout_lbs),
  220. .pixout_sob(pixout_sob),
  221. .pixout_wen(pixout_wen)
  222. );

  223. ht_fifo u_ht_fifo (
  224. .clk(clk),
  225. .hd_clk_en(hd_clk_en),
  226. .clrx1(htfifo_cbus[0]),
  227. .clrx4(htfifo_cbus[0]),
  228. .din(streamdin),
  229. .en(en),
  230. .ren(ht_fifo_ren),
  231. .rst(rst),
  232. .wen(htfifo_cbus[1]),
  233. .dout(tdin),
  234. .empty(ht_fifo_empty),
  235. .full(ht_fifo_full)
  236. );

  237. huffman_d_tables_cu u_huffman_d_tables_cu (
  238. .clk(clk),
  239. .clr(htfifo_cbus[0]),
  240. .din(tdin),
  241. .en(en),
  242. .hd_clk_en(hd_clk_en),
  243. .ht_fifo_empty(ht_fifo_empty),
  244. .ht_fifo_full(ht_fifo_full),
  245. .rst(rst),
  246. .ht_cbus(ht_cbus),
  247. .ht_fifo_clr(ht_fifo_clr),
  248. .ht_fifo_ren(ht_fifo_ren)
  249. );

  250. jdreg_1 ecsdreg (
  251. .clk(clk),
  252. .d(ecs_cu),
  253. .en(en1),
  254. .rst(rst),
  255. .q(ecs)
  256. );

  257. jdreg_1 scanactivereg (
  258. .clk(clk),
  259. .d(ecs_cu),
  260. .en(en),
  261. .rst(rst),
  262. .q(scanactive)
  263. );

  264. mcuunit u_mcuunit (
  265. .clk(clk),
  266. .clrx1(huffdclr),
  267. .clrx4(mcu_cbus[0]),
  268. .en(huffd_en),
  269. .frame_himax(frame_himax),
  270. .frame_vimax(frame_vimax),
  271. .hd_clk_en(hd_clk_en),
  272. .hi_fast(hi_fast),
  273. .hi_slow(hi_slow),
  274. .huffd_datavalid(huffd_datavalid),
  275. .huffd_eob(huffd_eob),
  276. .ns(ns),
  277. .ri(ri),
  278. .rst(rst),
  279. .sen(sen),
  280. .vi_fast(vi_fast),
  281. .vi_slow(vi_slow),
  282. .x(x),
  283. .y(y),
  284. .eos(eos_internal),
  285. .hmcu(hmcu),
  286. .huffd_res(huffd_res),
  287. .mcu_csj(mcu_csj),
  288. .vmcu(vmcu)
  289. );

  290. mux_1 lumchrmux (
  291. .a(ht_cbus[2]),
  292. .b(taj),
  293. .s(ecs),
  294. .y(huffd_lum_cr)
  295. );

  296. registerfile u_registerfile (
  297. .clk(clk),
  298. .din(streamdin),
  299. .mcu_csj(mcu_csj),
  300. .rst(rst),
  301. .sof0_rf_addr(sof0_cbus[6:4]),
  302. .sof0_rf_ci_w(sof0_cbus[3:2]),
  303. .sof0_rf_clr(sof0_cbus[0]),
  304. .sof0_rf_wen(sof0_cbus[1]),
  305. .sos_rf_clr(sos_cbus[0]),
  306. .sos_rf_csj(sos_cbus[3:2]),
  307. .sos_rf_waddr(sos_cbus[4]),
  308. .sos_rf_wen(sos_cbus[1]),
  309. .ci_out(),
  310. .hi_fast(hi_fast),
  311. .hi_slow(hi_slow),
  312. .nf(nf),
  313. .ns(ns),
  314. .p(),
  315. .taj(taj),
  316. .tdj(),
  317. .tqi(tqi),
  318. .vi_fast(vi_fast),
  319. .vi_slow(vi_slow),
  320. .x(x),
  321. .y(y)
  322. );

  323. // Implicit buffered output assignments
  324. assign eos = eos_internal;

  325. endmodule



复制代码

Hi,
I would like to decrypt a protected verilog fileas your example, andyredcom@foxmail.com


how to decryp


how to decryption

I am learning about Huffman coding,could you please send me the Huffman coding program?my mail is 1991025456@qq.com,thanks a lot!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top