Replaced the DSLX file with LFSR
diff --git a/verilog/rtl/user_module.x b/verilog/rtl/user_module.x
index 975e504..835b915 100644
--- a/verilog/rtl/user_module.x
+++ b/verilog/rtl/user_module.x
@@ -1,23 +1,279 @@
-// Copyright 2022 Google LLC.
-// SPDX-License-Identifier: Apache-2.0
+fn lfsr8(n: u8) -> u8 {
+    //let bit3 = (n >> 3) as u1;
+    //let bit4 = (n >> 4) as u1;
+    //let bit5 = (n >> 5) as u1;
+    //let bit7 = (n >> 7) as u1;
+    //let new_bit = (bit3 ^ bit4 ^ bit5 ^ bit7) as u8;
+    //(n << 1) | new_bit
 
-// ported from: https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
-fn popcount(v: u8) -> u8 {
-  let v = v - ((v >> 1) & u8:0x55);
-  let v = (v & u8:0x33) + ((v >> 2) & u8:0x33);
-  (v + (v >> 4) & u8:0x0F)
+    n[0+:u7] ++ (n[3+:u1] ^ n[4+:u1] ^ n[5+:u1] ^ n[7+:u1])
+}
+
+fn lfsr11(n : u11) -> u11 {
+    n[0+:u10] ++ (n[8+:u1] ^ n[10+:u1])
 }
 
 #[test]
-fn popcount_test() {
-  let _= assert_eq(popcount(u8:0b0000_0000), u8:0);
-  let _= assert_eq(popcount(u8:0b0000_0001), u8:1);
-  let _= assert_eq(popcount(u8:0b1111_0000), u8:4);
-  let _= assert_eq(popcount(u8:0b0101_0101), u8:4);
-  let _= assert_eq(popcount(u8:0b1111_1111), u8:8);
-  _
+fn lfsr_test() {
+    let _ = assert_eq(lfsr8(u8:0), u8:0);
+    let _ = assert_eq(lfsr8(u8:1), u8:2);
+    let _ = assert_eq(lfsr8(u8:2), u8:4);
+    let _ = assert_eq(lfsr8(u8:4), u8:8);
+    let _ = assert_eq(lfsr8(u8:8), u8:17);
+    let _ = assert_eq(lfsr8(u8:17), u8:35);
+    let _ = assert_eq(lfsr8(u8:35), u8:71);
+    let _ = assert_eq(lfsr8(u8:71), u8:142);
+    let _ = assert_eq(lfsr8(u8:142), u8:28);
+    let _ = assert_eq(lfsr8(u8:28), u8:56);
+    let _ = assert_eq(lfsr8(u8:56), u8:113);
+    let _ = assert_eq(lfsr8(u8:113), u8:226);
+    let _ = assert_eq(lfsr8(u8:226), u8:196);
+    let _ = assert_eq(lfsr8(u8:196), u8:137);
+    let _ = assert_eq(lfsr8(u8:137), u8:18);
+    let _ = assert_eq(lfsr8(u8:18), u8:37);
+    let _ = assert_eq(lfsr8(u8:37), u8:75);
+    let _ = assert_eq(lfsr8(u8:75), u8:151);
+    let _ = assert_eq(lfsr8(u8:151), u8:46);
+    let _ = assert_eq(lfsr8(u8:46), u8:92);
+    let _ = assert_eq(lfsr8(u8:92), u8:184);
+    let _ = assert_eq(lfsr8(u8:184), u8:112);
+    let _ = assert_eq(lfsr8(u8:112), u8:224);
+    let _ = assert_eq(lfsr8(u8:224), u8:192);
+    let _ = assert_eq(lfsr8(u8:192), u8:129);
+    let _ = assert_eq(lfsr8(u8:129), u8:3);
+    let _ = assert_eq(lfsr8(u8:3), u8:6);
+    let _ = assert_eq(lfsr8(u8:6), u8:12);
+    let _ = assert_eq(lfsr8(u8:12), u8:25);
+    let _ = assert_eq(lfsr8(u8:25), u8:50);
+    let _ = assert_eq(lfsr8(u8:50), u8:100);
+    let _ = assert_eq(lfsr8(u8:100), u8:201);
+    let _ = assert_eq(lfsr8(u8:201), u8:146);
+    let _ = assert_eq(lfsr8(u8:146), u8:36);
+    let _ = assert_eq(lfsr8(u8:36), u8:73);
+    let _ = assert_eq(lfsr8(u8:73), u8:147);
+    let _ = assert_eq(lfsr8(u8:147), u8:38);
+    let _ = assert_eq(lfsr8(u8:38), u8:77);
+    let _ = assert_eq(lfsr8(u8:77), u8:155);
+    let _ = assert_eq(lfsr8(u8:155), u8:55);
+    let _ = assert_eq(lfsr8(u8:55), u8:110);
+    let _ = assert_eq(lfsr8(u8:110), u8:220);
+    let _ = assert_eq(lfsr8(u8:220), u8:185);
+    let _ = assert_eq(lfsr8(u8:185), u8:114);
+    let _ = assert_eq(lfsr8(u8:114), u8:228);
+    let _ = assert_eq(lfsr8(u8:228), u8:200);
+    let _ = assert_eq(lfsr8(u8:200), u8:144);
+    let _ = assert_eq(lfsr8(u8:144), u8:32);
+    let _ = assert_eq(lfsr8(u8:32), u8:65);
+    let _ = assert_eq(lfsr8(u8:65), u8:130);
+    let _ = assert_eq(lfsr8(u8:130), u8:5);
+    let _ = assert_eq(lfsr8(u8:5), u8:10);
+    let _ = assert_eq(lfsr8(u8:10), u8:21);
+    let _ = assert_eq(lfsr8(u8:21), u8:43);
+    let _ = assert_eq(lfsr8(u8:43), u8:86);
+    let _ = assert_eq(lfsr8(u8:86), u8:173);
+    let _ = assert_eq(lfsr8(u8:173), u8:91);
+    let _ = assert_eq(lfsr8(u8:91), u8:182);
+    let _ = assert_eq(lfsr8(u8:182), u8:109);
+    let _ = assert_eq(lfsr8(u8:109), u8:218);
+    let _ = assert_eq(lfsr8(u8:218), u8:181);
+    let _ = assert_eq(lfsr8(u8:181), u8:107);
+    let _ = assert_eq(lfsr8(u8:107), u8:214);
+    let _ = assert_eq(lfsr8(u8:214), u8:172);
+    let _ = assert_eq(lfsr8(u8:172), u8:89);
+    let _ = assert_eq(lfsr8(u8:89), u8:178);
+    let _ = assert_eq(lfsr8(u8:178), u8:101);
+    let _ = assert_eq(lfsr8(u8:101), u8:203);
+    let _ = assert_eq(lfsr8(u8:203), u8:150);
+    let _ = assert_eq(lfsr8(u8:150), u8:44);
+    let _ = assert_eq(lfsr8(u8:44), u8:88);
+    let _ = assert_eq(lfsr8(u8:88), u8:176);
+    let _ = assert_eq(lfsr8(u8:176), u8:97);
+    let _ = assert_eq(lfsr8(u8:97), u8:195);
+    let _ = assert_eq(lfsr8(u8:195), u8:135);
+    let _ = assert_eq(lfsr8(u8:135), u8:15);
+    let _ = assert_eq(lfsr8(u8:15), u8:31);
+    let _ = assert_eq(lfsr8(u8:31), u8:62);
+    let _ = assert_eq(lfsr8(u8:62), u8:125);
+    let _ = assert_eq(lfsr8(u8:125), u8:251);
+    let _ = assert_eq(lfsr8(u8:251), u8:246);
+    let _ = assert_eq(lfsr8(u8:246), u8:237);
+    let _ = assert_eq(lfsr8(u8:237), u8:219);
+    let _ = assert_eq(lfsr8(u8:219), u8:183);
+    let _ = assert_eq(lfsr8(u8:183), u8:111);
+    let _ = assert_eq(lfsr8(u8:111), u8:222);
+    let _ = assert_eq(lfsr8(u8:222), u8:189);
+    let _ = assert_eq(lfsr8(u8:189), u8:122);
+    let _ = assert_eq(lfsr8(u8:122), u8:245);
+    let _ = assert_eq(lfsr8(u8:245), u8:235);
+    let _ = assert_eq(lfsr8(u8:235), u8:215);
+    let _ = assert_eq(lfsr8(u8:215), u8:174);
+    let _ = assert_eq(lfsr8(u8:174), u8:93);
+    let _ = assert_eq(lfsr8(u8:93), u8:186);
+    let _ = assert_eq(lfsr8(u8:186), u8:116);
+    let _ = assert_eq(lfsr8(u8:116), u8:232);
+    let _ = assert_eq(lfsr8(u8:232), u8:209);
+    let _ = assert_eq(lfsr8(u8:209), u8:162);
+    let _ = assert_eq(lfsr8(u8:162), u8:68);
+    let _ = assert_eq(lfsr8(u8:68), u8:136);
+    let _ = assert_eq(lfsr8(u8:136), u8:16);
+    let _ = assert_eq(lfsr8(u8:16), u8:33);
+    let _ = assert_eq(lfsr8(u8:33), u8:67);
+    let _ = assert_eq(lfsr8(u8:67), u8:134);
+    let _ = assert_eq(lfsr8(u8:134), u8:13);
+    let _ = assert_eq(lfsr8(u8:13), u8:27);
+    let _ = assert_eq(lfsr8(u8:27), u8:54);
+    let _ = assert_eq(lfsr8(u8:54), u8:108);
+    let _ = assert_eq(lfsr8(u8:108), u8:216);
+    let _ = assert_eq(lfsr8(u8:216), u8:177);
+    let _ = assert_eq(lfsr8(u8:177), u8:99);
+    let _ = assert_eq(lfsr8(u8:99), u8:199);
+    let _ = assert_eq(lfsr8(u8:199), u8:143);
+    let _ = assert_eq(lfsr8(u8:143), u8:30);
+    let _ = assert_eq(lfsr8(u8:30), u8:60);
+    let _ = assert_eq(lfsr8(u8:60), u8:121);
+    let _ = assert_eq(lfsr8(u8:121), u8:243);
+    let _ = assert_eq(lfsr8(u8:243), u8:231);
+    let _ = assert_eq(lfsr8(u8:231), u8:206);
+    let _ = assert_eq(lfsr8(u8:206), u8:156);
+    let _ = assert_eq(lfsr8(u8:156), u8:57);
+    let _ = assert_eq(lfsr8(u8:57), u8:115);
+    let _ = assert_eq(lfsr8(u8:115), u8:230);
+    let _ = assert_eq(lfsr8(u8:230), u8:204);
+    let _ = assert_eq(lfsr8(u8:204), u8:152);
+    let _ = assert_eq(lfsr8(u8:152), u8:49);
+    let _ = assert_eq(lfsr8(u8:49), u8:98);
+    let _ = assert_eq(lfsr8(u8:98), u8:197);
+    let _ = assert_eq(lfsr8(u8:197), u8:139);
+    let _ = assert_eq(lfsr8(u8:139), u8:22);
+    let _ = assert_eq(lfsr8(u8:22), u8:45);
+    let _ = assert_eq(lfsr8(u8:45), u8:90);
+    let _ = assert_eq(lfsr8(u8:90), u8:180);
+    let _ = assert_eq(lfsr8(u8:180), u8:105);
+    let _ = assert_eq(lfsr8(u8:105), u8:210);
+    let _ = assert_eq(lfsr8(u8:210), u8:164);
+    let _ = assert_eq(lfsr8(u8:164), u8:72);
+    let _ = assert_eq(lfsr8(u8:72), u8:145);
+    let _ = assert_eq(lfsr8(u8:145), u8:34);
+    let _ = assert_eq(lfsr8(u8:34), u8:69);
+    let _ = assert_eq(lfsr8(u8:69), u8:138);
+    let _ = assert_eq(lfsr8(u8:138), u8:20);
+    let _ = assert_eq(lfsr8(u8:20), u8:41);
+    let _ = assert_eq(lfsr8(u8:41), u8:82);
+    let _ = assert_eq(lfsr8(u8:82), u8:165);
+    let _ = assert_eq(lfsr8(u8:165), u8:74);
+    let _ = assert_eq(lfsr8(u8:74), u8:149);
+    let _ = assert_eq(lfsr8(u8:149), u8:42);
+    let _ = assert_eq(lfsr8(u8:42), u8:84);
+    let _ = assert_eq(lfsr8(u8:84), u8:169);
+    let _ = assert_eq(lfsr8(u8:169), u8:83);
+    let _ = assert_eq(lfsr8(u8:83), u8:167);
+    let _ = assert_eq(lfsr8(u8:167), u8:78);
+    let _ = assert_eq(lfsr8(u8:78), u8:157);
+    let _ = assert_eq(lfsr8(u8:157), u8:59);
+    let _ = assert_eq(lfsr8(u8:59), u8:119);
+    let _ = assert_eq(lfsr8(u8:119), u8:238);
+    let _ = assert_eq(lfsr8(u8:238), u8:221);
+    let _ = assert_eq(lfsr8(u8:221), u8:187);
+    let _ = assert_eq(lfsr8(u8:187), u8:118);
+    let _ = assert_eq(lfsr8(u8:118), u8:236);
+    let _ = assert_eq(lfsr8(u8:236), u8:217);
+    let _ = assert_eq(lfsr8(u8:217), u8:179);
+    let _ = assert_eq(lfsr8(u8:179), u8:103);
+    let _ = assert_eq(lfsr8(u8:103), u8:207);
+    let _ = assert_eq(lfsr8(u8:207), u8:158);
+    let _ = assert_eq(lfsr8(u8:158), u8:61);
+    let _ = assert_eq(lfsr8(u8:61), u8:123);
+    let _ = assert_eq(lfsr8(u8:123), u8:247);
+    let _ = assert_eq(lfsr8(u8:247), u8:239);
+    let _ = assert_eq(lfsr8(u8:239), u8:223);
+    let _ = assert_eq(lfsr8(u8:223), u8:191);
+    let _ = assert_eq(lfsr8(u8:191), u8:126);
+    let _ = assert_eq(lfsr8(u8:126), u8:253);
+    let _ = assert_eq(lfsr8(u8:253), u8:250);
+    let _ = assert_eq(lfsr8(u8:250), u8:244);
+    let _ = assert_eq(lfsr8(u8:244), u8:233);
+    let _ = assert_eq(lfsr8(u8:233), u8:211);
+    let _ = assert_eq(lfsr8(u8:211), u8:166);
+    let _ = assert_eq(lfsr8(u8:166), u8:76);
+    let _ = assert_eq(lfsr8(u8:76), u8:153);
+    let _ = assert_eq(lfsr8(u8:153), u8:51);
+    let _ = assert_eq(lfsr8(u8:51), u8:102);
+    let _ = assert_eq(lfsr8(u8:102), u8:205);
+    let _ = assert_eq(lfsr8(u8:205), u8:154);
+    let _ = assert_eq(lfsr8(u8:154), u8:53);
+    let _ = assert_eq(lfsr8(u8:53), u8:106);
+    let _ = assert_eq(lfsr8(u8:106), u8:212);
+    let _ = assert_eq(lfsr8(u8:212), u8:168);
+    let _ = assert_eq(lfsr8(u8:168), u8:81);
+    let _ = assert_eq(lfsr8(u8:81), u8:163);
+    let _ = assert_eq(lfsr8(u8:163), u8:70);
+    let _ = assert_eq(lfsr8(u8:70), u8:140);
+    let _ = assert_eq(lfsr8(u8:140), u8:24);
+    let _ = assert_eq(lfsr8(u8:24), u8:48);
+    let _ = assert_eq(lfsr8(u8:48), u8:96);
+    let _ = assert_eq(lfsr8(u8:96), u8:193);
+    let _ = assert_eq(lfsr8(u8:193), u8:131);
+    let _ = assert_eq(lfsr8(u8:131), u8:7);
+    let _ = assert_eq(lfsr8(u8:7), u8:14);
+    let _ = assert_eq(lfsr8(u8:14), u8:29);
+    let _ = assert_eq(lfsr8(u8:29), u8:58);
+    let _ = assert_eq(lfsr8(u8:58), u8:117);
+    let _ = assert_eq(lfsr8(u8:117), u8:234);
+    let _ = assert_eq(lfsr8(u8:234), u8:213);
+    let _ = assert_eq(lfsr8(u8:213), u8:170);
+    let _ = assert_eq(lfsr8(u8:170), u8:85);
+    let _ = assert_eq(lfsr8(u8:85), u8:171);
+    let _ = assert_eq(lfsr8(u8:171), u8:87);
+    let _ = assert_eq(lfsr8(u8:87), u8:175);
+    let _ = assert_eq(lfsr8(u8:175), u8:95);
+    let _ = assert_eq(lfsr8(u8:95), u8:190);
+    let _ = assert_eq(lfsr8(u8:190), u8:124);
+    let _ = assert_eq(lfsr8(u8:124), u8:249);
+    let _ = assert_eq(lfsr8(u8:249), u8:242);
+    let _ = assert_eq(lfsr8(u8:242), u8:229);
+    let _ = assert_eq(lfsr8(u8:229), u8:202);
+    let _ = assert_eq(lfsr8(u8:202), u8:148);
+    let _ = assert_eq(lfsr8(u8:148), u8:40);
+    let _ = assert_eq(lfsr8(u8:40), u8:80);
+    let _ = assert_eq(lfsr8(u8:80), u8:161);
+    let _ = assert_eq(lfsr8(u8:161), u8:66);
+    let _ = assert_eq(lfsr8(u8:66), u8:132);
+    let _ = assert_eq(lfsr8(u8:132), u8:9);
+    let _ = assert_eq(lfsr8(u8:9), u8:19);
+    let _ = assert_eq(lfsr8(u8:19), u8:39);
+    let _ = assert_eq(lfsr8(u8:39), u8:79);
+    let _ = assert_eq(lfsr8(u8:79), u8:159);
+    let _ = assert_eq(lfsr8(u8:159), u8:63);
+    let _ = assert_eq(lfsr8(u8:63), u8:127);
+    let _ = assert_eq(lfsr8(u8:127), u8:255);
+    let _ = assert_eq(lfsr8(u8:255), u8:254);
+    let _ = assert_eq(lfsr8(u8:254), u8:252);
+    let _ = assert_eq(lfsr8(u8:252), u8:248);
+    let _ = assert_eq(lfsr8(u8:248), u8:240);
+    let _ = assert_eq(lfsr8(u8:240), u8:225);
+    let _ = assert_eq(lfsr8(u8:225), u8:194);
+    let _ = assert_eq(lfsr8(u8:194), u8:133);
+    let _ = assert_eq(lfsr8(u8:133), u8:11);
+    let _ = assert_eq(lfsr8(u8:11), u8:23);
+    let _ = assert_eq(lfsr8(u8:23), u8:47);
+    let _ = assert_eq(lfsr8(u8:47), u8:94);
+    let _ = assert_eq(lfsr8(u8:94), u8:188);
+    let _ = assert_eq(lfsr8(u8:188), u8:120);
+    let _ = assert_eq(lfsr8(u8:120), u8:241);
+    let _ = assert_eq(lfsr8(u8:241), u8:227);
+    let _ = assert_eq(lfsr8(u8:227), u8:198);
+    let _ = assert_eq(lfsr8(u8:198), u8:141);
+    let _ = assert_eq(lfsr8(u8:141), u8:26);
+    let _ = assert_eq(lfsr8(u8:26), u8:52);
+    let _ = assert_eq(lfsr8(u8:52), u8:104);
+    let _ = assert_eq(lfsr8(u8:104), u8:208);
+    let _ = assert_eq(lfsr8(u8:208), u8:160);
+    let _ = assert_eq(lfsr8(u8:160), u8:64);
+    let _ = assert_eq(lfsr8(u8:64), u8:128);
+    let _ = assert_eq(lfsr8(u8:128), u8:1);
 }
 
 pub fn user_module(io_in: u8) -> u8 {
-  popcount(io_in)
+    lfsr8(io_in)
 }
+