• Verilog代码之求勾股定理和arctan


    io_outR=√ ̄(io_inX*io_inX)+(io_inY*io_inY)

    io_outTheta=arctan(io_inY/io_inX)   // |io_inX|<=2^14 和|io_inY|<=2^14

    1. module PqxCordicVm(
    2. input clock,
    3. input reset,
    4. input [31:0] io_inX,
    5. input [31:0] io_inY,
    6. output [31:0] io_outR,
    7. output [31:0] io_outTheta
    8. );
    9. `ifdef RANDOMIZE_REG_INIT
    10. reg [31:0] _RAND_0;
    11. reg [31:0] _RAND_1;
    12. reg [31:0] _RAND_2;
    13. reg [31:0] _RAND_3;
    14. reg [31:0] _RAND_4;
    15. reg [31:0] _RAND_5;
    16. reg [31:0] _RAND_6;
    17. reg [31:0] _RAND_7;
    18. reg [31:0] _RAND_8;
    19. reg [31:0] _RAND_9;
    20. reg [31:0] _RAND_10;
    21. reg [31:0] _RAND_11;
    22. reg [31:0] _RAND_12;
    23. reg [31:0] _RAND_13;
    24. reg [31:0] _RAND_14;
    25. reg [31:0] _RAND_15;
    26. reg [31:0] _RAND_16;
    27. reg [31:0] _RAND_17;
    28. reg [31:0] _RAND_18;
    29. reg [31:0] _RAND_19;
    30. reg [31:0] _RAND_20;
    31. reg [31:0] _RAND_21;
    32. reg [31:0] _RAND_22;
    33. reg [31:0] _RAND_23;
    34. reg [31:0] _RAND_24;
    35. reg [31:0] _RAND_25;
    36. reg [31:0] _RAND_26;
    37. reg [31:0] _RAND_27;
    38. reg [31:0] _RAND_28;
    39. `endif
    40. reg [31:0] Xns_0;
    41. reg [31:0] Xns_1;
    42. reg [31:0] Xns_2;
    43. reg [31:0] Xns_3;
    44. reg [31:0] Xns_4;
    45. reg [31:0] Xns_5;
    46. reg [31:0] Xns_6;
    47. reg [31:0] Xns_7;
    48. reg [31:0] Xns_8;
    49. reg [31:0] Xns_9;
    50. reg [31:0] Yns_0;
    51. reg [31:0] Yns_1;
    52. reg [31:0] Yns_2;
    53. reg [31:0] Yns_3;
    54. reg [31:0] Yns_4;
    55. reg [31:0] Yns_5;
    56. reg [31:0] Yns_6;
    57. reg [31:0] Yns_7;
    58. reg [31:0] Yns_8;
    59. reg [31:0] Zns_0;
    60. reg [31:0] Zns_1;
    61. reg [31:0] Zns_2;
    62. reg [31:0] Zns_3;
    63. reg [31:0] Zns_4;
    64. reg [31:0] Zns_5;
    65. reg [31:0] Zns_6;
    66. reg [31:0] Zns_7;
    67. reg [31:0] Zns_8;
    68. reg [31:0] Zns_9;
    69. wire [31:0] _Xns_0_T_3 = 32'sh0 - $signed(io_inY);
    70. wire [31:0] _Xns_0_T_4 = io_inY[31] ? $signed(io_inY) : $signed(_Xns_0_T_3);
    71. wire [31:0] _Xns_0_T_7 = $signed(io_inX) - $signed(_Xns_0_T_4);
    72. wire [31:0] _Yns_0_T_3 = 32'sh0 - $signed(io_inX);
    73. wire [31:0] _Yns_0_T_4 = io_inY[31] ? $signed(io_inX) : $signed(_Yns_0_T_3);
    74. wire [31:0] _Yns_0_T_7 = $signed(io_inY) + $signed(_Yns_0_T_4);
    75. wire [31:0] _Zns_0_T_3 = 32'sh0 - 32'shc910;
    76. wire [30:0] _Xns_1_T = Yns_0[31:1];
    77. wire [31:0] _GEN_27 = {{1{_Xns_1_T[30]}},_Xns_1_T};
    78. wire [31:0] _Xns_1_T_3 = $signed(Xns_0) - $signed(_GEN_27);
    79. wire [30:0] _Yns_1_T = Xns_0[31:1];
    80. wire [31:0] _GEN_28 = {{1{_Yns_1_T[30]}},_Yns_1_T};
    81. wire [31:0] _Yns_1_T_3 = $signed(Yns_0) + $signed(_GEN_28);
    82. wire [31:0] _Zns_1_T_2 = $signed(Zns_0) - 32'sh76b2;
    83. wire [31:0] _Xns_1_T_7 = $signed(Xns_0) + $signed(_GEN_27);
    84. wire [31:0] _Yns_1_T_7 = $signed(Yns_0) - $signed(_GEN_28);
    85. wire [31:0] _Zns_1_T_5 = $signed(Zns_0) + 32'sh76b2;
    86. wire [29:0] _Xns_2_T = Yns_1[31:2];
    87. wire [31:0] _GEN_31 = {{2{_Xns_2_T[29]}},_Xns_2_T};
    88. wire [31:0] _Xns_2_T_3 = $signed(Xns_1) - $signed(_GEN_31);
    89. wire [29:0] _Yns_2_T = Xns_1[31:2];
    90. wire [31:0] _GEN_32 = {{2{_Yns_2_T[29]}},_Yns_2_T};
    91. wire [31:0] _Yns_2_T_3 = $signed(Yns_1) + $signed(_GEN_32);
    92. wire [31:0] _Zns_2_T_2 = $signed(Zns_1) - 32'sh3eb7;
    93. wire [31:0] _Xns_2_T_7 = $signed(Xns_1) + $signed(_GEN_31);
    94. wire [31:0] _Yns_2_T_7 = $signed(Yns_1) - $signed(_GEN_32);
    95. wire [31:0] _Zns_2_T_5 = $signed(Zns_1) + 32'sh3eb7;
    96. wire [28:0] _Xns_3_T = Yns_2[31:3];
    97. wire [31:0] _GEN_35 = {{3{_Xns_3_T[28]}},_Xns_3_T};
    98. wire [31:0] _Xns_3_T_3 = $signed(Xns_2) - $signed(_GEN_35);
    99. wire [28:0] _Yns_3_T = Xns_2[31:3];
    100. wire [31:0] _GEN_36 = {{3{_Yns_3_T[28]}},_Yns_3_T};
    101. wire [31:0] _Yns_3_T_3 = $signed(Yns_2) + $signed(_GEN_36);
    102. wire [31:0] _Zns_3_T_2 = $signed(Zns_2) - 32'sh1fd6;
    103. wire [31:0] _Xns_3_T_7 = $signed(Xns_2) + $signed(_GEN_35);
    104. wire [31:0] _Yns_3_T_7 = $signed(Yns_2) - $signed(_GEN_36);
    105. wire [31:0] _Zns_3_T_5 = $signed(Zns_2) + 32'sh1fd6;
    106. wire [27:0] _Xns_4_T = Yns_3[31:4];
    107. wire [31:0] _GEN_39 = {{4{_Xns_4_T[27]}},_Xns_4_T};
    108. wire [31:0] _Xns_4_T_3 = $signed(Xns_3) - $signed(_GEN_39);
    109. wire [27:0] _Yns_4_T = Xns_3[31:4];
    110. wire [31:0] _GEN_40 = {{4{_Yns_4_T[27]}},_Yns_4_T};
    111. wire [31:0] _Yns_4_T_3 = $signed(Yns_3) + $signed(_GEN_40);
    112. wire [31:0] _Zns_4_T_2 = $signed(Zns_3) - 32'shffb;
    113. wire [31:0] _Xns_4_T_7 = $signed(Xns_3) + $signed(_GEN_39);
    114. wire [31:0] _Yns_4_T_7 = $signed(Yns_3) - $signed(_GEN_40);
    115. wire [31:0] _Zns_4_T_5 = $signed(Zns_3) + 32'shffb;
    116. wire [26:0] _Xns_5_T = Yns_4[31:5];
    117. wire [31:0] _GEN_43 = {{5{_Xns_5_T[26]}},_Xns_5_T};
    118. wire [31:0] _Xns_5_T_3 = $signed(Xns_4) - $signed(_GEN_43);
    119. wire [26:0] _Yns_5_T = Xns_4[31:5];
    120. wire [31:0] _GEN_44 = {{5{_Yns_5_T[26]}},_Yns_5_T};
    121. wire [31:0] _Yns_5_T_3 = $signed(Yns_4) + $signed(_GEN_44);
    122. wire [31:0] _Zns_5_T_2 = $signed(Zns_4) - 32'sh7ff;
    123. wire [31:0] _Xns_5_T_7 = $signed(Xns_4) + $signed(_GEN_43);
    124. wire [31:0] _Yns_5_T_7 = $signed(Yns_4) - $signed(_GEN_44);
    125. wire [31:0] _Zns_5_T_5 = $signed(Zns_4) + 32'sh7ff;
    126. wire [25:0] _Xns_6_T = Yns_5[31:6];
    127. wire [31:0] _GEN_47 = {{6{_Xns_6_T[25]}},_Xns_6_T};
    128. wire [31:0] _Xns_6_T_3 = $signed(Xns_5) - $signed(_GEN_47);
    129. wire [25:0] _Yns_6_T = Xns_5[31:6];
    130. wire [31:0] _GEN_48 = {{6{_Yns_6_T[25]}},_Yns_6_T};
    131. wire [31:0] _Yns_6_T_3 = $signed(Yns_5) + $signed(_GEN_48);
    132. wire [31:0] _Zns_6_T_2 = $signed(Zns_5) - 32'sh400;
    133. wire [31:0] _Xns_6_T_7 = $signed(Xns_5) + $signed(_GEN_47);
    134. wire [31:0] _Yns_6_T_7 = $signed(Yns_5) - $signed(_GEN_48);
    135. wire [31:0] _Zns_6_T_5 = $signed(Zns_5) + 32'sh400;
    136. wire [24:0] _Xns_7_T = Yns_6[31:7];
    137. wire [31:0] _GEN_51 = {{7{_Xns_7_T[24]}},_Xns_7_T};
    138. wire [31:0] _Xns_7_T_3 = $signed(Xns_6) - $signed(_GEN_51);
    139. wire [24:0] _Yns_7_T = Xns_6[31:7];
    140. wire [31:0] _GEN_52 = {{7{_Yns_7_T[24]}},_Yns_7_T};
    141. wire [31:0] _Yns_7_T_3 = $signed(Yns_6) + $signed(_GEN_52);
    142. wire [31:0] _Zns_7_T_2 = $signed(Zns_6) - 32'sh200;
    143. wire [31:0] _Xns_7_T_7 = $signed(Xns_6) + $signed(_GEN_51);
    144. wire [31:0] _Yns_7_T_7 = $signed(Yns_6) - $signed(_GEN_52);
    145. wire [31:0] _Zns_7_T_5 = $signed(Zns_6) + 32'sh200;
    146. wire [23:0] _Xns_8_T = Yns_7[31:8];
    147. wire [31:0] _GEN_55 = {{8{_Xns_8_T[23]}},_Xns_8_T};
    148. wire [31:0] _Xns_8_T_3 = $signed(Xns_7) - $signed(_GEN_55);
    149. wire [23:0] _Yns_8_T = Xns_7[31:8];
    150. wire [31:0] _GEN_56 = {{8{_Yns_8_T[23]}},_Yns_8_T};
    151. wire [31:0] _Yns_8_T_3 = $signed(Yns_7) + $signed(_GEN_56);
    152. wire [31:0] _Zns_8_T_2 = $signed(Zns_7) - 32'sh100;
    153. wire [31:0] _Xns_8_T_7 = $signed(Xns_7) + $signed(_GEN_55);
    154. wire [31:0] _Yns_8_T_7 = $signed(Yns_7) - $signed(_GEN_56);
    155. wire [31:0] _Zns_8_T_5 = $signed(Zns_7) + 32'sh100;
    156. wire [22:0] _Xns_9_T = Yns_8[31:9];
    157. wire [31:0] _GEN_59 = {{9{_Xns_9_T[22]}},_Xns_9_T};
    158. wire [31:0] _Xns_9_T_3 = $signed(Xns_8) - $signed(_GEN_59);
    159. wire [31:0] _Zns_9_T_2 = $signed(Zns_8) - 32'sh80;
    160. wire [31:0] _Xns_9_T_7 = $signed(Xns_8) + $signed(_GEN_59);
    161. wire [31:0] _Zns_9_T_5 = $signed(Zns_8) + 32'sh80;
    162. wire [63:0] _io_outR_T = $signed(Xns_9) * 32'sh9b75;
    163. wire [47:0] _GEN_63 = _io_outR_T[63:16];
    164. assign io_outR = _GEN_63[31:0];
    165. assign io_outTheta = Zns_9;
    166. always @(posedge clock) begin
    167. if (reset) begin
    168. Xns_0 <= 32'sh0;
    169. end else begin
    170. Xns_0 <= _Xns_0_T_7;
    171. end
    172. if (reset) begin
    173. Xns_1 <= 32'sh0;
    174. end else if (Yns_0[31]) begin
    175. Xns_1 <= _Xns_1_T_3;
    176. end else begin
    177. Xns_1 <= _Xns_1_T_7;
    178. end
    179. if (reset) begin
    180. Xns_2 <= 32'sh0;
    181. end else if (Yns_1[31]) begin
    182. Xns_2 <= _Xns_2_T_3;
    183. end else begin
    184. Xns_2 <= _Xns_2_T_7;
    185. end
    186. if (reset) begin
    187. Xns_3 <= 32'sh0;
    188. end else if (Yns_2[31]) begin
    189. Xns_3 <= _Xns_3_T_3;
    190. end else begin
    191. Xns_3 <= _Xns_3_T_7;
    192. end
    193. if (reset) begin
    194. Xns_4 <= 32'sh0;
    195. end else if (Yns_3[31]) begin
    196. Xns_4 <= _Xns_4_T_3;
    197. end else begin
    198. Xns_4 <= _Xns_4_T_7;
    199. end
    200. if (reset) begin
    201. Xns_5 <= 32'sh0;
    202. end else if (Yns_4[31]) begin
    203. Xns_5 <= _Xns_5_T_3;
    204. end else begin
    205. Xns_5 <= _Xns_5_T_7;
    206. end
    207. if (reset) begin
    208. Xns_6 <= 32'sh0;
    209. end else if (Yns_5[31]) begin
    210. Xns_6 <= _Xns_6_T_3;
    211. end else begin
    212. Xns_6 <= _Xns_6_T_7;
    213. end
    214. if (reset) begin
    215. Xns_7 <= 32'sh0;
    216. end else if (Yns_6[31]) begin
    217. Xns_7 <= _Xns_7_T_3;
    218. end else begin
    219. Xns_7 <= _Xns_7_T_7;
    220. end
    221. if (reset) begin
    222. Xns_8 <= 32'sh0;
    223. end else if (Yns_7[31]) begin
    224. Xns_8 <= _Xns_8_T_3;
    225. end else begin
    226. Xns_8 <= _Xns_8_T_7;
    227. end
    228. if (reset) begin
    229. Xns_9 <= 32'sh0;
    230. end else if (Yns_8[31]) begin
    231. Xns_9 <= _Xns_9_T_3;
    232. end else begin
    233. Xns_9 <= _Xns_9_T_7;
    234. end
    235. if (reset) begin
    236. Yns_0 <= 32'sh0;
    237. end else begin
    238. Yns_0 <= _Yns_0_T_7;
    239. end
    240. if (reset) begin
    241. Yns_1 <= 32'sh0;
    242. end else if (Yns_0[31]) begin
    243. Yns_1 <= _Yns_1_T_3;
    244. end else begin
    245. Yns_1 <= _Yns_1_T_7;
    246. end
    247. if (reset) begin
    248. Yns_2 <= 32'sh0;
    249. end else if (Yns_1[31]) begin
    250. Yns_2 <= _Yns_2_T_3;
    251. end else begin
    252. Yns_2 <= _Yns_2_T_7;
    253. end
    254. if (reset) begin
    255. Yns_3 <= 32'sh0;
    256. end else if (Yns_2[31]) begin
    257. Yns_3 <= _Yns_3_T_3;
    258. end else begin
    259. Yns_3 <= _Yns_3_T_7;
    260. end
    261. if (reset) begin
    262. Yns_4 <= 32'sh0;
    263. end else if (Yns_3[31]) begin
    264. Yns_4 <= _Yns_4_T_3;
    265. end else begin
    266. Yns_4 <= _Yns_4_T_7;
    267. end
    268. if (reset) begin
    269. Yns_5 <= 32'sh0;
    270. end else if (Yns_4[31]) begin
    271. Yns_5 <= _Yns_5_T_3;
    272. end else begin
    273. Yns_5 <= _Yns_5_T_7;
    274. end
    275. if (reset) begin
    276. Yns_6 <= 32'sh0;
    277. end else if (Yns_5[31]) begin
    278. Yns_6 <= _Yns_6_T_3;
    279. end else begin
    280. Yns_6 <= _Yns_6_T_7;
    281. end
    282. if (reset) begin
    283. Yns_7 <= 32'sh0;
    284. end else if (Yns_6[31]) begin
    285. Yns_7 <= _Yns_7_T_3;
    286. end else begin
    287. Yns_7 <= _Yns_7_T_7;
    288. end
    289. if (reset) begin
    290. Yns_8 <= 32'sh0;
    291. end else if (Yns_7[31]) begin
    292. Yns_8 <= _Yns_8_T_3;
    293. end else begin
    294. Yns_8 <= _Yns_8_T_7;
    295. end
    296. if (reset) begin
    297. Zns_0 <= 32'sh0;
    298. end else if (io_inY[31]) begin
    299. Zns_0 <= _Zns_0_T_3;
    300. end else begin
    301. Zns_0 <= 32'shc910;
    302. end
    303. if (reset) begin
    304. Zns_1 <= 32'sh0;
    305. end else if (Yns_0[31]) begin
    306. Zns_1 <= _Zns_1_T_2;
    307. end else begin
    308. Zns_1 <= _Zns_1_T_5;
    309. end
    310. if (reset) begin
    311. Zns_2 <= 32'sh0;
    312. end else if (Yns_1[31]) begin
    313. Zns_2 <= _Zns_2_T_2;
    314. end else begin
    315. Zns_2 <= _Zns_2_T_5;
    316. end
    317. if (reset) begin
    318. Zns_3 <= 32'sh0;
    319. end else if (Yns_2[31]) begin
    320. Zns_3 <= _Zns_3_T_2;
    321. end else begin
    322. Zns_3 <= _Zns_3_T_5;
    323. end
    324. if (reset) begin
    325. Zns_4 <= 32'sh0;
    326. end else if (Yns_3[31]) begin
    327. Zns_4 <= _Zns_4_T_2;
    328. end else begin
    329. Zns_4 <= _Zns_4_T_5;
    330. end
    331. if (reset) begin
    332. Zns_5 <= 32'sh0;
    333. end else if (Yns_4[31]) begin
    334. Zns_5 <= _Zns_5_T_2;
    335. end else begin
    336. Zns_5 <= _Zns_5_T_5;
    337. end
    338. if (reset) begin
    339. Zns_6 <= 32'sh0;
    340. end else if (Yns_5[31]) begin
    341. Zns_6 <= _Zns_6_T_2;
    342. end else begin
    343. Zns_6 <= _Zns_6_T_5;
    344. end
    345. if (reset) begin
    346. Zns_7 <= 32'sh0;
    347. end else if (Yns_6[31]) begin
    348. Zns_7 <= _Zns_7_T_2;
    349. end else begin
    350. Zns_7 <= _Zns_7_T_5;
    351. end
    352. if (reset) begin
    353. Zns_8 <= 32'sh0;
    354. end else if (Yns_7[31]) begin
    355. Zns_8 <= _Zns_8_T_2;
    356. end else begin
    357. Zns_8 <= _Zns_8_T_5;
    358. end
    359. if (reset) begin
    360. Zns_9 <= 32'sh0;
    361. end else if (Yns_8[31]) begin
    362. Zns_9 <= _Zns_9_T_2;
    363. end else begin
    364. Zns_9 <= _Zns_9_T_5;
    365. end
    366. end
    367. `ifdef RANDOMIZE_GARBAGE_ASSIGN
    368. `define RANDOMIZE
    369. `endif
    370. `ifdef RANDOMIZE_INVALID_ASSIGN
    371. `define RANDOMIZE
    372. `endif
    373. `ifdef RANDOMIZE_REG_INIT
    374. `define RANDOMIZE
    375. `endif
    376. `ifdef RANDOMIZE_MEM_INIT
    377. `define RANDOMIZE
    378. `endif
    379. `ifndef RANDOM
    380. `define RANDOM $random
    381. `endif
    382. `ifdef RANDOMIZE_MEM_INIT
    383. integer initvar;
    384. `endif
    385. `ifndef SYNTHESIS
    386. `ifdef FIRRTL_BEFORE_INITIAL
    387. `FIRRTL_BEFORE_INITIAL
    388. `endif
    389. initial begin
    390. `ifdef RANDOMIZE
    391. `ifdef INIT_RANDOM
    392. `INIT_RANDOM
    393. `endif
    394. `ifndef VERILATOR
    395. `ifdef RANDOMIZE_DELAY
    396. #`RANDOMIZE_DELAY begin end
    397. `else
    398. #0.002 begin end
    399. `endif
    400. `endif
    401. `ifdef RANDOMIZE_REG_INIT
    402. _RAND_0 = {1{`RANDOM}};
    403. Xns_0 = _RAND_0[31:0];
    404. _RAND_1 = {1{`RANDOM}};
    405. Xns_1 = _RAND_1[31:0];
    406. _RAND_2 = {1{`RANDOM}};
    407. Xns_2 = _RAND_2[31:0];
    408. _RAND_3 = {1{`RANDOM}};
    409. Xns_3 = _RAND_3[31:0];
    410. _RAND_4 = {1{`RANDOM}};
    411. Xns_4 = _RAND_4[31:0];
    412. _RAND_5 = {1{`RANDOM}};
    413. Xns_5 = _RAND_5[31:0];
    414. _RAND_6 = {1{`RANDOM}};
    415. Xns_6 = _RAND_6[31:0];
    416. _RAND_7 = {1{`RANDOM}};
    417. Xns_7 = _RAND_7[31:0];
    418. _RAND_8 = {1{`RANDOM}};
    419. Xns_8 = _RAND_8[31:0];
    420. _RAND_9 = {1{`RANDOM}};
    421. Xns_9 = _RAND_9[31:0];
    422. _RAND_10 = {1{`RANDOM}};
    423. Yns_0 = _RAND_10[31:0];
    424. _RAND_11 = {1{`RANDOM}};
    425. Yns_1 = _RAND_11[31:0];
    426. _RAND_12 = {1{`RANDOM}};
    427. Yns_2 = _RAND_12[31:0];
    428. _RAND_13 = {1{`RANDOM}};
    429. Yns_3 = _RAND_13[31:0];
    430. _RAND_14 = {1{`RANDOM}};
    431. Yns_4 = _RAND_14[31:0];
    432. _RAND_15 = {1{`RANDOM}};
    433. Yns_5 = _RAND_15[31:0];
    434. _RAND_16 = {1{`RANDOM}};
    435. Yns_6 = _RAND_16[31:0];
    436. _RAND_17 = {1{`RANDOM}};
    437. Yns_7 = _RAND_17[31:0];
    438. _RAND_18 = {1{`RANDOM}};
    439. Yns_8 = _RAND_18[31:0];
    440. _RAND_19 = {1{`RANDOM}};
    441. Zns_0 = _RAND_19[31:0];
    442. _RAND_20 = {1{`RANDOM}};
    443. Zns_1 = _RAND_20[31:0];
    444. _RAND_21 = {1{`RANDOM}};
    445. Zns_2 = _RAND_21[31:0];
    446. _RAND_22 = {1{`RANDOM}};
    447. Zns_3 = _RAND_22[31:0];
    448. _RAND_23 = {1{`RANDOM}};
    449. Zns_4 = _RAND_23[31:0];
    450. _RAND_24 = {1{`RANDOM}};
    451. Zns_5 = _RAND_24[31:0];
    452. _RAND_25 = {1{`RANDOM}};
    453. Zns_6 = _RAND_25[31:0];
    454. _RAND_26 = {1{`RANDOM}};
    455. Zns_7 = _RAND_26[31:0];
    456. _RAND_27 = {1{`RANDOM}};
    457. Zns_8 = _RAND_27[31:0];
    458. _RAND_28 = {1{`RANDOM}};
    459. Zns_9 = _RAND_28[31:0];
    460. `endif
    461. `endif
    462. end
    463. `ifdef FIRRTL_AFTER_INITIAL
    464. `FIRRTL_AFTER_INITIAL
    465. `endif
    466. `endif
    467. endmodule

     

  • 相关阅读:
    《算法通关之路》chapter17一些通用解题模板
    房地产中介信息管理系统平台源码开发解决方案
    用户社交信息交互卡片
    linux安装SSH
    玩转 GPT4All
    Java Web编程入门--spring boot + shiro
    无人机镜头稳定的原理和相关算法
    JVM学习笔记
    智能交通信号灯控制策略
    计算机Java项目|基于SpringBoot的飘香水果购物网站
  • 原文地址:https://blog.csdn.net/qq_16069457/article/details/125548174