irr.v
上传用户:tzxuweilin
上传日期:2022-08-10
资源大小:747k
文件大小:2k
源码类别:

VHDL/FPGA/Verilog

开发平台:

VHDL

  1. module irr(ir0, ir1, ir2, ir3, ir4, ir5, ir6, ir7, ltim, freeze, rd, setzero, data, busdata, en);
  2. input ir0, ir1, ir2, ir3, ir4, ir5, ir6, ir7;
  3. input ltim;
  4. input freeze;
  5. input rd;
  6. input[7:0] setzero;
  7. output[7:0] data;
  8. output[7:0]busdata;
  9. output en;
  10. wire[7:0] irrreg;
  11. wire[7:0] senselatch;
  12. assign data = irrreg;
  13. assign busdata = irrreg;
  14. assign en = rd;
  15. assign irrreg[0] = freeze ? (senselatch[0] & ir0) | (ltim & ir0) : irrreg[0];
  16. assign irrreg[1] = freeze ? (senselatch[1] & ir1) | (ltim & ir1) : irrreg[1];
  17. assign irrreg[2] = freeze ? (senselatch[2] & ir2) | (ltim & ir2) : irrreg[2];
  18. assign irrreg[3] = freeze ? (senselatch[3] & ir3) | (ltim & ir3) : irrreg[3];
  19. assign irrreg[4] = freeze ? (senselatch[4] & ir4) | (ltim & ir4) : irrreg[4];
  20. assign irrreg[5] = freeze ? (senselatch[5] & ir5) | (ltim & ir5) : irrreg[5];
  21. assign irrreg[6] = freeze ? (senselatch[6] & ir6) | (ltim & ir6) : irrreg[6];
  22. assign irrreg[7] = freeze ? (senselatch[7] & ir7) | (ltim & ir7) : irrreg[7];
  23. assign senselatch[0] = setzero[0] ? 0 : (ir0 ? 1 : senselatch[0]);
  24. assign senselatch[1] = setzero[1] ? 0 : (ir1 ? 1 : senselatch[1]);
  25. assign senselatch[2] = setzero[2] ? 0 : (ir2 ? 1 : senselatch[2]);
  26. assign senselatch[3] = setzero[3] ? 0 : (ir3 ? 1 : senselatch[3]);
  27. assign senselatch[4] = setzero[4] ? 0 : (ir4 ? 1 : senselatch[4]);
  28. assign senselatch[5] = setzero[5] ? 0 : (ir5 ? 1 : senselatch[5]);
  29. assign senselatch[6] = setzero[6] ? 0 : (ir6 ? 1 : senselatch[6]);
  30. assign senselatch[7] = setzero[7] ? 0 : (ir7 ? 1 : senselatch[7]);
  31. // FOR /L %i in (0, 1, 7) do (ECHO  "assign irrreg[%i] = freeze ? (senselatch[%i] & ir%i) | (ltim & ir%i) : irrreg[%i];" >>a.txt)
  32. // FOR /L %i in (0, 1, 7) do (ECHO "assign senselatch[%i] = setzero[%i] ? 0 : (ir%i ? 1 : senselatch[%i]);" >>b.txt)
  33. endmodule