Quellcode durchsuchen

encoder_forzen_bit_insertion_v1

master
vikram vor 3 Jahren
Commit
7d857bf084
10 geänderte Dateien mit 1940 neuen und 0 gelöschten Zeilen
  1. +86
    -0
      sim_1/imports/Downloads/encoder_frozen_bit_insertion_tb_1.sv
  2. +513
    -0
      sources_1/imports/Downloads/encoder_frozen_bit_insertion_rtl_1.sv
  3. +75
    -0
      sources_1/new/Relbty_seq32.v
  4. +62
    -0
      sources_1/new/lenght_match2out.v
  5. +45
    -0
      sources_1/new/rel_seq_cntr.v
  6. +172
    -0
      sources_1/new/relt_seq_128.v
  7. +297
    -0
      sources_1/new/relt_seq_256.v
  8. +26
    -0
      sources_1/new/relt_seq_32.v
  9. +553
    -0
      sources_1/new/relt_seq_512.v
  10. +111
    -0
      sources_1/new/relt_seq_64.v

+ 86
- 0
sim_1/imports/Downloads/encoder_frozen_bit_insertion_tb_1.sv Datei anzeigen

@@ -0,0 +1,86 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: BITSILICA PRIVATE LIMITED
// Engineer: ABHIGNA.B
//
// Create Date: 19/02/2021 10:47:19 AM
// Design Name: ENCODER FROZEN BIT INSERTION
// Module Name: encoder_frozen_bit_insertion_tb
// Project Name: POLAR ENCODER-DECODER
// Target Devices: Zynq UltraScale+ ZCU111 Evaluation Platform (xczu28dr-ffvg1517-2-e)
// Tool Versions: VIVADO 2020.1
// Description: TB code to verify RTL for inserting frozen bits into message, according to given reliability sequence.
//
// Dependencies:
//
// Revision:2.0
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////

// encoder_frozen_bit_insertion_tb is written to verify encoder_frozen_bit_insertion_rtl
module encoder_frozen_bit_insertion_tb();

parameter N = 32; //12; // length of information+CRC+Frozen bits
parameter K = 16; //4; // length of information+CRC bits
reg clock_i = 1'b0; // system clock
reg reset_ni = 1'b1; // active low synchronous reset
reg [9:0]N_in;
reg [8:0]K_in;
reg [K-1:0] msg_i; // input information+CRC bits
//wire [9:0] pc_pos1_o,pc_pos2_o,pc_pos3_o; // first, second, third positions to insert parity check bits
wire [N-1:0] msg_o; // information+CRC+frozen bits

wire [9:0] index_out32;
wire [9:0] index_out64;
wire [9:0] index_out128;
wire [9:0] index_out256;
wire [9:0] index_out512;
wire [511:0]msg_1_out;
// Instantiating and connecting the design module with test bench
encoder_frozen_bit_insertion_rtl #(
.N(N),
.K(K)
)DUT(
.clock_i(clock_i),
.reset_ni(reset_ni),
.msg_i(msg_i),
.N_in (N_in),
.K_in (K_in),
//.pc_pos1_o(pc_pos1_o),
//.pc_pos2_o(pc_pos2_o),
//.pc_pos3_o(pc_pos3_o),
. msg_o(msg_o),
//. index_out32 ( index_out32),
. index_out64(index_out64),
. index_out128(index_out128),
. index_out256(index_out256),
. index_out512(index_out512),
.msg_1_out(msg_1_out) );
always #2.03 clock_i = !clock_i; // clock generation

initial begin
@(negedge clock_i); // waiting for the negedge of clock_i
reset_ni = 'd0; // activating the reset_ni
@(negedge clock_i);
reset_ni = 'd1; // deactivating the reset_ni
N_in = 'd32;
K_in = 'd16;
@(negedge clock_i);
msg_i = 'hC8F5; //aaaabbbbccccddddaaaabbbbccccddddeeeeffff111122223333444455556666; // applying inputs to the DUT
#74
@(negedge clock_i);
msg_i = 'hACF5; //'h3;
//reset_ni = 'd0;
@(negedge clock_i);
msg_i = 'h9C83; //4'b1101;
#30 $finish;
end
endmodule



+ 513
- 0
sources_1/imports/Downloads/encoder_frozen_bit_insertion_rtl_1.sv Datei anzeigen

@@ -0,0 +1,513 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: BITSILICA PRIVATE LIMITED
// Engineer: ABHIGNA.B
//
// Create Date: 19/02/2021 10:47:19 AM
// Design Name: ENCODER FROZEN BIT INSERTION
// Module Name: encoder_frozen_bit_insertion_rtl
// Project Name: POLAR ENCODER-DECODER
// Target Devices: Zynq UltraScale+ ZCU111 Evaluation Platform (xczu28dr-ffvg1517-2-e)
// Tool Versions: VIVADO 2020.1
// Description: RTL code for inserting frozen bits into information, according to given reliability sequence.
//
// Dependencies:
//
// Revision:2.0
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////

// encoder_frozen_bit_insertion_rtl is written to insert frozen bits in between information bits, according to reliability sequence
module encoder_frozen_bit_insertion_rtl#(
parameter N = 32, //128, // length of information+CRC+Frozen bits
parameter K = 16 //64 // length of information+CRC bits
) (
input wire clock_i, // system clock
input wire reset_ni, // active low synchronous reset
input wire [9:0]N_in,
input wire [8:0]K_in,
input wire [K-1:0] msg_i, // input information+CRC bits
//output reg [9:0] pc_pos1_o, // first position to insert parity check bit
// output reg [9:0] pc_pos2_o, // second position to insert parity check bit
//output reg [9:0] pc_pos3_o, // third position to insert parity check bit
output reg [N-1:0] msg_o, // information+CRC+frozen bits
// output reg [9:0]index_out32,
output reg [9:0]index_out64,
output reg [9:0]index_out128,
output reg [9:0]index_out256,
output reg [9:0]index_out512,
output reg [511:0]msg_1_out
);

reg [9:0] pc_pos1_1, pc_pos2_1, pc_pos3_1; // internal registers to hold the parity check bit postions
reg [N-1:0] msg_1; // internal register to hold the output of frozen bit insertion
int i,j,k='d0,p='d0,q='d0,x='d0; // looping variables

reg [9:0]frz_pos[N-1:0]; // internal register to store reliability sequence depending on N value
reg [4:0]rel_seq_enable;
reg [9:0] addrs_cntr;
//reg rel_seq_enable;
reg rel_seq_en_dly,rel_seq_en_dly1;
wire [9:0]index_out32;
reg [9:0]index_out32_dly;
wire [8:0]indx_K;
// storing the frozen locations in rel_seq array (reliability in ascending order)
/*reg [9:0]rel_seq[1023:0] = '{ 10'd0 , 10'd1 , 10'd2 , 10'd4 , 10'd8 , 10'd16 , 10'd32 , 10'd3 , 10'd5 , 10'd64 , 10'd9 ,
10'd6 , 10'd17 , 10'd10 , 10'd18 , 10'd128 , 10'd12 , 10'd33 , 10'd65 , 10'd20 , 10'd256 , 10'd34 , 10'd24 , 10'd36 ,
10'd7 , 10'd129 , 10'd66 , 10'd512 , 10'd11 , 10'd40 , 10'd68 , 10'd130 , 10'd19 , 10'd13 , 10'd48 , 10'd14 , 10'd72 ,
10'd257 , 10'd21 , 10'd132 , 10'd35 , 10'd258 , 10'd26 , 10'd513 , 10'd80 , 10'd37 , 10'd25 , 10'd22 , 10'd136 ,10'd260 ,
10'd264 , 10'd38 , 10'd514 , 10'd96 , 10'd67 , 10'd41 , 10'd144 , 10'd28 , 10'd69 , 10'd42 , 10'd516 ,10'd49 , 10'd74 ,
10'd272 , 10'd160 , 10'd520 , 10'd288 , 10'd528 , 10'd192 , 10'd544 , 10'd70 , 10'd44 , 10'd131 ,10'd81 , 10'd50 , 10'd73 ,
10'd15 , 10'd320 , 10'd133 , 10'd52 , 10'd23 , 10'd134 , 10'd384 , 10'd76 , 10'd137 ,10'd82 , 10'd56 , 10'd27 , 10'd97 ,
10'd39 , 10'd259 , 10'd84 , 10'd138 , 10'd145 , 10'd261 , 10'd29 , 10'd43 , 10'd98 , 10'd515 , 10'd88 , 10'd140 , 10'd30 ,
10'd146 , 10'd71 , 10'd262 , 10'd265 , 10'd161 , 10'd576 , 10'd45 ,10'd100 , 10'd640 , 10'd51 , 10'd148 , 10'd46 , 10'd75 ,
10'd266 , 10'd273 , 10'd517 , 10'd104 , 10'd162 , 10'd53 ,10'd193 , 10'd152 , 10'd77 , 10'd164 , 10'd768 , 10'd268 , 10'd274 ,
10'd518 , 10'd54 , 10'd83 , 10'd57 , 10'd521 ,10'd112 , 10'd135 , 10'd78 , 10'd289 , 10'd194 , 10'd85 , 10'd276 , 10'd522 ,
10'd58 , 10'd168 , 10'd139 , 10'd99 ,10'd86 , 10'd60 , 10'd280 , 10'd89 , 10'd290 , 10'd529 , 10'd524 , 10'd196 , 10'd141 ,
10'd101 , 10'd147 , 10'd176 , 10'd142 , 10'd530 , 10'd321 , 10'd31 , 10'd200 , 10'd90 , 10'd545 , 10'd292 , 10'd322 , 10'd532 ,
10'd263 , 10'd149 , 10'd102 , 10'd105 , 10'd304 , 10'd296 , 10'd163 , 10'd92 , 10'd47 , 10'd267 , 10'd385 , 10'd546 , 10'd324 ,
10'd208 , 10'd386 , 10'd150 , 10'd153 , 10'd165 , 10'd106 , 10'd55 , 10'd328 , 10'd536 , 10'd577 , 10'd548 , 10'd113 , 10'd154 ,
10'd79 , 10'd269 , 10'd108 , 10'd578 , 10'd224 , 10'd166 , 10'd519 ,10'd552 , 10'd195 , 10'd270 , 10'd641 , 10'd523 , 10'd275 ,
10'd580 , 10'd291 , 10'd59 , 10'd169 , 10'd560 , 10'd114 , 10'd277 , 10'd156 , 10'd87 , 10'd197 , 10'd116 , 10'd170 , 10'd61 ,
10'd531 , 10'd525 , 10'd642 , 10'd281 , 10'd278 , 10'd526 , 10'd177 , 10'd293 , 10'd388 , 10'd91 , 10'd584 , 10'd769 , 10'd198 ,
10'd172 , 10'd120 , 10'd201 , 10'd336 , 10'd62 , 10'd282 , 10'd143 , 10'd103 , 10'd178 , 10'd294 , 10'd93 , 10'd644 , 10'd202 ,
10'd592 , 10'd323 , 10'd392 , 10'd297 , 10'd770 , 10'd107 , 10'd180 , 10'd151 , 10'd209 , 10'd284 , 10'd648 , 10'd94 , 10'd204 ,
10'd298 , 10'd400 , 10'd608 , 10'd352 , 10'd325 , 10'd533 , 10'd155 , 10'd210 , 10'd305 , 10'd547 , 10'd300 , 10'd109 , 10'd184 ,
10'd534 , 10'd537 , 10'd115 , 10'd167 , 10'd225 , 10'd326 , 10'd306 , 10'd772 , 10'd157 , 10'd656 , 10'd329 , 10'd110 , 10'd117 ,
10'd212 , 10'd171 , 10'd776 , 10'd330 , 10'd226 , 10'd549 , 10'd538 , 10'd387 , 10'd308 , 10'd216 , 10'd416 , 10'd271 , 10'd279 ,
10'd158 , 10'd337 , 10'd550 , 10'd672 , 10'd118 , 10'd332 , 10'd579 , 10'd540 , 10'd389 , 10'd173 , 10'd121 , 10'd553 , 10'd199 ,
10'd784 , 10'd179 , 10'd228 , 10'd338 , 10'd312 , 10'd704 , 10'd390 , 10'd174 , 10'd554 , 10'd581 , 10'd393 , 10'd283 , 10'd122 ,
10'd448 , 10'd353 , 10'd561 , 10'd203 , 10'd63 , 10'd340 , 10'd394 , 10'd527 , 10'd582 , 10'd556 , 10'd181 , 10'd295 , 10'd285 ,
10'd232 , 10'd124 , 10'd205 , 10'd182 , 10'd643 , 10'd562 , 10'd286 , 10'd585 , 10'd299 , 10'd354 , 10'd211 , 10'd401 , 10'd185 ,
10'd396 , 10'd344 , 10'd586 , 10'd645 , 10'd593 , 10'd535 , 10'd240 , 10'd206 , 10'd95 , 10'd327 , 10'd564 , 10'd800 , 10'd402 ,
10'd356 , 10'd307 , 10'd301 , 10'd417 , 10'd213 , 10'd568 , 10'd832 , 10'd588 , 10'd186 , 10'd646 , 10'd404 , 10'd227 , 10'd896 ,
10'd594 , 10'd418 , 10'd302 , 10'd649 , 10'd771 , 10'd360 , 10'd539 , 10'd111 , 10'd331 , 10'd214 , 10'd309 , 10'd188 , 10'd449 ,
10'd217 , 10'd408 , 10'd609 , 10'd596 , 10'd551 , 10'd650 , 10'd229 , 10'd159 , 10'd420 , 10'd310 , 10'd541 , 10'd773 , 10'd610 ,
10'd657 , 10'd333 , 10'd119 , 10'd600 , 10'd339 , 10'd218 , 10'd368 , 10'd652 , 10'd230 , 10'd391 , 10'd313 , 10'd450 , 10'd542 ,
10'd334 , 10'd233 , 10'd555 , 10'd774 , 10'd175 , 10'd123 , 10'd658 , 10'd612 , 10'd341 , 10'd777 , 10'd220 , 10'd314 , 10'd424 ,
10'd395 , 10'd673 , 10'd583 , 10'd355 , 10'd287 , 10'd183 , 10'd234 , 10'd125 , 10'd557 , 10'd660 , 10'd616 , 10'd342 , 10'd316 ,
10'd241 , 10'd778 , 10'd563 , 10'd345 , 10'd452 , 10'd397 , 10'd403 , 10'd207 , 10'd674 , 10'd558 , 10'd785 , 10'd432 , 10'd357 ,
10'd187 , 10'd236 , 10'd664 , 10'd624 , 10'd587 , 10'd780 , 10'd705 , 10'd126 , 10'd242 , 10'd565 , 10'd398 , 10'd346 , 10'd456 ,
10'd358 , 10'd405 , 10'd303 , 10'd569 , 10'd244 , 10'd595 , 10'd189 , 10'd566 , 10'd676 , 10'd361 , 10'd706 , 10'd589 , 10'd215 ,
10'd786 , 10'd647 , 10'd348 , 10'd419 , 10'd406 , 10'd464 , 10'd680 , 10'd801 , 10'd362 , 10'd590 , 10'd409 , 10'd570 , 10'd788 ,
10'd597 , 10'd572 , 10'd219 , 10'd311 , 10'd708 , 10'd598 , 10'd601 , 10'd651 , 10'd421 , 10'd792 , 10'd802 , 10'd611 , 10'd602 ,
10'd410 , 10'd231 , 10'd688 , 10'd653 , 10'd248 , 10'd369 , 10'd190 , 10'd364 , 10'd654 , 10'd659 , 10'd335 , 10'd480 , 10'd315 ,
10'd221 , 10'd370 , 10'd613 , 10'd422 , 10'd425 , 10'd451 , 10'd614 , 10'd543 , 10'd235 , 10'd412 , 10'd343 , 10'd372 , 10'd775 ,
10'd317 , 10'd222 , 10'd426 , 10'd453 , 10'd237 , 10'd559 , 10'd833 , 10'd804 , 10'd712 , 10'd834 , 10'd661 , 10'd808 , 10'd779 ,
10'd617 , 10'd604 , 10'd433 , 10'd720 , 10'd816 , 10'd836 , 10'd347 , 10'd897 , 10'd243 , 10'd662 , 10'd454 , 10'd318 , 10'd675 ,
10'd618 , 10'd898 , 10'd781 , 10'd376 , 10'd428 , 10'd665 , 10'd736 , 10'd567 , 10'd840 , 10'd625 , 10'd238 , 10'd359 , 10'd457 ,
10'd399 , 10'd787 , 10'd591 , 10'd678 , 10'd434 , 10'd677 , 10'd349 , 10'd245 , 10'd458 , 10'd666 , 10'd620 , 10'd363 , 10'd127 ,
10'd191 , 10'd782 , 10'd407 , 10'd436 , 10'd626 , 10'd571 , 10'd465 , 10'd681 , 10'd246 , 10'd707 , 10'd350 , 10'd599 , 10'd668 ,
10'd790 , 10'd460 , 10'd249 , 10'd682 , 10'd573 , 10'd411 , 10'd803 , 10'd789 , 10'd709 , 10'd365 , 10'd440 , 10'd628 , 10'd689 ,
10'd374 , 10'd423 , 10'd466 , 10'd793 , 10'd250 , 10'd371 , 10'd481 , 10'd574 , 10'd413 , 10'd603 , 10'd366 , 10'd468 , 10'd655 ,
10'd900 , 10'd805 , 10'd615 , 10'd684 , 10'd710 , 10'd429 , 10'd794 , 10'd252 , 10'd373 , 10'd605 , 10'd848 , 10'd690 , 10'd713 ,
10'd632 , 10'd482 , 10'd806 , 10'd427 , 10'd904 , 10'd414 , 10'd223 , 10'd663 , 10'd692 , 10'd835 , 10'd619 , 10'd472 , 10'd455 ,
10'd796 , 10'd809 , 10'd714 , 10'd721 , 10'd837 , 10'd716 , 10'd864 , 10'd810 , 10'd606 , 10'd912 , 10'd722 , 10'd696 , 10'd377 ,
10'd435 , 10'd817 , 10'd319 , 10'd621 , 10'd812 , 10'd484 , 10'd430 , 10'd838 , 10'd667 , 10'd488 , 10'd239 , 10'd378 , 10'd459 ,
10'd622 , 10'd627 , 10'd437 , 10'd380 , 10'd818 , 10'd461 , 10'd496 , 10'd669 , 10'd679 , 10'd724 , 10'd841 , 10'd629 , 10'd351 ,
10'd467 , 10'd438 , 10'd737 , 10'd251 , 10'd462 , 10'd442 , 10'd441 , 10'd469 , 10'd247 , 10'd683 , 10'd842 , 10'd738 , 10'd899 ,
10'd670 , 10'd783 , 10'd849 , 10'd820 , 10'd728 , 10'd928 , 10'd791 , 10'd367 , 10'd901 , 10'd630 , 10'd685 , 10'd844 , 10'd633 ,
10'd711 , 10'd253 , 10'd691 , 10'd824 , 10'd902 , 10'd686 , 10'd740 , 10'd850 , 10'd375 , 10'd444 , 10'd470 , 10'd483 , 10'd415 ,
10'd485 , 10'd905 , 10'd795 , 10'd473 , 10'd634 , 10'd744 , 10'd852 , 10'd960 , 10'd865 , 10'd693 , 10'd797 , 10'd906 , 10'd715 ,
10'd807 , 10'd474 , 10'd636 , 10'd694 , 10'd254 , 10'd717 , 10'd575 , 10'd913 , 10'd798 , 10'd811 , 10'd379 , 10'd697 , 10'd431 ,
10'd607 , 10'd489 , 10'd866 , 10'd723 , 10'd486 , 10'd908 , 10'd718 , 10'd813 , 10'd476 , 10'd856 , 10'd839 , 10'd725 , 10'd698 ,
10'd914 , 10'd752 , 10'd868 , 10'd819 , 10'd814 , 10'd439 , 10'd929 , 10'd490 , 10'd623 , 10'd671 , 10'd739 , 10'd916 , 10'd463 ,
10'd843 , 10'd381 , 10'd497 , 10'd930 , 10'd821 , 10'd726 , 10'd961 , 10'd872 , 10'd492 , 10'd631 , 10'd729 , 10'd700 , 10'd443 ,
10'd741 , 10'd845 , 10'd920 , 10'd382 , 10'd822 , 10'd851 , 10'd730 , 10'd498 , 10'd880 , 10'd742 , 10'd445 , 10'd471 , 10'd635 ,
10'd932 , 10'd687 , 10'd903 , 10'd825 , 10'd500 , 10'd846 , 10'd745 , 10'd826 , 10'd732 , 10'd446 , 10'd962 , 10'd936 , 10'd475 ,
10'd853 , 10'd867 , 10'd637 , 10'd907 , 10'd487 , 10'd695 , 10'd746 , 10'd828 , 10'd753 , 10'd854 , 10'd857 , 10'd504 , 10'd799 ,
10'd255 , 10'd964 , 10'd909 , 10'd719 , 10'd477 , 10'd915 , 10'd638 , 10'd748 , 10'd944 , 10'd869 , 10'd491 , 10'd699 , 10'd754 ,
10'd858 , 10'd478 , 10'd968 , 10'd383 , 10'd910 , 10'd815 , 10'd976 , 10'd870 , 10'd917 , 10'd727 , 10'd493 , 10'd873 , 10'd701 ,
10'd931 , 10'd756 , 10'd860 , 10'd499 , 10'd731 , 10'd823 , 10'd922 , 10'd874 , 10'd918 , 10'd502 , 10'd933 , 10'd743 , 10'd760 ,
10'd881 , 10'd494 , 10'd702 , 10'd921 , 10'd501 , 10'd876 , 10'd847 , 10'd992 , 10'd447 , 10'd733 , 10'd827 , 10'd934 , 10'd882 ,
10'd937 , 10'd963 , 10'd747 , 10'd505 , 10'd855 , 10'd924 , 10'd734 , 10'd829 , 10'd965 , 10'd938 , 10'd884 , 10'd506 , 10'd749 ,
10'd945 , 10'd966 , 10'd755 , 10'd859 , 10'd940 , 10'd830 , 10'd911 , 10'd871 , 10'd639 , 10'd888 , 10'd479 , 10'd946 , 10'd750 ,
10'd969 , 10'd508 , 10'd861 , 10'd757 , 10'd970 , 10'd919 , 10'd875 , 10'd862 , 10'd758 , 10'd948 , 10'd977 , 10'd923 , 10'd972 ,
10'd761 , 10'd877 , 10'd952 , 10'd495 , 10'd703 , 10'd935 , 10'd978 , 10'd883 , 10'd762 , 10'd503 , 10'd925 , 10'd878 , 10'd735 ,
10'd993 , 10'd885 , 10'd939 , 10'd994 , 10'd980 , 10'd926 , 10'd764 , 10'd941 , 10'd967 , 10'd886 , 10'd831 , 10'd947 , 10'd507 ,
10'd889 , 10'd984 , 10'd751 , 10'd942 , 10'd996 , 10'd971 , 10'd890 , 10'd509 , 10'd949 , 10'd973 , 10'd1000 , 10'd892 , 10'd950 ,
10'd863 , 10'd759 , 10'd1008 , 10'd510 , 10'd979 , 10'd953 , 10'd763 , 10'd974 , 10'd954 , 10'd879 , 10'd981 , 10'd982 , 10'd927 ,
10'd995 , 10'd765 , 10'd956 , 10'd887 , 10'd985 , 10'd997 , 10'd986 , 10'd943 , 10'd891 , 10'd998 , 10'd766 , 10'd511 , 10'd988 ,
10'd1001 , 10'd951 , 10'd1002 , 10'd893 , 10'd975 , 10'd894 , 10'd1009 , 10'd955 , 10'd1004 , 10'd1010 , 10'd957 , 10'd983 , 10'd958 ,
10'd987 , 10'd1012 , 10'd999 , 10'd1016 , 10'd767 , 10'd989 , 10'd1003 , 10'd990 , 10'd1005 , 10'd959 , 10'd1011 , 10'd1013 , 10'd895 ,
10'd1006 , 10'd1014 , 10'd1017 , 10'd1018 , 10'd991 , 10'd1020 , 10'd1007 , 10'd1015 , 10'd1019 , 10'd1021 , 10'd1022 , 10'd1023 };*/
// storing the frozen locations in rel_seq array (reliability in descending order)
/* reg [9:0]rel_seq[1023:0] =
'{ 10'd1023, 10'd1022 , 10'd1021 , 10'd1019 , 10'd1015 , 10'd1007 , 10'd1020 , 10'd991 , 10'd1018 , 10'd1017 , 10'd1014 , 10'd1006 ,
10'd895 , 10'd1013 , 10'd1011 , 10'd959 , 10'd1005 , 10'd990 , 10'd1003 , 10'd989 , 10'd767 , 10'd1016 , 10'd999 , 10'd1012 ,
10'd987 , 10'd958 , 10'd983 , 10'd957 , 10'd1010 , 10'd1004 , 10'd955 , 10'd1009 , 10'd894 , 10'd975 , 10'd893 , 10'd1002 , 10'd951 ,
10'd1001 , 10'd988 , 10'd511 , 10'd766 , 10'd998 , 10'd891 , 10'd943 , 10'd986 , 10'd997 , 10'd985 , 10'd887 , 10'd956 , 10'd765 ,
10'd995 , 10'd927 , 10'd982 , 10'd981 , 10'd879 , 10'd954 , 10'd974 , 10'd763 , 10'd953 , 10'd979 , 10'd510 , 10'd1008 , 10'd759 ,
10'd863 , 10'd950 , 10'd892 , 10'd1000 , 10'd973 , 10'd949 , 10'd509 , 10'd890 , 10'd971 , 10'd996 , 10'd942 , 10'd751 , 10'd984 ,
10'd889 , 10'd507 , 10'd947 , 10'd831 , 10'd886 , 10'd967 , 10'd941 , 10'd764 , 10'd926 , 10'd980 , 10'd994 , 10'd939 , 10'd885 ,
10'd993 , 10'd735 , 10'd878 , 10'd925 , 10'd503 , 10'd762 , 10'd883 , 10'd978 , 10'd935 , 10'd703 , 10'd495 , 10'd952 , 10'd877 ,
10'd761 , 10'd972 , 10'd923 , 10'd977 , 10'd948 , 10'd758 , 10'd862 , 10'd875 , 10'd919 , 10'd970 , 10'd757 , 10'd861 , 10'd508 ,
10'd969 , 10'd750 , 10'd946 , 10'd479 , 10'd888 , 10'd639 , 10'd871 , 10'd911 , 10'd830 , 10'd940 , 10'd859 , 10'd755 , 10'd966 ,
10'd945 , 10'd749 , 10'd506 , 10'd884 , 10'd938 , 10'd965 , 10'd829 , 10'd734 , 10'd924 , 10'd855 , 10'd505 , 10'd747 , 10'd963 ,
10'd937 , 10'd882 , 10'd934 , 10'd827 , 10'd733 , 10'd447 , 10'd992 , 10'd847 , 10'd876 , 10'd501 , 10'd921 , 10'd702 , 10'd494 ,
10'd881 , 10'd760 , 10'd743 , 10'd933 , 10'd502 , 10'd918 , 10'd874 , 10'd922 , 10'd823 , 10'd731 , 10'd499 , 10'd860 , 10'd756 ,
10'd931 , 10'd701 , 10'd873 , 10'd493 , 10'd727 , 10'd917 , 10'd870 , 10'd976 , 10'd815 , 10'd910 , 10'd383 , 10'd968 , 10'd478 ,
10'd858 , 10'd754 , 10'd699 , 10'd491 , 10'd869 , 10'd944 , 10'd748 , 10'd638 , 10'd915 , 10'd477 , 10'd719 , 10'd909 , 10'd964 ,
10'd255 , 10'd799 , 10'd504 , 10'd857 , 10'd854 , 10'd753 , 10'd828 , 10'd746 , 10'd695 , 10'd487 , 10'd907 , 10'd637 , 10'd867 ,
10'd853 , 10'd475 , 10'd936 , 10'd962 , 10'd446 , 10'd732 , 10'd826 , 10'd745 , 10'd846 , 10'd500 , 10'd825 , 10'd903 , 10'd687 ,
10'd932 , 10'd635 , 10'd471 , 10'd445 , 10'd742 , 10'd880 , 10'd498 , 10'd730 , 10'd851 , 10'd822 , 10'd382 , 10'd920 , 10'd845 ,
10'd741 , 10'd443 , 10'd700 , 10'd729 , 10'd631 , 10'd492 , 10'd872 , 10'd961 , 10'd726 , 10'd821 , 10'd930 , 10'd497 , 10'd381 ,
10'd843 , 10'd463 , 10'd916 , 10'd739 , 10'd671 , 10'd623 , 10'd490 , 10'd929 , 10'd439 , 10'd814 , 10'd819 , 10'd868 , 10'd752 ,
10'd914 , 10'd698 , 10'd725 , 10'd839 , 10'd856 , 10'd476 , 10'd813 , 10'd718 , 10'd908 , 10'd486 , 10'd723 , 10'd866 , 10'd489 ,
10'd607 , 10'd431 , 10'd697 , 10'd379 , 10'd811 , 10'd798 , 10'd913 , 10'd575 , 10'd717 , 10'd254 , 10'd694 , 10'd636 , 10'd474 ,
10'd807 , 10'd715 , 10'd906 , 10'd797 , 10'd693 , 10'd865 , 10'd960 , 10'd852 , 10'd744 , 10'd634 , 10'd473 , 10'd795 , 10'd905 ,
10'd485 , 10'd415 , 10'd483 , 10'd470 , 10'd444 , 10'd375 , 10'd850 , 10'd740 , 10'd686 , 10'd902 , 10'd824 , 10'd691 , 10'd253 ,
10'd711 , 10'd633 , 10'd844 , 10'd685 , 10'd630 , 10'd901 , 10'd367 , 10'd791 , 10'd928 , 10'd728 , 10'd820 , 10'd849 , 10'd783 ,
10'd670 , 10'd899 , 10'd738 , 10'd842 , 10'd683 , 10'd247 , 10'd469 , 10'd441 , 10'd442 , 10'd462 , 10'd251 , 10'd737 , 10'd438 ,
10'd467 , 10'd351 , 10'd629 , 10'd841 , 10'd724 , 10'd679 , 10'd669 , 10'd496 , 10'd461 , 10'd818 , 10'd380 , 10'd437 , 10'd627 ,
10'd622 , 10'd459 , 10'd378 , 10'd239 , 10'd488 , 10'd667 , 10'd838 , 10'd430 , 10'd484 , 10'd812 , 10'd621 , 10'd319 , 10'd817 ,
10'd435 , 10'd377 , 10'd696 , 10'd722 , 10'd912 , 10'd606 , 10'd810 , 10'd864 , 10'd716 , 10'd837 , 10'd721 , 10'd714 , 10'd809 ,
10'd796 , 10'd455 , 10'd472 , 10'd619 , 10'd835 , 10'd692 , 10'd663 , 10'd223 , 10'd414 , 10'd904 , 10'd427 , 10'd806 , 10'd482 ,
10'd632 , 10'd713 , 10'd690 , 10'd848 , 10'd605 , 10'd373 , 10'd252 , 10'd794 , 10'd429 , 10'd710 , 10'd684 , 10'd615 , 10'd805 ,
10'd900 , 10'd655 , 10'd468 , 10'd366 , 10'd603 , 10'd413 , 10'd574 , 10'd481 , 10'd371 , 10'd250 , 10'd793 , 10'd466 , 10'd423 ,
10'd374 , 10'd689 , 10'd628 , 10'd440 , 10'd365 , 10'd709 , 10'd789 , 10'd803 , 10'd411 , 10'd573 , 10'd682 , 10'd249 , 10'd460 ,
10'd790 , 10'd668 , 10'd599 , 10'd350 , 10'd707 , 10'd246 , 10'd681 , 10'd465 , 10'd571 , 10'd626 , 10'd436 , 10'd407 , 10'd782 ,
10'd191 , 10'd127 , 10'd363 , 10'd620 , 10'd666 , 10'd458 , 10'd245 , 10'd349 , 10'd677 , 10'd434 , 10'd678 , 10'd591 , 10'd787 ,
10'd399 , 10'd457 , 10'd359 , 10'd238 , 10'd625 , 10'd840 , 10'd567 , 10'd736 , 10'd665 , 10'd428 , 10'd376 , 10'd781 , 10'd898 ,
10'd618 , 10'd675 , 10'd318 , 10'd454 , 10'd662 , 10'd243 , 10'd897 , 10'd347 , 10'd836 , 10'd816 , 10'd720 , 10'd433 , 10'd604 ,
10'd617 , 10'd779 , 10'd808 , 10'd661 , 10'd834 , 10'd712 , 10'd804 , 10'd833 , 10'd559 , 10'd237 , 10'd453 , 10'd426 , 10'd222 ,
10'd317 , 10'd775 , 10'd372 , 10'd343 , 10'd412 , 10'd235 , 10'd543 , 10'd614 , 10'd451 , 10'd425 , 10'd422 , 10'd613 , 10'd370 ,
10'd221 , 10'd315 , 10'd480 , 10'd335 , 10'd659 , 10'd654 , 10'd364 , 10'd190 , 10'd369 , 10'd248 , 10'd653 , 10'd688 , 10'd231 ,
10'd410 , 10'd602 , 10'd611 , 10'd802 , 10'd792 , 10'd421 , 10'd651 , 10'd601 , 10'd598 , 10'd708 , 10'd311 , 10'd219 , 10'd572 ,
10'd597 , 10'd788 , 10'd570 , 10'd409 , 10'd590 , 10'd362 , 10'd801 , 10'd680 , 10'd464 , 10'd406 , 10'd419 , 10'd348 , 10'd647 ,
10'd786 , 10'd215 , 10'd589 , 10'd706 , 10'd361 , 10'd676 , 10'd566 , 10'd189 , 10'd595 , 10'd244 , 10'd569 , 10'd303 , 10'd405 ,
10'd358 , 10'd456 , 10'd346 , 10'd398 , 10'd565 , 10'd242 , 10'd126 , 10'd705 , 10'd780 , 10'd587 , 10'd624 , 10'd664 , 10'd236 ,
10'd187 , 10'd357 , 10'd432 , 10'd785 , 10'd558 , 10'd674 , 10'd207 , 10'd403 , 10'd397 , 10'd452 , 10'd345 , 10'd563 , 10'd778 ,
10'd241 , 10'd316 , 10'd342 , 10'd616 , 10'd660 , 10'd557 , 10'd125 , 10'd234 , 10'd183 , 10'd287 , 10'd355 , 10'd583 , 10'd673 ,
10'd395 , 10'd424 , 10'd314 , 10'd220 , 10'd777 , 10'd341 , 10'd612 , 10'd658 , 10'd123 , 10'd175 , 10'd774 , 10'd555 , 10'd233 ,
10'd334 , 10'd542 , 10'd450 , 10'd313 , 10'd391 , 10'd230 , 10'd652 , 10'd368 , 10'd218 , 10'd339 , 10'd600 , 10'd119 , 10'd333 ,
10'd657 , 10'd610 , 10'd773 , 10'd541 , 10'd310 , 10'd420 , 10'd159 , 10'd229 , 10'd650 , 10'd551 , 10'd596 , 10'd609 , 10'd408 ,
10'd217 , 10'd449 , 10'd188 , 10'd309 , 10'd214 , 10'd331 , 10'd111 , 10'd539 , 10'd360 , 10'd771 , 10'd649 , 10'd302 , 10'd418 ,
10'd594 , 10'd896 , 10'd227 , 10'd404 , 10'd646 , 10'd186 , 10'd588 , 10'd832 , 10'd568 , 10'd213 , 10'd417 , 10'd301 , 10'd307 ,
10'd356 , 10'd402 , 10'd800 , 10'd564 , 10'd327 , 10'd95 , 10'd206 , 10'd240 , 10'd535 , 10'd593 , 10'd645 , 10'd586 , 10'd344 ,
10'd396 , 10'd185 , 10'd401 , 10'd211 , 10'd354 , 10'd299 , 10'd585 , 10'd286 , 10'd562 , 10'd643 , 10'd182 , 10'd205 , 10'd124 ,
10'd232 , 10'd285 , 10'd295 , 10'd181 , 10'd556 , 10'd582 , 10'd527 , 10'd394 , 10'd340 , 10'd63 , 10'd203 , 10'd561 , 10'd353 ,
10'd448 , 10'd122 , 10'd283 , 10'd393 , 10'd581 , 10'd554 , 10'd174 , 10'd390 , 10'd704 , 10'd312 , 10'd338 , 10'd228 , 10'd179 ,
10'd784 , 10'd199 , 10'd553 , 10'd121 , 10'd173 , 10'd389 , 10'd540 , 10'd579 , 10'd332 , 10'd118 , 10'd672 , 10'd550 , 10'd337 ,
10'd158 , 10'd279 , 10'd271 , 10'd416 , 10'd216 , 10'd308 , 10'd387 , 10'd538 , 10'd549 , 10'd226 , 10'd330 , 10'd776 , 10'd171 ,
10'd212 , 10'd117 , 10'd110 , 10'd329 , 10'd656 , 10'd157 , 10'd772 , 10'd306 , 10'd326 , 10'd225 , 10'd167 , 10'd115 , 10'd537 ,
10'd534 , 10'd184 , 10'd109 , 10'd300 , 10'd547 , 10'd305 , 10'd210 , 10'd155 , 10'd533 , 10'd325 , 10'd352 , 10'd608 , 10'd400 ,
10'd298 , 10'd204 , 10'd94 , 10'd648 , 10'd284 , 10'd209 , 10'd151 , 10'd180 , 10'd107 , 10'd770 , 10'd297 , 10'd392 , 10'd323 ,
10'd592 , 10'd202 , 10'd644 , 10'd93 , 10'd294 , 10'd178 , 10'd103 , 10'd143 , 10'd282 , 10'd62 , 10'd336 , 10'd201 , 10'd120 ,
10'd172 , 10'd198 , 10'd769 , 10'd584 , 10'd91 , 10'd388 , 10'd293 , 10'd177 , 10'd526 , 10'd278 , 10'd281 , 10'd642 , 10'd525 ,
10'd531 , 10'd61 , 10'd170 , 10'd116 , 10'd197 , 10'd87 , 10'd156 , 10'd277 , 10'd114 , 10'd560 , 10'd169 , 10'd59 , 10'd291 ,
10'd580 , 10'd275 , 10'd523 , 10'd641 , 10'd270 , 10'd195 ,10'd552 , 10'd519 , 10'd166 , 10'd224 , 10'd578 , 10'd108 , 10'd269 ,
10'd79 , 10'd154 , 10'd113 , 10'd548 , 10'd577 , 10'd536 , 10'd328 , 10'd55 , 10'd106 , 10'd165 , 10'd153 , 10'd150 , 10'd386 ,
10'd208 , 10'd324 , 10'd546 , 10'd385 , 10'd267 , 10'd47 , 10'd92 , 10'd163 , 10'd296 , 10'd304 , 10'd105 , 10'd102 , 10'd149 ,
10'd263 , 10'd532 , 10'd322 , 10'd292 , 10'd545 , 10'd90 , 10'd200 , 10'd31 , 10'd321 , 10'd530 , 10'd142 , 10'd176 , 10'd147 ,
10'd101 , 10'd141 , 10'd196 , 10'd524 , 10'd529 , 10'd290 , 10'd89 , 10'd280 , 10'd60 ,10'd86 , 10'd99 , 10'd139 , 10'd168 ,
10'd58 , 10'd522 , 10'd276 , 10'd85 , 10'd194 , 10'd289 , 10'd78 , 10'd135 ,10'd112 , 10'd521 , 10'd57 , 10'd83 , 10'd54 ,
10'd518 , 10'd274 , 10'd268 , 10'd768 , 10'd164 , 10'd77 , 10'd152 ,10'd193 , 10'd53 , 10'd162 , 10'd104 , 10'd517 , 10'd273 ,
10'd266 , 10'd75 , 10'd46 , 10'd148 , 10'd51 , 10'd640 ,10'd100 , 10'd45 , 10'd576 , 10'd161 , 10'd265 , 10'd262 , 10'd71 ,
10'd146 , 10'd30 , 10'd140 , 10'd88 , 10'd515 , 10'd98 , 10'd43 , 10'd29 , 10'd261 , 10'd145 , 10'd138 , 10'd84 , 10'd259 ,
10'd39 , 10'd97 , 10'd27 , 10'd56 ,10'd82 , 10'd137 , 10'd76 , 10'd384 , 10'd134 , 10'd23 , 10'd52 , 10'd133 , 10'd320 ,
10'd15 , 10'd73 , 10'd50 ,10'd81 , 10'd131 , 10'd44 , 10'd70 , 10'd544 , 10'd192 , 10'd528 , 10'd288 , 10'd520 , 10'd160 ,
10'd272 , 10'd74 ,10'd49 , 10'd516 , 10'd42 , 10'd69 , 10'd28 , 10'd144 , 10'd41 , 10'd67 , 10'd96 , 10'd514 , 10'd38 ,
10'd264 ,10'd260 , 10'd136 , 10'd22 , 10'd25 , 10'd37 , 10'd80 , 10'd513 , 10'd26 , 10'd258 , 10'd35 , 10'd132 , 10'd21 ,
10'd257 , 10'd72 , 10'd14 , 10'd48 , 10'd13 , 10'd19 , 10'd130 , 10'd68 , 10'd40 , 10'd11 , 10'd512 , 10'd66 , 10'd129 ,
10'd7 , 10'd36 , 10'd24 , 10'd34 , 10'd256 , 10'd20 , 10'd65 , 10'd33 , 10'd12 , 10'd128 , 10'd18 , 10'd10 , 10'd17 ,
10'd6 , 10'd9 , 10'd64 , 10'd5 , 10'd3 , 10'd32 , 10'd16 , 10'd8 , 10'd4 , 10'd2 , 10'd1 ,10'd0 }; */
reg [9:0]rel_seq_511[511:0] =
{10'd511, 10'd510, 10'd509, 10'd507, 10'd503, 10'd495, 10'd508, 10'd479, 10'd506, 10'd505, 10'd447, 10'd501, 10'd494,
10'd502, 10'd499, 10'd493, 10'd383, 10'd478, 10'd491, 10'd477, 10'd255, 10'd504, 10'd487, 10'd475, 10'd446, 10'd500,
10'd471, 10'd445, 10'd498, 10'd382, 10'd443, 10'd492, 10'd497, 10'd381, 10'd463, 10'd490, 10'd439, 10'd476, 10'd486,
10'd489, 10'd431, 10'd379, 10'd254, 10'd474, 10'd473, 10'd485, 10'd415, 10'd483, 10'd470, 10'd444, 10'd375, 10'd253,
10'd367, 10'd247, 10'd469, 10'd441, 10'd442, 10'd462, 10'd251, 10'd438, 10'd467, 10'd351, 10'd496, 10'd461, 10'd380,
10'd437, 10'd459, 10'd378, 10'd239, 10'd488, 10'd430, 10'd484, 10'd319, 10'd435, 10'd377, 10'd455, 10'd472, 10'd223,
10'd414, 10'd427, 10'd482, 10'd373, 10'd252, 10'd429, 10'd468, 10'd366, 10'd413, 10'd481, 10'd371, 10'd250, 10'd466,
10'd423, 10'd374, 10'd440, 10'd365, 10'd411, 10'd249, 10'd460, 10'd350, 10'd246, 10'd465, 10'd436, 10'd407, 10'd191,
10'd127, 10'd363, 10'd458, 10'd245, 10'd349, 10'd434, 10'd399, 10'd457, 10'd359, 10'd238, 10'd428, 10'd376, 10'd318,
10'd454, 10'd243, 10'd347, 10'd433, 10'd237, 10'd453, 10'd426, 10'd222, 10'd317, 10'd372, 10'd343, 10'd412, 10'd235,
10'd451, 10'd425, 10'd422, 10'd370, 10'd221, 10'd315, 10'd480, 10'd335, 10'd364, 10'd190, 10'd369, 10'd248, 10'd231,
10'd410, 10'd421, 10'd311, 10'd219, 10'd409, 10'd362, 10'd464, 10'd406, 10'd419, 10'd348, 10'd215, 10'd361, 10'd189,
10'd244, 10'd303, 10'd405, 10'd358, 10'd456, 10'd346, 10'd398, 10'd242, 10'd126, 10'd236, 10'd187, 10'd357, 10'd432,
10'd207, 10'd403, 10'd397, 10'd452, 10'd345, 10'd241, 10'd316, 10'd342, 10'd125, 10'd234, 10'd183, 10'd287, 10'd355,
10'd395, 10'd424, 10'd314, 10'd220, 10'd341, 10'd123, 10'd175, 10'd233, 10'd334, 10'd450, 10'd313, 10'd391, 10'd230,
10'd368, 10'd218, 10'd339, 10'd119, 10'd333, 10'd310, 10'd420, 10'd159, 10'd229, 10'd408, 10'd217, 10'd449, 10'd188,
10'd309, 10'd214, 10'd331, 10'd111, 10'd360, 10'd302, 10'd418, 10'd227, 10'd404, 10'd186, 10'd213, 10'd417, 10'd301,
10'd307, 10'd356, 10'd402, 10'd327, 10'd95, 10'd206, 10'd240, 10'd344, 10'd396, 10'd185, 10'd401, 10'd211, 10'd354,
10'd299, 10'd286, 10'd182, 10'd205, 10'd124, 10'd232, 10'd285, 10'd295, 10'd181, 10'd394, 10'd340, 10'd63, 10'd203,
10'd353, 10'd448, 10'd122, 10'd283, 10'd393, 10'd174, 10'd390, 10'd312, 10'd338, 10'd228, 10'd179, 10'd199, 10'd121,
10'd173, 10'd389, 10'd332, 10'd118, 10'd337, 10'd158, 10'd279, 10'd271, 10'd416, 10'd216, 10'd308, 10'd387, 10'd226,
10'd330, 10'd171, 10'd212, 10'd117, 10'd110, 10'd329, 10'd157, 10'd306, 10'd326, 10'd225, 10'd167, 10'd115, 10'd184,
10'd109, 10'd300, 10'd305, 10'd210, 10'd155, 10'd325, 10'd352, 10'd400, 10'd298, 10'd204, 10'd94, 10'd284, 10'd209,
10'd151, 10'd180, 10'd107, 10'd297, 10'd392, 10'd323, 10'd202, 10'd93, 10'd294, 10'd178, 10'd103, 10'd143, 10'd282,
10'd62, 10'd336, 10'd201, 10'd120, 10'd172, 10'd198, 10'd91, 10'd388, 10'd293, 10'd177, 10'd278, 10'd281, 10'd61,
10'd170, 10'd116, 10'd197, 10'd87, 10'd156, 10'd277, 10'd114, 10'd169, 10'd59, 10'd291, 10'd275, 10'd270, 10'd195,
10'd166, 10'd224, 10'd108, 10'd269, 10'd79, 10'd154, 10'd113, 10'd328, 10'd55, 10'd106, 10'd165, 10'd153, 10'd150,
10'd386, 10'd208, 10'd324, 10'd385, 10'd267, 10'd47, 10'd92, 10'd163, 10'd296, 10'd304, 10'd105, 10'd102, 10'd149,
10'd263, 10'd322, 10'd292, 10'd90, 10'd200, 10'd31, 10'd321, 10'd142, 10'd176, 10'd147, 10'd101, 10'd141, 10'd196,
10'd290, 10'd89, 10'd280, 10'd60, 10'd86, 10'd99, 10'd139, 10'd168, 10'd58, 10'd276, 10'd85, 10'd194, 10'd289,
10'd78, 10'd135, 10'd112, 10'd57, 10'd83, 10'd54, 10'd274, 10'd268, 10'd164, 10'd77, 10'd152, 10'd193, 10'd53,
10'd162, 10'd104, 10'd273, 10'd266, 10'd75, 10'd46, 10'd148, 10'd51, 10'd100, 10'd45, 10'd161, 10'd265, 10'd262,
10'd71, 10'd146, 10'd30, 10'd140, 10'd88, 10'd98, 10'd43, 10'd29, 10'd261, 10'd145, 10'd138, 10'd84, 10'd259, 10'd39,
10'd97, 10'd27, 10'd56, 10'd82, 10'd137, 10'd76, 10'd384, 10'd134, 10'd23, 10'd52, 10'd133, 10'd320, 10'd15, 10'd73,
10'd50, 10'd81, 10'd131, 10'd44, 10'd70, 10'd192, 10'd288, 10'd160, 10'd272, 10'd74, 10'd49, 10'd42, 10'd69, 10'd28,
10'd144, 10'd41, 10'd67, 10'd96, 10'd38, 10'd264, 10'd260, 10'd136, 10'd22, 10'd25, 10'd37, 10'd80, 10'd26, 10'd258,
10'd35, 10'd132, 10'd21, 10'd257, 10'd72, 10'd14, 10'd48, 10'd13, 10'd19, 10'd130, 10'd68, 10'd40, 10'd11, 10'd66,
10'd129, 10'd7, 10'd36, 10'd24, 10'd34, 10'd256, 10'd20, 10'd65, 10'd33, 10'd12, 10'd128, 10'd18, 10'd10, 10'd17,
10'd6, 10'd9, 10'd64, 10'd5, 10'd3, 10'd32, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0} ;
reg [9:0]rel_seq_256[255:0] =
{10'd255, 10'd254, 10'd253, 10'd247, 10'd251, 10'd239, 10'd223, 10'd252, 10'd250, 10'd249, 10'd246, 10'd191, 10'd127,
10'd245, 10'd238, 10'd243, 10'd237, 10'd222, 10'd235, 10'd221, 10'd190, 10'd248, 10'd231, 10'd219, 10'd215, 10'd189,
10'd244, 10'd242, 10'd126, 10'd236, 10'd187, 10'd207, 10'd241, 10'd125, 10'd234, 10'd183, 10'd220, 10'd123, 10'd175,
10'd233, 10'd230, 10'd218, 10'd119, 10'd159, 10'd229, 10'd217, 10'd188, 10'd214, 10'd111, 10'd227, 10'd186, 10'd213,
10'd95, 10'd206, 10'd240, 10'd185, 10'd211, 10'd182, 10'd205, 10'd124, 10'd232, 10'd181, 10'd63, 10'd203, 10'd122,
10'd174, 10'd228, 10'd179, 10'd199, 10'd121, 10'd173, 10'd118, 10'd158, 10'd216, 10'd226, 10'd171, 10'd212, 10'd117,
10'd110, 10'd157, 10'd225, 10'd167, 10'd115, 10'd184, 10'd109, 10'd210, 10'd155, 10'd204, 10'd94, 10'd209, 10'd151,
10'd180, 10'd107, 10'd202, 10'd93, 10'd178, 10'd103, 10'd143, 10'd62, 10'd201, 10'd120, 10'd172, 10'd198, 10'd91,
10'd177, 10'd61, 10'd170, 10'd116, 10'd197, 10'd87, 10'd156, 10'd114, 10'd169, 10'd59, 10'd195, 10'd166, 10'd224,
10'd108, 10'd79, 10'd154, 10'd113, 10'd55, 10'd106, 10'd165, 10'd153, 10'd150, 10'd208, 10'd47, 10'd92, 10'd163,
10'd105, 10'd102, 10'd149, 10'd90, 10'd200, 10'd31, 10'd142, 10'd176, 10'd147, 10'd101, 10'd141, 10'd196, 10'd89,
10'd60, 10'd86, 10'd99, 10'd139, 10'd168, 10'd58, 10'd85, 10'd194, 10'd78, 10'd135, 10'd112, 10'd57, 10'd83, 10'd54,
10'd164, 10'd77, 10'd152, 10'd193, 10'd53, 10'd162, 10'd104, 10'd75, 10'd46, 10'd148, 10'd51, 10'd100, 10'd45, 10'd161,
10'd71, 10'd146, 10'd30, 10'd140, 10'd88, 10'd98, 10'd43, 10'd29, 10'd145, 10'd138, 10'd84, 10'd39, 10'd97, 10'd27,
10'd56, 10'd82, 10'd137, 10'd76, 10'd134, 10'd23, 10'd52, 10'd133, 10'd15, 10'd73, 10'd50, 10'd81, 10'd131, 10'd44,
10'd70, 10'd192, 10'd160, 10'd74, 10'd49, 10'd42, 10'd69, 10'd28, 10'd144, 10'd41, 10'd67, 10'd96, 10'd38, 10'd136,
10'd22, 10'd25, 10'd37, 10'd80, 10'd26, 10'd35, 10'd132, 10'd21, 10'd72, 10'd14, 10'd48, 10'd13, 10'd19, 10'd130,
10'd68, 10'd40, 10'd11, 10'd66, 10'd129, 10'd7, 10'd36, 10'd24, 10'd34, 10'd20, 10'd65, 10'd33, 10'd12, 10'd128,
10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd64, 10'd5, 10'd3, 10'd32, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0};
reg [9:0]rel_seq_128[127:0] =
{10'd127, 10'd126, 10'd125, 10'd123, 10'd119, 10'd111, 10'd95, 10'd124, 10'd63, 10'd122, 10'd121, 10'd118, 10'd117, 10'd110,
10'd115, 10'd109, 10'd94, 10'd107, 10'd93, 10'd103, 10'd62, 10'd120, 10'd91, 10'd61, 10'd116, 10'd87, 10'd114, 10'd59, 10'd108,
10'd79, 10'd113, 10'd55, 10'd106, 10'd47, 10'd92, 10'd105, 10'd102, 10'd90, 10'd31, 10'd101, 10'd89, 10'd60, 10'd86, 10'd99,
10'd58, 10'd85, 10'd78, 10'd112, 10'd57, 10'd83, 10'd54, 10'd77, 10'd53, 10'd104, 10'd75, 10'd46, 10'd51, 10'd100, 10'd45,
10'd71, 10'd30, 10'd88, 10'd98, 10'd43, 10'd29, 10'd84, 10'd39, 10'd97, 10'd27, 10'd56, 10'd82, 10'd76, 10'd23, 10'd52, 10'd15,
10'd73, 10'd50, 10'd81, 10'd44, 10'd70, 10'd74, 10'd49, 10'd42, 10'd69, 10'd28, 10'd41, 10'd67, 10'd96, 10'd38, 10'd22, 10'd25,
10'd37, 10'd80, 10'd26, 10'd35, 10'd21, 10'd72, 10'd14, 10'd48, 10'd13, 10'd19, 10'd68, 10'd40, 10'd11, 10'd66, 10'd7, 10'd36,
10'd24, 10'd34, 10'd20, 10'd65, 10'd33, 10'd12, 10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd64, 10'd5, 10'd3, 10'd32, 10'd16,
10'd8, 10'd4, 10'd2, 10'd1, 10'd0};
reg [9:0]rel_seq_64[63:0] =
{10'd63, 10'd62, 10'd61, 10'd59, 10'd55, 10'd47, 10'd31, 10'd60, 10'd58, 10'd57, 10'd54, 10'd53, 10'd46, 10'd51, 10'd45, 10'd30,
10'd43, 10'd29, 10'd39, 10'd27, 10'd56, 10'd23, 10'd52, 10'd15, 10'd50, 10'd44, 10'd49, 10'd42, 10'd28, 10'd41, 10'd38, 10'd22,
10'd25, 10'd37, 10'd26, 10'd35, 10'd21, 10'd14, 10'd48, 10'd13, 10'd19, 10'd40, 10'd11, 10'd7, 10'd36, 10'd24, 10'd34, 10'd20, 10'd33,
10'd12, 10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd5, 10'd3, 10'd32, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0};
reg [9:0]rel_seq_32[31:0] =
{10'd31, 10'd30, 10'd29, 10'd27, 10'd23, 10'd15, 10'd28, 10'd22, 10'd25, 10'd26, 10'd21, 10'd14, 10'd13, 10'd19, 10'd11, 10'd7, 10'd24,
10'd20, 10'd12, 10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd5, 10'd3, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0};
// instantiatig a register(group of FF's) to hold the output and synchronize the module w.r.t clock and reset signals
register #(
.WIDTH('d10), // overriding the width of register with the length of output to be registered
.SR(2'b00), // overriding SR inputs of the register
.RST_VAL({10{1'b0}}) // overriding the reset value with expected value in the output when reset is applied
) REG1 (
.clk(clock_i), // connecting clock ports
.rstb(reset_ni), // connecting reset ports
.din(pc_pos1_1), // connecting input of register with the value that needs to be registered
.dout(pc_pos1_o) // connecting the registered output with the output port of current module
);
// instantiatig a register(group of FF's) to hold the output and synchronize the module w.r.t clock and reset signals
register #(
.WIDTH('d10), // overriding the width of register with the length of output to be registered
.SR(2'b00), // overriding SR inputs of the register
.RST_VAL({10{1'b0}}) // overriding the reset value with expected value in the output when reset is applied
) REG2 (
.clk(clock_i), // connecting clock ports
.rstb(reset_ni), // connecting reset ports
.din(pc_pos2_1), // connecting input of register with the value that needs to be registered
.dout(pc_pos2_o) // connecting the registered output with the output port of current module
);
// instantiatig a register(group of FF's) to hold the output and synchronize the module w.r.t clock and reset signals
register #(
.WIDTH('d10), // overriding the width of register with the length of output to be registered
.SR(2'b00), // overriding SR inputs of the register
.RST_VAL({10{1'b0}}) // overriding the reset value with expected value in the output when reset is applied
) REG3 (
.clk(clock_i), // connecting clock ports
.rstb(reset_ni), // connecting reset ports
.din(pc_pos3_1), // connecting input of register with the value that needs to be registered
.dout(pc_pos3_o) // connecting the registered output with the output port of current module
);
// instantiatig a register(group of FF's) to hold the output and synchronize the module w.r.t clock and reset signals
register #(
.WIDTH(N), // overriding the width of register with the length of output to be registered
.SR(2'b00), // overriding SR inputs of the register
.RST_VAL({N{1'b0}}) // overriding the reset value with expected value in the output when reset is applied
) REG4 (
.clk(clock_i), // connecting clock ports
.rstb(reset_ni), // connecting reset ports
.din(msg_1), // connecting input of register with the value that needs to be registered
.dout(msg_o) // connecting the registered output with the output port of current module
);
////// on 03032021.//////////////
//// copy input msg to a reg.
// decalare a output reg for all combinations
always @(N_in )//or K_in) //// enables of rel_seq are (rel_seq_512,rel_seq_256,rel_seq_128,rel_seq_64,rel_seq_32)
begin
case (N_in)
10'd32 : begin rel_seq_enable = 5'b00001; end
10'd64 : begin rel_seq_enable = 5'b00010; end
10'd128 : begin rel_seq_enable = 5'b00100; end
10'd256 : begin rel_seq_enable = 5'b01000; end
10'd512 : begin rel_seq_enable = 5'b10000; end
endcase
end

assign rel_seq_en = |rel_seq_enable;
always @ (posedge clock_i)
begin
if (!reset_ni)
begin
rel_seq_en_dly <= 1'b0;
index_out32_dly <= 10'd0;
end
else
begin
rel_seq_en_dly <= rel_seq_en;
rel_seq_en_dly1 <= rel_seq_en_dly;
//rel_seq_en_dly1 <= indx_K ? rel_seq_en_dly: 1'b0;
index_out32_dly <= index_out32;
end
end

//assign rel_seq_en_dly2 : indx_K ? rel_seq_en_dly: 1'b0;

rel_seq_cntr addrss (.clk(clock_i),.rst_n(reset_ni),.En(rel_seq_en_dly),.N_val(N_in),.K_val(K_in),.adr_out(addrs_cntr));
///// rel_seq mem's
relt_seq_32 rel_32 ( .en_32(rel_seq_enable[0]), .out_32(index_out32), .adr_32 (addrs_cntr));
relt_seq_64 rel_64 ( .en_64(rel_seq_enable[1]), .out_64(index_out64), .adr_64 (addrs_cntr));
relt_seq_128 rel_128 ( .en_128(rel_seq_enable[2]), .out_128(index_out128), .adr_128 (addrs_cntr));
relt_seq_256 rel_256 ( .en_256(rel_seq_enable[3]), .out_256(index_out256), .adr_256 (addrs_cntr));
relt_seq_512 rel_512 ( .en_512(rel_seq_enable[4]), .out_512(index_out512), .adr_512 (addrs_cntr));

counter_K counterK (.Clk(clock_i),.Load(rel_seq_en_dly1),.Kin(K_in),.Q(indx_K));
always @ (negedge clock_i)
begin
if (rel_seq_en_dly1)
//msg_1_out[index_out32] = msg_i[K-1-x];
//msg_1[frz_pos[q]] = msg_i[K-1-x];
msg_1_out[index_out32_dly] = msg_i[indx_K];
else
msg_1_out = 511'd0;
end


// always_comb begin
/* begin : child_rel_seq
//k = 'd0;
// for(p = 0; p < 1024; p = p+1)
for(p = 0; p < 512; p = p+1)
if((rel_seq_511[p]) < N) begin
frz_pos[k] = rel_seq_511[p]; // child reliability sequence for given N < 1024
k ++;
if(k >= N) // resetting the variable to 0, after it equals to given N value
k = 'd0;
end
end : child_rel_seq*/
/* begin : insert_frz_zeroes
for(q = 0; q < N; q = q+1) begin
if(q >= (N-K)) begin : insert_msg_crc
msg_1[frz_pos[q]] = msg_i[K-1-x]; // filling remaining most reliable K positions with information+CRC bits
x ++;
if(x >= K)
x = 'd0;
*//*begin : find_pc_pos
x = 'd0; // resetting the variable to 0, after it equals to given K value
pc_pos1_1 = frz_pos[N-K-1]; // finding the first parity check bit position
pc_pos2_1 = frz_pos[N-K-2]; // finding the second parity check bit position
pc_pos3_1 = frz_pos[N-K-3]; // finding the third parity check bit position
end : find_pc_pos *//*
end : insert_msg_crc // N - K bits need to be frozen *//*
else begin
msg_1[frz_pos[q]] = 1'b0; // filling the least reliable frozen positions with 0's
end
end
end : insert_frz_zeroes
end*/

endmodule


// register is written to synchronize a combiational logic w.r.t clock and reset signals
module register #(
parameter int WIDTH = 1, // width of the input and output of the register
parameter logic [1:0] SR = 2'b00, // SET and RESET inputs of the register
parameter logic [WIDTH-1:0] RST_VAL = {WIDTH{1'b0}} // reset value to be provided at the output when reset signal is active
) (
input logic clk, // clock signal for register
input logic rstb, // active low, synchronous reset
input logic [WIDTH-1:0] din, // input to be registered
output logic [WIDTH-1:0] dout // registered outputs
);

generate
if(SR==2'b00) begin : NON_RESET_FLOP // if SR==00, irrespective of other signals the input needs to be registered
always_ff @ (posedge clk) begin
dout <= din; // registering input w.r.t posedge of clock signal
end
end : NON_RESET_FLOP
else begin: RESET_FLOP // if SR!==00, input needs to be registered according to other signals w.r.t posedge of clock signal
always_ff @ (posedge clk ) begin
if (~rstb) // if reset is active
if (SR == 2'b01)
dout <= {WIDTH{1'b0}}; // if SR==01, reset the output
else if (SR == 2'b10)
dout <= {WIDTH{1'b1}}; // if SR==10, set the output
else
dout <= RST_VAL; // if SR==11, reset the output according the reset value provided
else
dout <= din; // if reset is inactive, register the input
end
end: RESET_FLOP
endgenerate
endmodule

/*always @ (posedge clk)
begin
if (!rst_n)
tmp <= 0;
else if (!En)
tmp <= start_val;
else if (tmp < N_val)
tmp <= tmp + 1;
else
tmp <= tmp;
end
assign adr_out = tmp;
endmodule */

module counter_K (Clk, Load,Kin, Q);
input Clk, Load;
input [8:0]Kin;
output [8:0] Q;
reg [8:0] tmp;
always @(posedge Clk)
begin
if (!Load || (tmp == 0)) // added by amit
//if (!Load) // trueone.
tmp = Kin -1;
else //if (tmp < 1'b1)
tmp = tmp - 1'b1;
// else
// tmp = tmp;
end
assign Q = tmp;
endmodule

+ 75
- 0
sources_1/new/Relbty_seq32.v Datei anzeigen

@@ -0,0 +1,75 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02.03.2021 12:56:39
// Design Name:
// Module Name: Relbty_seq32
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_32 (
input wire en_32,
output reg [9:0] out_32,
input wire [9:0] adr_32); // address- 8 deep memory
// Declare a memory rom of 8 4-bit registers. The indices are 0 to 7:
(* synthesis, rom_block = "ROM_CELL XYZ01" *) reg [9:0] rom[0:31];
// (* synthesis, logic_block *) reg [3:0] rom [0:7];
initial begin
rom[0] = 10'd0;
rom[1] = 10'd1;
rom[2] = 10'd2;
rom[3] = 10'd4;
rom[4] = 10'd8;
rom[5] = 10'd16;
rom[6] = 10'd3;
rom[7] = 10'd5;
rom[8] = 10'd9;
rom[9] = 10'd6;
rom[10] = 10'd17;
rom[11] = 10'd10;
rom[12] = 10'd18;
rom[13] = 10'd12;
rom[14] = 10'd20;
rom[15] = 10'd24;
rom[16] = 10'd7;
rom[17] = 10'd11;
rom[18] = 10'd19;
rom[19] = 10'd13;
rom[20] = 10'd14;
rom[21] = 10'd21;
rom[22] = 10'd26;
rom[23] = 10'd25;
rom[24] = 10'd22;
rom[25] = 10'd28;
rom[26] = 10'd15;
rom[27] = 10'd23;
rom[28] = 10'd27;
rom[29] = 10'd29;
rom[30] = 10'd30;
rom[31] = 10'd31;
end
always @ (*)
begin
if (en_32)
//assign out_32 = rom[adr_32];
out_32 = rom[adr_32];
else
out_32 = 32'd0;
end
endmodule
/*10'd31, 10'd30, 10'd29, 10'd27, 10'd23, 10'd15, 10'd28, 10'd22, 10'd25, 10'd26, 10'd21, 10'd14, 10'd13,
10'd19, 10'd11, 10'd7, 10'd24, 10'd20, 10'd12, 10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd5, 10'd3, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0} */
//endmodule

+ 62
- 0
sources_1/new/lenght_match2out.v Datei anzeigen

@@ -0,0 +1,62 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 01.03.2021 16:56:29
// Design Name:
// Module Name: lenght_match2out
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module lenght_match2out(K_bits,N_val,out_data);
input [511:0]K_bits;
input [9:0]N_val;
output reg [511:0]out_data;

always @ (*)
begin
case (N_val)
10'd32: out_data = {{479{1'b0}},K_bits[31:0]};
10'd64: out_data = {{447{1'b0}},K_bits[63:0]};
10'd128: out_data = {{383{1'b0}},K_bits[127:0]};
10'd256: out_data = {{347{1'b0}},K_bits[163:0]};
10'd512: out_data = {{347{1'b0}},K_bits[163:0]};
default: out_data = {{479{1'b0}},K_bits[31:0]};
endcase
end
endmodule

/* always @(Data_in_0 or sel_mx)
begin
case (sel_mx)
4'b0000 : Data_out = Data_in_0;
4'b0001 : Data_out = Data_in_1;
4'b0010 : Data_out = Data_in_2;
4'b0011 : Data_out = Data_in_3;
4'b0100 : Data_out = Data_in_4;
4'b0101 : Data_out = Data_in_5;
4'b0110 : Data_out = Data_in_6;
4'b0111 : Data_out = Data_in_7;
4'b1000 : Data_out = Data_in_8;
4'b1001 : Data_out = Data_in_9;
4'b1010 : Data_out = Data_in_10;
4'b1011 : Data_out = Data_in_11;
4'b1100 : Data_out = Data_in_12;
4'b1101 : Data_out = Data_in_13;
4'b1110 : Data_out = Data_in_14;
4'b1111 : Data_out = Data_in_15;
endcase
end*/

+ 45
- 0
sources_1/new/rel_seq_cntr.v Datei anzeigen

@@ -0,0 +1,45 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 03.03.2021 11:08:20
// Design Name:
// Module Name: rel_seq_cntr
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module rel_seq_cntr(clk,rst_n,En, N_val,K_val,adr_out);
input clk,rst_n,En;
input [9:0]N_val;
input [8:0]K_val;
output [9:0]adr_out;

wire [9:0]start_val;
reg [9:0]tmp;

assign start_val = N_val - K_val;
always @ (posedge clk)
begin
if (!rst_n)
tmp <= 0;
else if (!En)
tmp <= start_val;
else if (tmp < N_val)
tmp <= tmp + 1;
else
tmp <= tmp;
end
assign adr_out = tmp;
endmodule

+ 172
- 0
sources_1/new/relt_seq_128.v Datei anzeigen

@@ -0,0 +1,172 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02.03.2021 16:07:52
// Design Name:
// Module Name: relt_seq_128
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_128(
input wire en_128,
output reg [9:0] out_128,
input wire [9:0] adr_128); // address- 8 deep memory
// Declare a memory rom of 8 4-bit registers. The indices are 0 to 7:
(* synthesis, rom_block = "ROM_CELL XYZ01" *) reg [9:0] rom[0:127];
// (* synthesis, logic_block *) reg [3:0] rom [0:7];
initial begin
rom[127] = 10'd127;
rom[126] = 10'd126;
rom[125] = 10'd125;
rom[124] = 10'd123;
rom[123] = 10'd119;
rom[122] = 10'd111;
rom[121] = 10'd95;
rom[120] = 10'd124;
rom[119] = 10'd63;
rom[118] = 10'd122;
rom[117] = 10'd121;
rom[116] = 10'd118;
rom[115] = 10'd117;
rom[114] = 10'd110;
rom[113] = 10'd115;
rom[112] = 10'd109;
rom[111] = 10'd94;
rom[110] = 10'd107;
rom[109] = 10'd93;
rom[108] = 10'd103;
rom[107] = 10'd62;
rom[106] = 10'd120;
rom[105] = 10'd91;
rom[104] = 10'd61;
rom[103] = 10'd116;
rom[102] = 10'd87;
rom[101] = 10'd114;
rom[100] = 10'd59;
rom[99] = 10'd108;
rom[98] = 10'd79;
rom[97] = 10'd113;
rom[96] = 10'd55;
rom[95] = 10'd106;
rom[94] = 10'd47;
rom[93] = 10'd92;
rom[92] = 10'd105;
rom[91] = 10'd102;
rom[90] = 10'd90;
rom[89] = 10'd31;
rom[88] = 10'd101;
rom[87] = 10'd89;
rom[86] = 10'd60;
rom[85] = 10'd86;
rom[84] = 10'd99;
rom[83] = 10'd58;
rom[82] = 10'd85;
rom[81] = 10'd78;
rom[80] = 10'd112;
rom[79] = 10'd57;
rom[78] = 10'd83;
rom[77] = 10'd54;
rom[76] = 10'd77;
rom[75] = 10'd53;
rom[74] = 10'd104;
rom[73] = 10'd75;
rom[72] = 10'd46;
rom[71] = 10'd51;
rom[70] = 10'd100;
rom[69] = 10'd45;
rom[68] = 10'd71;
rom[67] = 10'd30;
rom[66] = 10'd88;
rom[65] = 10'd98;
rom[64] = 10'd43;
rom[63] = 10'd29;
rom[62] = 10'd84;
rom[61] = 10'd39;
rom[60] = 10'd97;
rom[59] = 10'd27;
rom[58] = 10'd56;
rom[57] = 10'd82;
rom[56] = 10'd76;
rom[55] = 10'd23;
rom[54] = 10'd52;
rom[53] = 10'd15;
rom[52] = 10'd73;
rom[51] = 10'd50;
rom[50] = 10'd81;
rom[49] = 10'd44;
rom[48] = 10'd70;
rom[47] = 10'd74;
rom[46] = 10'd49;
rom[45] = 10'd42;
rom[44] = 10'd69;
rom[43] = 10'd28;
rom[42] = 10'd41;
rom[41] = 10'd67;
rom[40] = 10'd96;
rom[39] = 10'd38;
rom[38] = 10'd22;
rom[37] = 10'd25;
rom[36] = 10'd37;
rom[35] = 10'd80;
rom[34] = 10'd26;
rom[33] = 10'd35;
rom[32] = 10'd21;
rom[31] = 10'd72;
rom[30] = 10'd14;
rom[29] = 10'd48;
rom[28] = 10'd13;
rom[27] = 10'd19;
rom[26] = 10'd68;
rom[25] = 10'd40;
rom[24] = 10'd11;
rom[23] = 10'd66;
rom[22] = 10'd7;
rom[21] = 10'd36;
rom[20] = 10'd24;
rom[19] = 10'd34;
rom[18] = 10'd20;
rom[17] = 10'd65;
rom[16] = 10'd33;
rom[15] = 10'd12;
rom[14] = 10'd18;
rom[13] = 10'd10;
rom[12] = 10'd17;
rom[11] = 10'd6;
rom[10] = 10'd9;
rom[9] = 10'd64;
rom[8] = 10'd5;
rom[7] = 10'd3;
rom[6] = 10'd32;
rom[5] = 10'd16;
rom[4] = 10'd8;
rom[3] = 10'd4;
rom[2] = 10'd2;
rom[1] = 10'd1;
rom[0] = 10'd0;
end
//assign out_128 = rom[a= dr_128];
always @ (*)
begin
if (en_128)
//assign out_32 = rom[adr_32];
out_128 = rom[adr_128];
else
out_128 = 128'd0;
end
endmodule




+ 297
- 0
sources_1/new/relt_seq_256.v Datei anzeigen

@@ -0,0 +1,297 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02.03.2021 17:16:08
// Design Name:
// Module Name: relt_seq_256
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_256(
input wire en_256,
output reg [9:0] out_256,
input wire [9:0] adr_256); // address- 8 deep memory
// Declare a memory rom of 8 4-bit registers. The indices are 0 to 7:
(* synthesis, rom_block = "ROM_CELL XYZ01" *) reg [9:0] rom[0:255];
// (* synthesis, logic_block *) reg [3:0] rom [0:7];
initial begin
rom[255] = 10'd255;
rom[254] = 10'd254;
rom[253] = 10'd253;
rom[252] = 10'd247;
rom[251] = 10'd251;
rom[250] = 10'd239;
rom[249] = 10'd223;
rom[248] = 10'd252;
rom[247] = 10'd250;
rom[246] = 10'd249;
rom[245] = 10'd246;
rom[244] = 10'd191;
rom[243] = 10'd127;
rom[242] = 10'd245;
rom[241] = 10'd238;
rom[240] = 10'd243;
rom[239] = 10'd237;
rom[238] = 10'd222;
rom[237] = 10'd235;
rom[236] = 10'd221;
rom[235] = 10'd190;
rom[234] = 10'd248;
rom[233] = 10'd231;
rom[232] = 10'd219;
rom[231] = 10'd215;
rom[230] = 10'd189;
rom[229] = 10'd244;
rom[228] = 10'd242;
rom[227] = 10'd126;
rom[226] = 10'd236;
rom[225] = 10'd187;
rom[224] = 10'd207;
rom[223] = 10'd241;
rom[222] = 10'd125;
rom[221] = 10'd234;
rom[220] = 10'd183;
rom[219] = 10'd220;
rom[218] = 10'd123;
rom[217] = 10'd175;
rom[216] = 10'd233;
rom[215] = 10'd230;
rom[214] = 10'd218;
rom[213] = 10'd119;
rom[212] = 10'd159;
rom[211] = 10'd229;
rom[210] = 10'd217;
rom[209] = 10'd188;
rom[208] = 10'd214;
rom[207] = 10'd111;
rom[206] = 10'd227;
rom[205] = 10'd186;
rom[204] = 10'd213;
rom[203] = 10'd95;
rom[202] = 10'd206;
rom[201] = 10'd240;
rom[200] = 10'd185;
rom[199] = 10'd211;
rom[198] = 10'd182;
rom[197] = 10'd205;
rom[196] = 10'd124;
rom[195] = 10'd232;
rom[194] = 10'd181;
rom[193] = 10'd63;
rom[192] = 10'd203;
rom[191] = 10'd122;
rom[190] = 10'd174;
rom[189] = 10'd228;
rom[188] = 10'd179;
rom[187] = 10'd199;
rom[186] = 10'd121;
rom[185] = 10'd173;
rom[184] = 10'd118;
rom[183] = 10'd158;
rom[182] = 10'd216;
rom[181] = 10'd226;
rom[180] = 10'd171;
rom[179] = 10'd212;
rom[178] = 10'd117;
rom[177] = 10'd110;
rom[176] = 10'd157;
rom[175] = 10'd225;
rom[174] = 10'd167;
rom[173] = 10'd115;
rom[172] = 10'd184;
rom[171] = 10'd109;
rom[170] = 10'd210;
rom[169] = 10'd155;
rom[168] = 10'd204;
rom[167] = 10'd94;
rom[166] = 10'd209;
rom[165] = 10'd151;
rom[164] = 10'd180;
rom[163] = 10'd107;
rom[162] = 10'd202;
rom[161] = 10'd93;
rom[160] = 10'd178;
rom[159] = 10'd103;
rom[158] = 10'd143;
rom[157] = 10'd62;
rom[156] = 10'd201;
rom[155] = 10'd120;
rom[154] = 10'd172;
rom[153] = 10'd198;
rom[152] = 10'd91;
rom[151] = 10'd177;
rom[150] = 10'd61;
rom[149] = 10'd170;
rom[148] = 10'd116;
rom[147] = 10'd197;
rom[146] = 10'd87;
rom[145] = 10'd156;
rom[144] = 10'd114;
rom[143] = 10'd169;
rom[142] = 10'd59;
rom[141] = 10'd195;
rom[140] = 10'd166;
rom[139] = 10'd224;
rom[138] = 10'd108;
rom[137] = 10'd79;
rom[136] = 10'd154;
rom[135] = 10'd113;
rom[134] = 10'd55;
rom[133] = 10'd106;
rom[132] = 10'd165;
rom[131] = 10'd153;
rom[130] = 10'd150;
rom[129] = 10'd208;
rom[128] = 10'd47;
rom[127] = 10'd92;
rom[126] = 10'd163;
rom[125] = 10'd105;
rom[124] = 10'd102;
rom[123] = 10'd149;
rom[122] = 10'd90;
rom[121] = 10'd200;
rom[120] = 10'd31;
rom[119] = 10'd142;
rom[118] = 10'd176;
rom[117] = 10'd147;
rom[116] = 10'd101;
rom[115] = 10'd141;
rom[114] = 10'd196;
rom[113] = 10'd89;
rom[112] = 10'd60;
rom[111] = 10'd86;
rom[110] = 10'd99;
rom[109] = 10'd139;
rom[108] = 10'd168;
rom[107] = 10'd58;
rom[106] = 10'd85;
rom[105] = 10'd194;
rom[104] = 10'd78;
rom[103] = 10'd135;
rom[102] = 10'd112;
rom[101] = 10'd57;
rom[100] = 10'd83;
rom[99] = 10'd54;
rom[98] = 10'd164;
rom[97] = 10'd77;
rom[96] = 10'd152;
rom[95] = 10'd193;
rom[94] = 10'd53;
rom[93] = 10'd162;
rom[92] = 10'd104;
rom[91] = 10'd75;
rom[90] = 10'd46;
rom[89] = 10'd148;
rom[88] = 10'd51;
rom[87] = 10'd100;
rom[86] = 10'd45;
rom[85] = 10'd161;
rom[84] = 10'd71;
rom[83] = 10'd146;
rom[82] = 10'd30;
rom[81] = 10'd140;
rom[80] = 10'd88;
rom[79] = 10'd98;
rom[78] = 10'd43;
rom[77] = 10'd29;
rom[76] = 10'd145;
rom[75] = 10'd138;
rom[74] = 10'd84;
rom[73] = 10'd39;
rom[72] = 10'd97;
rom[71] = 10'd27;
rom[70] = 10'd56;
rom[69] = 10'd82;
rom[68] = 10'd137;
rom[67] = 10'd76;
rom[66] = 10'd134;
rom[65] = 10'd23;
rom[64] = 10'd52;
rom[63] = 10'd133;
rom[62] = 10'd15;
rom[61] = 10'd73;
rom[60] = 10'd50;
rom[59] = 10'd81;
rom[58] = 10'd131;
rom[57] = 10'd44;
rom[56] = 10'd70;
rom[55] = 10'd192;
rom[54] = 10'd160;
rom[53] = 10'd74;
rom[52] = 10'd49;
rom[51] = 10'd42;
rom[50] = 10'd69;
rom[49] = 10'd28;
rom[48] = 10'd144;
rom[47] = 10'd41;
rom[46] = 10'd67;
rom[45] = 10'd96;
rom[44] = 10'd38;
rom[43] = 10'd136;
rom[42] = 10'd22;
rom[41] = 10'd25;
rom[40] = 10'd37;
rom[39] = 10'd80;
rom[38] = 10'd26;
rom[37] = 10'd35;
rom[36] = 10'd132;
rom[35] = 10'd21;
rom[34] = 10'd72;
rom[33] = 10'd14;
rom[32] = 10'd48;
rom[31] = 10'd13;
rom[30] = 10'd19;
rom[29] = 10'd130;
rom[28] = 10'd68;
rom[27] = 10'd40;
rom[26] = 10'd11;
rom[25] = 10'd66;
rom[24] = 10'd129;
rom[23] = 10'd7;
rom[22] = 10'd36;
rom[21] = 10'd24;
rom[20] = 10'd34;
rom[19] = 10'd20;
rom[18] = 10'd65;
rom[17] = 10'd33;
rom[16] = 10'd12;
rom[15] = 10'd128;
rom[14] = 10'd18;
rom[13] = 10'd10;
rom[12] = 10'd17;
rom[11] = 10'd6;
rom[10] = 10'd9;
rom[9] = 10'd64;
rom[8] = 10'd5;
rom[7] = 10'd3;
rom[6] = 10'd32;
rom[5] = 10'd16;
rom[4] = 10'd8;
rom[3] = 10'd4;
rom[2] = 10'd2;
rom[1] = 10'd1;
rom[0] = 10'd0;
end
//assign
always @ (*)
begin
if (en_256)
//assign out_32 = rom[adr_32];
out_256 = rom[adr_256];
else
out_256 = 256'd0;
end
endmodule

+ 26
- 0
sources_1/new/relt_seq_32.v Datei anzeigen

@@ -0,0 +1,26 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02.03.2021 15:18:31
// Design Name:
// Module Name: relt_seq_32
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_32(

);
endmodule

+ 553
- 0
sources_1/new/relt_seq_512.v Datei anzeigen

@@ -0,0 +1,553 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 03.03.2021 09:52:53
// Design Name:
// Module Name: relt_seq_512
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_512(
input wire en_512,
output reg [9:0] out_512,
input wire [9:0] adr_512); // address- 8 deep memory
// Declare a memory rom of 8 4-bit registers. The indices are 0 to 7:
(* synthesis, rom_block = "ROM_CELL XYZ01" *) reg [9:0] rom[0:511];
// (* synthesis, logic_block *) reg [3:0] rom [0:7];
initial begin
rom[511] = 10'd511;
rom[510] = 10'd510;
rom[509] = 10'd509;
rom[508] = 10'd507;
rom[507] = 10'd503;
rom[506] = 10'd495;
rom[505] = 10'd508;
rom[504] = 10'd479;
rom[503] = 10'd506;
rom[502] = 10'd505;
rom[501] = 10'd447;
rom[500] = 10'd501;
rom[499] = 10'd494;
rom[498] = 10'd502;
rom[497] = 10'd499;
rom[496] = 10'd493;
rom[495] = 10'd383;
rom[494] = 10'd478;
rom[493] = 10'd491;
rom[492] = 10'd477;
rom[491] = 10'd255;
rom[490] = 10'd504;
rom[489] = 10'd487;
rom[488] = 10'd475;
rom[487] = 10'd446;
rom[486] = 10'd500;
rom[485] = 10'd471;
rom[484] = 10'd445;
rom[483] = 10'd498;
rom[482] = 10'd382;
rom[481] = 10'd443;
rom[480] = 10'd492;
rom[479] = 10'd497;
rom[478] = 10'd381;
rom[477] = 10'd463;
rom[476] = 10'd490;
rom[475] = 10'd439;
rom[474] = 10'd476;
rom[473] = 10'd486;
rom[472] = 10'd489;
rom[471] = 10'd431;
rom[470] = 10'd379;
rom[469] = 10'd254;
rom[468] = 10'd474;
rom[467] = 10'd473;
rom[466] = 10'd485;
rom[465] = 10'd415;
rom[464] = 10'd483;
rom[463] = 10'd470;
rom[462] = 10'd444;
rom[461] = 10'd375;
rom[460] = 10'd253;
rom[459] = 10'd367;
rom[458] = 10'd247;
rom[457] = 10'd469;
rom[456] = 10'd441;
rom[455] = 10'd442;
rom[454] = 10'd462;
rom[453] = 10'd251;
rom[452] = 10'd438;
rom[451] = 10'd467;
rom[450] = 10'd351;
rom[449] = 10'd496;
rom[448] = 10'd461;
rom[447] = 10'd380;
rom[446] = 10'd437;
rom[445] = 10'd459;
rom[444] = 10'd378;
rom[443] = 10'd239;
rom[442] = 10'd488;
rom[441] = 10'd430;
rom[440] = 10'd484;
rom[439] = 10'd319;
rom[438] = 10'd435;
rom[437] = 10'd377;
rom[436] = 10'd455;
rom[435] = 10'd472;
rom[434] = 10'd223;
rom[433] = 10'd414;
rom[432] = 10'd427;
rom[431] = 10'd482;
rom[430] = 10'd373;
rom[429] = 10'd252;
rom[428] = 10'd429;
rom[427] = 10'd468;
rom[426] = 10'd366;
rom[425] = 10'd413;
rom[424] = 10'd481;
rom[423] = 10'd371;
rom[422] = 10'd250;
rom[421] = 10'd466;
rom[420] = 10'd423;
rom[419] = 10'd374;
rom[418] = 10'd440;
rom[417] = 10'd365;
rom[416] = 10'd411;
rom[415] = 10'd249;
rom[414] = 10'd460;
rom[413] = 10'd350;
rom[412] = 10'd246;
rom[411] = 10'd465;
rom[410] = 10'd436;
rom[409] = 10'd407;
rom[408] = 10'd191;
rom[407] = 10'd127;
rom[406] = 10'd363;
rom[405] = 10'd458;
rom[404] = 10'd245;
rom[403] = 10'd349;
rom[402] = 10'd434;
rom[401] = 10'd399;
rom[400] = 10'd457;
rom[399] = 10'd359;
rom[398] = 10'd238;
rom[397] = 10'd428;
rom[396] = 10'd376;
rom[395] = 10'd318;
rom[394] = 10'd454;
rom[393] = 10'd243;
rom[392] = 10'd347;
rom[391] = 10'd433;
rom[390] = 10'd237;
rom[389] = 10'd453;
rom[388] = 10'd426;
rom[387] = 10'd222;
rom[386] = 10'd317;
rom[385] = 10'd372;
rom[384] = 10'd343;
rom[383] = 10'd412;
rom[382] = 10'd235;
rom[381] = 10'd451;
rom[380] = 10'd425;
rom[379] = 10'd422;
rom[378] = 10'd370;
rom[377] = 10'd221;
rom[376] = 10'd315;
rom[375] = 10'd480;
rom[374] = 10'd335;
rom[373] = 10'd364;
rom[372] = 10'd190;
rom[371] = 10'd369;
rom[370] = 10'd248;
rom[369] = 10'd231;
rom[368] = 10'd410;
rom[367] = 10'd421;
rom[366] = 10'd311;
rom[365] = 10'd219;
rom[364] = 10'd409;
rom[363] = 10'd362;
rom[362] = 10'd464;
rom[361] = 10'd406;
rom[360] = 10'd419;
rom[359] = 10'd348;
rom[358] = 10'd215;
rom[357] = 10'd361;
rom[356] = 10'd189;
rom[355] = 10'd244;
rom[354] = 10'd303;
rom[353] = 10'd405;
rom[352] = 10'd358;
rom[351] = 10'd456;
rom[350] = 10'd346;
rom[349] = 10'd398;
rom[348] = 10'd242;
rom[347] = 10'd126;
rom[346] = 10'd236;
rom[345] = 10'd187;
rom[344] = 10'd357;
rom[343] = 10'd432;
rom[342] = 10'd207;
rom[341] = 10'd403;
rom[340] = 10'd397;
rom[339] = 10'd452;
rom[338] = 10'd345;
rom[337] = 10'd241;
rom[336] = 10'd316;
rom[335] = 10'd342;
rom[334] = 10'd125;
rom[333] = 10'd234;
rom[332] = 10'd183;
rom[331] = 10'd287;
rom[330] = 10'd355;
rom[329] = 10'd395;
rom[328] = 10'd424;
rom[327] = 10'd314;
rom[326] = 10'd220;
rom[325] = 10'd341;
rom[324] = 10'd123;
rom[323] = 10'd175;
rom[322] = 10'd233;
rom[321] = 10'd334;
rom[320] = 10'd450;
rom[319] = 10'd313;
rom[318] = 10'd391;
rom[317] = 10'd230;
rom[316] = 10'd368;
rom[315] = 10'd218;
rom[314] = 10'd339;
rom[313] = 10'd119;
rom[312] = 10'd333;
rom[311] = 10'd310;
rom[310] = 10'd420;
rom[309] = 10'd159;
rom[308] = 10'd229;
rom[307] = 10'd408;
rom[306] = 10'd217;
rom[305] = 10'd449;
rom[304] = 10'd188;
rom[303] = 10'd309;
rom[302] = 10'd214;
rom[301] = 10'd331;
rom[300] = 10'd111;
rom[299] = 10'd360;
rom[298] = 10'd302;
rom[297] = 10'd418;
rom[296] = 10'd227;
rom[295] = 10'd404;
rom[294] = 10'd186;
rom[293] = 10'd213;
rom[292] = 10'd417;
rom[291] = 10'd301;
rom[290] = 10'd307;
rom[289] = 10'd356;
rom[288] = 10'd402;
rom[287] = 10'd327;
rom[286] = 10'd95;
rom[285] = 10'd206;
rom[284] = 10'd240;
rom[283] = 10'd344;
rom[282] = 10'd396;
rom[281] = 10'd185;
rom[280] = 10'd401;
rom[279] = 10'd211;
rom[278] = 10'd354;
rom[277] = 10'd299;
rom[276] = 10'd286;
rom[275] = 10'd182;
rom[274] = 10'd205;
rom[273] = 10'd124;
rom[272] = 10'd232;
rom[271] = 10'd285;
rom[270] = 10'd295;
rom[269] = 10'd181;
rom[268] = 10'd394;
rom[267] = 10'd340;
rom[266] = 10'd63;
rom[265] = 10'd203;
rom[264] = 10'd353;
rom[263] = 10'd448;
rom[262] = 10'd122;
rom[261] = 10'd283;
rom[260] = 10'd393;
rom[259] = 10'd174;
rom[258] = 10'd390;
rom[257] = 10'd312;
rom[256] = 10'd338;
rom[255] = 10'd228;
rom[254] = 10'd179;
rom[253] = 10'd199;
rom[252] = 10'd121;
rom[251] = 10'd173;
rom[250] = 10'd389;
rom[249] = 10'd332;
rom[248] = 10'd118;
rom[247] = 10'd337;
rom[246] = 10'd158;
rom[245] = 10'd279;
rom[244] = 10'd271;
rom[243] = 10'd416;
rom[242] = 10'd216;
rom[241] = 10'd308;
rom[240] = 10'd387;
rom[239] = 10'd226;
rom[238] = 10'd330;
rom[237] = 10'd171;
rom[236] = 10'd212;
rom[235] = 10'd117;
rom[234] = 10'd110;
rom[233] = 10'd329;
rom[232] = 10'd157;
rom[231] = 10'd306;
rom[230] = 10'd326;
rom[229] = 10'd225;
rom[228] = 10'd167;
rom[227] = 10'd115;
rom[226] = 10'd184;
rom[225] = 10'd109;
rom[224] = 10'd300;
rom[223] = 10'd305;
rom[222] = 10'd210;
rom[221] = 10'd155;
rom[220] = 10'd325;
rom[219] = 10'd352;
rom[218] = 10'd400;
rom[217] = 10'd298;
rom[216] = 10'd204;
rom[215] = 10'd94;
rom[214] = 10'd284;
rom[213] = 10'd209;
rom[212] = 10'd151;
rom[211] = 10'd180;
rom[210] = 10'd107;
rom[209] = 10'd297;
rom[208] = 10'd392;
rom[207] = 10'd323;
rom[206] = 10'd202;
rom[205] = 10'd93;
rom[204] = 10'd294;
rom[203] = 10'd178;
rom[202] = 10'd103;
rom[201] = 10'd143;
rom[200] = 10'd282;
rom[199] = 10'd62;
rom[198] = 10'd336;
rom[197] = 10'd201;
rom[196] = 10'd120;
rom[195] = 10'd172;
rom[194] = 10'd198;
rom[193] = 10'd91;
rom[192] = 10'd388;
rom[191] = 10'd293;
rom[190] = 10'd177;
rom[189] = 10'd278;
rom[188] = 10'd281;
rom[187] = 10'd61;
rom[186] = 10'd170;
rom[185] = 10'd116;
rom[184] = 10'd197;
rom[183] = 10'd87;
rom[182] = 10'd156;
rom[181] = 10'd277;
rom[180] = 10'd114;
rom[179] = 10'd169;
rom[178] = 10'd59;
rom[177] = 10'd291;
rom[176] = 10'd275;
rom[175] = 10'd270;
rom[174] = 10'd195;
rom[173] = 10'd166;
rom[172] = 10'd224;
rom[171] = 10'd108;
rom[170] = 10'd269;
rom[169] = 10'd79;
rom[168] = 10'd154;
rom[167] = 10'd113;
rom[166] = 10'd328;
rom[165] = 10'd55;
rom[164] = 10'd106;
rom[163] = 10'd165;
rom[162] = 10'd153;
rom[161] = 10'd150;
rom[160] = 10'd386;
rom[159] = 10'd208;
rom[158] = 10'd324;
rom[157] = 10'd385;
rom[156] = 10'd267;
rom[155] = 10'd47;
rom[154] = 10'd92;
rom[153] = 10'd163;
rom[152] = 10'd296;
rom[151] = 10'd304;
rom[150] = 10'd105;
rom[149] = 10'd102;
rom[148] = 10'd149;
rom[147] = 10'd263;
rom[146] = 10'd322;
rom[145] = 10'd292;
rom[144] = 10'd90;
rom[143] = 10'd200;
rom[142] = 10'd31;
rom[141] = 10'd321;
rom[140] = 10'd142;
rom[139] = 10'd176;
rom[138] = 10'd147;
rom[137] = 10'd101;
rom[136] = 10'd141;
rom[135] = 10'd196;
rom[134] = 10'd290;
rom[133] = 10'd89;
rom[132] = 10'd280;
rom[131] = 10'd60;
rom[130] = 10'd86;
rom[129] = 10'd99;
rom[128] = 10'd139;
rom[127] = 10'd168;
rom[126] = 10'd58;
rom[125] = 10'd276;
rom[124] = 10'd85;
rom[123] = 10'd194;
rom[122] = 10'd289;
rom[121] = 10'd78;
rom[120] = 10'd135;
rom[119] = 10'd112;
rom[118] = 10'd57;
rom[117] = 10'd83;
rom[116] = 10'd54;
rom[115] = 10'd274;
rom[114] = 10'd268;
rom[113] = 10'd164;
rom[112] = 10'd77;
rom[111] = 10'd152;
rom[110] = 10'd193;
rom[109] = 10'd53;
rom[108] = 10'd162;
rom[107] = 10'd104;
rom[106] = 10'd273;
rom[105] = 10'd266;
rom[104] = 10'd75;
rom[103] = 10'd46;
rom[102] = 10'd148;
rom[101] = 10'd51;
rom[100] = 10'd100;
rom[99] = 10'd45;
rom[98] = 10'd161;
rom[97] = 10'd265;
rom[96] = 10'd262;
rom[95] = 10'd71;
rom[94] = 10'd146;
rom[93] = 10'd30;
rom[92] = 10'd140;
rom[91] = 10'd88;
rom[90] = 10'd98;
rom[89] = 10'd43;
rom[88] = 10'd29;
rom[87] = 10'd261;
rom[86] = 10'd145;
rom[85] = 10'd138;
rom[84] = 10'd84;
rom[83] = 10'd259;
rom[82] = 10'd39;
rom[81] = 10'd97;
rom[80] = 10'd27;
rom[79] = 10'd56;
rom[78] = 10'd82;
rom[77] = 10'd137;
rom[76] = 10'd76;
rom[75] = 10'd384;
rom[74] = 10'd134;
rom[73] = 10'd23;
rom[72] = 10'd52;
rom[71] = 10'd133;
rom[70] = 10'd320;
rom[69] = 10'd15;
rom[68] = 10'd73;
rom[67] = 10'd50;
rom[66] = 10'd81;
rom[65] = 10'd131;
rom[64] = 10'd44;
rom[63] = 10'd70;
rom[62] = 10'd192;
rom[61] = 10'd288;
rom[60] = 10'd160;
rom[59] = 10'd272;
rom[58] = 10'd74;
rom[57] = 10'd49;
rom[56] = 10'd42;
rom[55] = 10'd69;
rom[54] = 10'd28;
rom[53] = 10'd144;
rom[52] = 10'd41;
rom[51] = 10'd67;
rom[50] = 10'd96;
rom[49] = 10'd38;
rom[48] = 10'd264;
rom[47] = 10'd260;
rom[46] = 10'd136;
rom[45] = 10'd22;
rom[44] = 10'd25;
rom[43] = 10'd37;
rom[42] = 10'd80;
rom[41] = 10'd26;
rom[40] = 10'd258;
rom[39] = 10'd35;
rom[38] = 10'd132;
rom[37] = 10'd21;
rom[36] = 10'd257;
rom[35] = 10'd72;
rom[34] = 10'd14;
rom[33] = 10'd48;
rom[32] = 10'd13;
rom[31] = 10'd19;
rom[30] = 10'd130;
rom[29] = 10'd68;
rom[28] = 10'd40;
rom[27] = 10'd11;
rom[26] = 10'd66;
rom[25] = 10'd129;
rom[24] = 10'd7;
rom[23] = 10'd36;
rom[22] = 10'd24;
rom[21] = 10'd34;
rom[20] = 10'd256;
rom[19] = 10'd20;
rom[18] = 10'd65;
rom[17] = 10'd33;
rom[16] = 10'd12;
rom[15] = 10'd128;
rom[14] = 10'd18;
rom[13] = 10'd10;
rom[12] = 10'd17;
rom[11] = 10'd6;
rom[10] = 10'd9;
rom[9] = 10'd64;
rom[8] = 10'd5;
rom[7] = 10'd3;
rom[6] = 10'd32;
rom[5] = 10'd16;
rom[4] = 10'd8;
rom[3] = 10'd4;
rom[2] = 10'd2;
rom[1] = 10'd1;
rom[0] = 10'd0;
end

always @ (*)
begin
if (en_512)
//assign out_32 = rom[adr_32];
out_512 = rom[adr_512];
else
out_512 = 512'd0;
end
endmodule

+ 111
- 0
sources_1/new/relt_seq_64.v Datei anzeigen

@@ -0,0 +1,111 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02.03.2021 15:19:53
// Design Name:
// Module Name: relt_seq_64
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////


module relt_seq_64(
input wire en_64,
output reg [9:0] out_64,
input wire [9:0] adr_64); // address- 8 deep memory
// Declare a memory rom of 8 4-bit registers. The indices are 0 to 7:
(* synthesis, rom_block = "ROM_CELL XYZ01" *) reg [9:0] rom[0:63];
// (* synthesis, logic_block *) reg [3:0] rom [0:7];
initial begin
rom[63] = 10'd63;
rom[62] = 10'd62;
rom[61] = 10'd61;
rom[60] = 10'd59;
rom[59] = 10'd55;
rom[58] = 10'd47;
rom[57] = 10'd31;
rom[56] = 10'd60;
rom[55] = 10'd58;
rom[54] = 10'd57;
rom[53] = 10'd54;
rom[52] = 10'd53;
rom[51] = 10'd46;
rom[50] = 10'd51;
rom[49] = 10'd45;
rom[48] = 10'd30;
rom[47] = 10'd43;
rom[46] = 10'd29;
rom[45] = 10'd39;
rom[44] = 10'd27;
rom[43] = 10'd56;
rom[42] = 10'd23;
rom[41] = 10'd52;
rom[40] = 10'd15;
rom[39] = 10'd50;
rom[38] = 10'd44;
rom[37] = 10'd49;
rom[36] = 10'd42;
rom[35] = 10'd28;
rom[34] = 10'd41;
rom[33] = 10'd38;
rom[32] = 10'd22;
rom[31] = 10'd25;
rom[30] = 10'd37;
rom[29] = 10'd26;
rom[28] = 10'd35;
rom[27] = 10'd21;
rom[26] = 10'd14;
rom[25] = 10'd48;
rom[24] = 10'd13;
rom[23] = 10'd19;
rom[22] = 10'd40;
rom[21] = 10'd11;
rom[20] = 10'd7;
rom[19] = 10'd36;
rom[18] = 10'd24;
rom[17] = 10'd34;
rom[16] = 10'd20;
rom[15] = 10'd33;
rom[14] = 10'd12;
rom[13] = 10'd18;
rom[12] = 10'd10;
rom[11] = 10'd17;
rom[10] = 10'd6;
rom[9] = 10'd9;
rom[8] = 10'd5;
rom[7] = 10'd3;
rom[6] = 10'd32;
rom[5] = 10'd16;
rom[4] = 10'd8;
rom[3] = 10'd4;
rom[2] = 10'd2;
rom[1] = 10'd1;
rom[0] = 10'd0;

end

always @ (*)
begin
if (en_64)
//assign out_32 = rom[adr_32];
out_64 = rom[adr_64];
else
out_64 = 64'd0;
end
endmodule

/*{10'd63, 10'd62, 10'd61, 10'd59, 10'd55, 10'd47, 10'd31, 10'd60, 10'd58, 10'd57, 10'd54, 10'd53, 10'd46, 10'd51, 10'd45, 10'd30,
10'd43, 10'd29, 10'd39, 10'd27, 10'd56, 10'd23, 10'd52, 10'd15, 10'd50, 10'd44, 10'd49, 10'd42, 10'd28, 10'd41, 10'd38, 10'd22,
10'd25, 10'd37, 10'd26, 10'd35, 10'd21, 10'd14, 10'd48, 10'd13, 10'd19, 10'd40, 10'd11, 10'd7, 10'd36, 10'd24, 10'd34, 10'd20, 10'd33,
10'd12, 10'd18, 10'd10, 10'd17, 10'd6, 10'd9, 10'd5, 10'd3, 10'd32, 10'd16, 10'd8, 10'd4, 10'd2, 10'd1, 10'd0}; */

Laden…
Abbrechen
Speichern