From db3d516d1989f4b918cc4241e3701e694765dcef Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Mon, 9 Nov 2020 12:17:50 +0500 Subject: [PATCH] Bus-buffer testing start --- el2_lsu_bus_buffer.fir | 68 +++++++++--------- el2_lsu_bus_buffer.v | 55 ++++++-------- src/main/scala/lsu/el2_lsu_bus_buffer.scala | 4 +- .../classes/lsu/el2_lsu_bus_buffer.class | Bin 569512 -> 569524 bytes 4 files changed, 56 insertions(+), 71 deletions(-) diff --git a/el2_lsu_bus_buffer.fir b/el2_lsu_bus_buffer.fir index 4229ce91..8d8bffc4 100644 --- a/el2_lsu_bus_buffer.fir +++ b/el2_lsu_bus_buffer.fir @@ -2689,7 +2689,7 @@ circuit el2_lsu_bus_buffer : obuf_wr_timer <= _T_1873 @[el2_lsu_bus_buffer.scala 421:17] wire WrPtr0_m : UInt<2> WrPtr0_m <= UInt<1>("h00") - node _T_1874 = eq(buf_state[0], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:70] + node _T_1874 = eq(buf_state[0], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:65] node _T_1875 = eq(ibuf_tag, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 425:30] node _T_1876 = and(ibuf_valid, _T_1875) @[el2_lsu_bus_buffer.scala 425:19] node _T_1877 = eq(WrPtr0_r, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 426:18] @@ -2699,8 +2699,8 @@ circuit el2_lsu_bus_buffer : node _T_1881 = and(io.lsu_busreq_r, _T_1880) @[el2_lsu_bus_buffer.scala 425:58] node _T_1882 = or(_T_1876, _T_1881) @[el2_lsu_bus_buffer.scala 425:39] node _T_1883 = eq(_T_1882, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 425:5] - node _T_1884 = and(_T_1874, _T_1883) @[el2_lsu_bus_buffer.scala 424:81] - node _T_1885 = eq(buf_state[1], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:70] + node _T_1884 = and(_T_1874, _T_1883) @[el2_lsu_bus_buffer.scala 424:76] + node _T_1885 = eq(buf_state[1], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:65] node _T_1886 = eq(ibuf_tag, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 425:30] node _T_1887 = and(ibuf_valid, _T_1886) @[el2_lsu_bus_buffer.scala 425:19] node _T_1888 = eq(WrPtr0_r, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 426:18] @@ -2710,8 +2710,8 @@ circuit el2_lsu_bus_buffer : node _T_1892 = and(io.lsu_busreq_r, _T_1891) @[el2_lsu_bus_buffer.scala 425:58] node _T_1893 = or(_T_1887, _T_1892) @[el2_lsu_bus_buffer.scala 425:39] node _T_1894 = eq(_T_1893, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 425:5] - node _T_1895 = and(_T_1885, _T_1894) @[el2_lsu_bus_buffer.scala 424:81] - node _T_1896 = eq(buf_state[2], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:70] + node _T_1895 = and(_T_1885, _T_1894) @[el2_lsu_bus_buffer.scala 424:76] + node _T_1896 = eq(buf_state[2], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:65] node _T_1897 = eq(ibuf_tag, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 425:30] node _T_1898 = and(ibuf_valid, _T_1897) @[el2_lsu_bus_buffer.scala 425:19] node _T_1899 = eq(WrPtr0_r, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 426:18] @@ -2721,8 +2721,8 @@ circuit el2_lsu_bus_buffer : node _T_1903 = and(io.lsu_busreq_r, _T_1902) @[el2_lsu_bus_buffer.scala 425:58] node _T_1904 = or(_T_1898, _T_1903) @[el2_lsu_bus_buffer.scala 425:39] node _T_1905 = eq(_T_1904, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 425:5] - node _T_1906 = and(_T_1896, _T_1905) @[el2_lsu_bus_buffer.scala 424:81] - node _T_1907 = eq(buf_state[3], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:70] + node _T_1906 = and(_T_1896, _T_1905) @[el2_lsu_bus_buffer.scala 424:76] + node _T_1907 = eq(buf_state[3], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 424:65] node _T_1908 = eq(ibuf_tag, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 425:30] node _T_1909 = and(ibuf_valid, _T_1908) @[el2_lsu_bus_buffer.scala 425:19] node _T_1910 = eq(WrPtr0_r, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 426:18] @@ -2732,8 +2732,8 @@ circuit el2_lsu_bus_buffer : node _T_1914 = and(io.lsu_busreq_r, _T_1913) @[el2_lsu_bus_buffer.scala 425:58] node _T_1915 = or(_T_1909, _T_1914) @[el2_lsu_bus_buffer.scala 425:39] node _T_1916 = eq(_T_1915, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 425:5] - node _T_1917 = and(_T_1907, _T_1916) @[el2_lsu_bus_buffer.scala 424:81] - node _T_1918 = mux(_T_1917, UInt<2>("h03"), WrPtr0_r) @[Mux.scala 98:16] + node _T_1917 = and(_T_1907, _T_1916) @[el2_lsu_bus_buffer.scala 424:76] + node _T_1918 = mux(_T_1917, UInt<2>("h03"), UInt<2>("h03")) @[Mux.scala 98:16] node _T_1919 = mux(_T_1906, UInt<2>("h02"), _T_1918) @[Mux.scala 98:16] node _T_1920 = mux(_T_1895, UInt<1>("h01"), _T_1919) @[Mux.scala 98:16] node _T_1921 = mux(_T_1884, UInt<1>("h00"), _T_1920) @[Mux.scala 98:16] @@ -2744,63 +2744,63 @@ circuit el2_lsu_bus_buffer : io.buf_state <= _T_1924 @[el2_lsu_bus_buffer.scala 427:16] wire WrPtr1_m : UInt<2> WrPtr1_m <= UInt<1>("h00") - node _T_1925 = eq(buf_state[0], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:70] - node _T_1926 = eq(ibuf_tag, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:108] - node _T_1927 = and(ibuf_valid, _T_1926) @[el2_lsu_bus_buffer.scala 430:97] + node _T_1925 = eq(buf_state[0], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:65] + node _T_1926 = eq(ibuf_tag, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:103] + node _T_1927 = and(ibuf_valid, _T_1926) @[el2_lsu_bus_buffer.scala 430:92] node _T_1928 = eq(WrPtr0_m, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 431:33] node _T_1929 = and(io.lsu_busreq_m, _T_1928) @[el2_lsu_bus_buffer.scala 431:22] - node _T_1930 = or(_T_1927, _T_1929) @[el2_lsu_bus_buffer.scala 430:117] + node _T_1930 = or(_T_1927, _T_1929) @[el2_lsu_bus_buffer.scala 430:112] node _T_1931 = eq(WrPtr0_r, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 432:36] node _T_1932 = eq(WrPtr1_r, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 433:34] node _T_1933 = and(io.ldst_dual_r, _T_1932) @[el2_lsu_bus_buffer.scala 433:23] node _T_1934 = or(_T_1931, _T_1933) @[el2_lsu_bus_buffer.scala 432:46] node _T_1935 = and(io.lsu_busreq_r, _T_1934) @[el2_lsu_bus_buffer.scala 432:22] node _T_1936 = or(_T_1930, _T_1935) @[el2_lsu_bus_buffer.scala 431:42] - node _T_1937 = eq(_T_1936, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:83] - node _T_1938 = and(_T_1925, _T_1937) @[el2_lsu_bus_buffer.scala 430:81] - node _T_1939 = eq(buf_state[1], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:70] - node _T_1940 = eq(ibuf_tag, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 430:108] - node _T_1941 = and(ibuf_valid, _T_1940) @[el2_lsu_bus_buffer.scala 430:97] + node _T_1937 = eq(_T_1936, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:78] + node _T_1938 = and(_T_1925, _T_1937) @[el2_lsu_bus_buffer.scala 430:76] + node _T_1939 = eq(buf_state[1], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:65] + node _T_1940 = eq(ibuf_tag, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 430:103] + node _T_1941 = and(ibuf_valid, _T_1940) @[el2_lsu_bus_buffer.scala 430:92] node _T_1942 = eq(WrPtr0_m, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 431:33] node _T_1943 = and(io.lsu_busreq_m, _T_1942) @[el2_lsu_bus_buffer.scala 431:22] - node _T_1944 = or(_T_1941, _T_1943) @[el2_lsu_bus_buffer.scala 430:117] + node _T_1944 = or(_T_1941, _T_1943) @[el2_lsu_bus_buffer.scala 430:112] node _T_1945 = eq(WrPtr0_r, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 432:36] node _T_1946 = eq(WrPtr1_r, UInt<1>("h01")) @[el2_lsu_bus_buffer.scala 433:34] node _T_1947 = and(io.ldst_dual_r, _T_1946) @[el2_lsu_bus_buffer.scala 433:23] node _T_1948 = or(_T_1945, _T_1947) @[el2_lsu_bus_buffer.scala 432:46] node _T_1949 = and(io.lsu_busreq_r, _T_1948) @[el2_lsu_bus_buffer.scala 432:22] node _T_1950 = or(_T_1944, _T_1949) @[el2_lsu_bus_buffer.scala 431:42] - node _T_1951 = eq(_T_1950, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:83] - node _T_1952 = and(_T_1939, _T_1951) @[el2_lsu_bus_buffer.scala 430:81] - node _T_1953 = eq(buf_state[2], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:70] - node _T_1954 = eq(ibuf_tag, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 430:108] - node _T_1955 = and(ibuf_valid, _T_1954) @[el2_lsu_bus_buffer.scala 430:97] + node _T_1951 = eq(_T_1950, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:78] + node _T_1952 = and(_T_1939, _T_1951) @[el2_lsu_bus_buffer.scala 430:76] + node _T_1953 = eq(buf_state[2], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:65] + node _T_1954 = eq(ibuf_tag, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 430:103] + node _T_1955 = and(ibuf_valid, _T_1954) @[el2_lsu_bus_buffer.scala 430:92] node _T_1956 = eq(WrPtr0_m, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 431:33] node _T_1957 = and(io.lsu_busreq_m, _T_1956) @[el2_lsu_bus_buffer.scala 431:22] - node _T_1958 = or(_T_1955, _T_1957) @[el2_lsu_bus_buffer.scala 430:117] + node _T_1958 = or(_T_1955, _T_1957) @[el2_lsu_bus_buffer.scala 430:112] node _T_1959 = eq(WrPtr0_r, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 432:36] node _T_1960 = eq(WrPtr1_r, UInt<2>("h02")) @[el2_lsu_bus_buffer.scala 433:34] node _T_1961 = and(io.ldst_dual_r, _T_1960) @[el2_lsu_bus_buffer.scala 433:23] node _T_1962 = or(_T_1959, _T_1961) @[el2_lsu_bus_buffer.scala 432:46] node _T_1963 = and(io.lsu_busreq_r, _T_1962) @[el2_lsu_bus_buffer.scala 432:22] node _T_1964 = or(_T_1958, _T_1963) @[el2_lsu_bus_buffer.scala 431:42] - node _T_1965 = eq(_T_1964, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:83] - node _T_1966 = and(_T_1953, _T_1965) @[el2_lsu_bus_buffer.scala 430:81] - node _T_1967 = eq(buf_state[3], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:70] - node _T_1968 = eq(ibuf_tag, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 430:108] - node _T_1969 = and(ibuf_valid, _T_1968) @[el2_lsu_bus_buffer.scala 430:97] + node _T_1965 = eq(_T_1964, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:78] + node _T_1966 = and(_T_1953, _T_1965) @[el2_lsu_bus_buffer.scala 430:76] + node _T_1967 = eq(buf_state[3], UInt<3>("h00")) @[el2_lsu_bus_buffer.scala 430:65] + node _T_1968 = eq(ibuf_tag, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 430:103] + node _T_1969 = and(ibuf_valid, _T_1968) @[el2_lsu_bus_buffer.scala 430:92] node _T_1970 = eq(WrPtr0_m, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 431:33] node _T_1971 = and(io.lsu_busreq_m, _T_1970) @[el2_lsu_bus_buffer.scala 431:22] - node _T_1972 = or(_T_1969, _T_1971) @[el2_lsu_bus_buffer.scala 430:117] + node _T_1972 = or(_T_1969, _T_1971) @[el2_lsu_bus_buffer.scala 430:112] node _T_1973 = eq(WrPtr0_r, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 432:36] node _T_1974 = eq(WrPtr1_r, UInt<2>("h03")) @[el2_lsu_bus_buffer.scala 433:34] node _T_1975 = and(io.ldst_dual_r, _T_1974) @[el2_lsu_bus_buffer.scala 433:23] node _T_1976 = or(_T_1973, _T_1975) @[el2_lsu_bus_buffer.scala 432:46] node _T_1977 = and(io.lsu_busreq_r, _T_1976) @[el2_lsu_bus_buffer.scala 432:22] node _T_1978 = or(_T_1972, _T_1977) @[el2_lsu_bus_buffer.scala 431:42] - node _T_1979 = eq(_T_1978, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:83] - node _T_1980 = and(_T_1967, _T_1979) @[el2_lsu_bus_buffer.scala 430:81] - node _T_1981 = mux(_T_1980, UInt<2>("h03"), WrPtr1_r) @[Mux.scala 98:16] + node _T_1979 = eq(_T_1978, UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 430:78] + node _T_1980 = and(_T_1967, _T_1979) @[el2_lsu_bus_buffer.scala 430:76] + node _T_1981 = mux(_T_1980, UInt<2>("h03"), UInt<2>("h03")) @[Mux.scala 98:16] node _T_1982 = mux(_T_1966, UInt<2>("h02"), _T_1981) @[Mux.scala 98:16] node _T_1983 = mux(_T_1952, UInt<1>("h01"), _T_1982) @[Mux.scala 98:16] node _T_1984 = mux(_T_1938, UInt<1>("h00"), _T_1983) @[Mux.scala 98:16] diff --git a/el2_lsu_bus_buffer.v b/el2_lsu_bus_buffer.v index e44a164a..6c2abe97 100644 --- a/el2_lsu_bus_buffer.v +++ b/el2_lsu_bus_buffer.v @@ -1500,7 +1500,7 @@ module el2_lsu_bus_buffer( reg [1:0] obuf_sz; // @[Reg.scala 27:20] reg [7:0] obuf_byteen; // @[Reg.scala 27:20] reg [63:0] obuf_data; // @[el2_lib.scala 491:16] - wire _T_1874 = buf_state_0 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:70] + wire _T_1874 = buf_state_0 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:65] wire _T_1875 = ibuf_tag == 2'h0; // @[el2_lsu_bus_buffer.scala 425:30] wire _T_1876 = ibuf_valid & _T_1875; // @[el2_lsu_bus_buffer.scala 425:19] wire _T_1877 = WrPtr0_r == 2'h0; // @[el2_lsu_bus_buffer.scala 426:18] @@ -1510,8 +1510,8 @@ module el2_lsu_bus_buffer( wire _T_1881 = io_lsu_busreq_r & _T_1880; // @[el2_lsu_bus_buffer.scala 425:58] wire _T_1882 = _T_1876 | _T_1881; // @[el2_lsu_bus_buffer.scala 425:39] wire _T_1883 = ~_T_1882; // @[el2_lsu_bus_buffer.scala 425:5] - wire _T_1884 = _T_1874 & _T_1883; // @[el2_lsu_bus_buffer.scala 424:81] - wire _T_1885 = buf_state_1 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:70] + wire _T_1884 = _T_1874 & _T_1883; // @[el2_lsu_bus_buffer.scala 424:76] + wire _T_1885 = buf_state_1 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:65] wire _T_1886 = ibuf_tag == 2'h1; // @[el2_lsu_bus_buffer.scala 425:30] wire _T_1887 = ibuf_valid & _T_1886; // @[el2_lsu_bus_buffer.scala 425:19] wire _T_1888 = WrPtr0_r == 2'h1; // @[el2_lsu_bus_buffer.scala 426:18] @@ -1521,8 +1521,8 @@ module el2_lsu_bus_buffer( wire _T_1892 = io_lsu_busreq_r & _T_1891; // @[el2_lsu_bus_buffer.scala 425:58] wire _T_1893 = _T_1887 | _T_1892; // @[el2_lsu_bus_buffer.scala 425:39] wire _T_1894 = ~_T_1893; // @[el2_lsu_bus_buffer.scala 425:5] - wire _T_1895 = _T_1885 & _T_1894; // @[el2_lsu_bus_buffer.scala 424:81] - wire _T_1896 = buf_state_2 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:70] + wire _T_1895 = _T_1885 & _T_1894; // @[el2_lsu_bus_buffer.scala 424:76] + wire _T_1896 = buf_state_2 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:65] wire _T_1897 = ibuf_tag == 2'h2; // @[el2_lsu_bus_buffer.scala 425:30] wire _T_1898 = ibuf_valid & _T_1897; // @[el2_lsu_bus_buffer.scala 425:19] wire _T_1899 = WrPtr0_r == 2'h2; // @[el2_lsu_bus_buffer.scala 426:18] @@ -1532,49 +1532,34 @@ module el2_lsu_bus_buffer( wire _T_1903 = io_lsu_busreq_r & _T_1902; // @[el2_lsu_bus_buffer.scala 425:58] wire _T_1904 = _T_1898 | _T_1903; // @[el2_lsu_bus_buffer.scala 425:39] wire _T_1905 = ~_T_1904; // @[el2_lsu_bus_buffer.scala 425:5] - wire _T_1906 = _T_1896 & _T_1905; // @[el2_lsu_bus_buffer.scala 424:81] - wire _T_1907 = buf_state_3 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:70] + wire _T_1906 = _T_1896 & _T_1905; // @[el2_lsu_bus_buffer.scala 424:76] + wire _T_1907 = buf_state_3 == 3'h0; // @[el2_lsu_bus_buffer.scala 424:65] wire _T_1908 = ibuf_tag == 2'h3; // @[el2_lsu_bus_buffer.scala 425:30] - wire _T_1909 = ibuf_valid & _T_1908; // @[el2_lsu_bus_buffer.scala 425:19] wire _T_1910 = WrPtr0_r == 2'h3; // @[el2_lsu_bus_buffer.scala 426:18] wire _T_1911 = WrPtr1_r == 2'h3; // @[el2_lsu_bus_buffer.scala 426:57] - wire _T_1912 = io_ldst_dual_r & _T_1911; // @[el2_lsu_bus_buffer.scala 426:45] - wire _T_1913 = _T_1910 | _T_1912; // @[el2_lsu_bus_buffer.scala 426:27] - wire _T_1914 = io_lsu_busreq_r & _T_1913; // @[el2_lsu_bus_buffer.scala 425:58] - wire _T_1915 = _T_1909 | _T_1914; // @[el2_lsu_bus_buffer.scala 425:39] - wire _T_1916 = ~_T_1915; // @[el2_lsu_bus_buffer.scala 425:5] - wire _T_1917 = _T_1907 & _T_1916; // @[el2_lsu_bus_buffer.scala 424:81] - wire [1:0] _T_1918 = _T_1917 ? 2'h3 : WrPtr0_r; // @[Mux.scala 98:16] - wire [1:0] _T_1919 = _T_1906 ? 2'h2 : _T_1918; // @[Mux.scala 98:16] + wire [1:0] _T_1919 = _T_1906 ? 2'h2 : 2'h3; // @[Mux.scala 98:16] wire [1:0] _T_1920 = _T_1895 ? 2'h1 : _T_1919; // @[Mux.scala 98:16] wire [1:0] WrPtr0_m = _T_1884 ? 2'h0 : _T_1920; // @[Mux.scala 98:16] wire [8:0] _T_1923 = {buf_state_3,buf_state_2,buf_state_1}; // @[Cat.scala 29:58] wire _T_1928 = WrPtr0_m == 2'h0; // @[el2_lsu_bus_buffer.scala 431:33] wire _T_1929 = io_lsu_busreq_m & _T_1928; // @[el2_lsu_bus_buffer.scala 431:22] - wire _T_1930 = _T_1876 | _T_1929; // @[el2_lsu_bus_buffer.scala 430:117] + wire _T_1930 = _T_1876 | _T_1929; // @[el2_lsu_bus_buffer.scala 430:112] wire _T_1936 = _T_1930 | _T_1881; // @[el2_lsu_bus_buffer.scala 431:42] - wire _T_1937 = ~_T_1936; // @[el2_lsu_bus_buffer.scala 430:83] - wire _T_1938 = _T_1874 & _T_1937; // @[el2_lsu_bus_buffer.scala 430:81] + wire _T_1937 = ~_T_1936; // @[el2_lsu_bus_buffer.scala 430:78] + wire _T_1938 = _T_1874 & _T_1937; // @[el2_lsu_bus_buffer.scala 430:76] wire _T_1942 = WrPtr0_m == 2'h1; // @[el2_lsu_bus_buffer.scala 431:33] wire _T_1943 = io_lsu_busreq_m & _T_1942; // @[el2_lsu_bus_buffer.scala 431:22] - wire _T_1944 = _T_1887 | _T_1943; // @[el2_lsu_bus_buffer.scala 430:117] + wire _T_1944 = _T_1887 | _T_1943; // @[el2_lsu_bus_buffer.scala 430:112] wire _T_1950 = _T_1944 | _T_1892; // @[el2_lsu_bus_buffer.scala 431:42] - wire _T_1951 = ~_T_1950; // @[el2_lsu_bus_buffer.scala 430:83] - wire _T_1952 = _T_1885 & _T_1951; // @[el2_lsu_bus_buffer.scala 430:81] + wire _T_1951 = ~_T_1950; // @[el2_lsu_bus_buffer.scala 430:78] + wire _T_1952 = _T_1885 & _T_1951; // @[el2_lsu_bus_buffer.scala 430:76] wire _T_1956 = WrPtr0_m == 2'h2; // @[el2_lsu_bus_buffer.scala 431:33] wire _T_1957 = io_lsu_busreq_m & _T_1956; // @[el2_lsu_bus_buffer.scala 431:22] - wire _T_1958 = _T_1898 | _T_1957; // @[el2_lsu_bus_buffer.scala 430:117] + wire _T_1958 = _T_1898 | _T_1957; // @[el2_lsu_bus_buffer.scala 430:112] wire _T_1964 = _T_1958 | _T_1903; // @[el2_lsu_bus_buffer.scala 431:42] - wire _T_1965 = ~_T_1964; // @[el2_lsu_bus_buffer.scala 430:83] - wire _T_1966 = _T_1896 & _T_1965; // @[el2_lsu_bus_buffer.scala 430:81] - wire _T_1970 = WrPtr0_m == 2'h3; // @[el2_lsu_bus_buffer.scala 431:33] - wire _T_1971 = io_lsu_busreq_m & _T_1970; // @[el2_lsu_bus_buffer.scala 431:22] - wire _T_1972 = _T_1909 | _T_1971; // @[el2_lsu_bus_buffer.scala 430:117] - wire _T_1978 = _T_1972 | _T_1914; // @[el2_lsu_bus_buffer.scala 431:42] - wire _T_1979 = ~_T_1978; // @[el2_lsu_bus_buffer.scala 430:83] - wire _T_1980 = _T_1907 & _T_1979; // @[el2_lsu_bus_buffer.scala 430:81] - wire [1:0] _T_1981 = _T_1980 ? 2'h3 : WrPtr1_r; // @[Mux.scala 98:16] - wire [1:0] _T_1982 = _T_1966 ? 2'h2 : _T_1981; // @[Mux.scala 98:16] + wire _T_1965 = ~_T_1964; // @[el2_lsu_bus_buffer.scala 430:78] + wire _T_1966 = _T_1896 & _T_1965; // @[el2_lsu_bus_buffer.scala 430:76] + wire [1:0] _T_1982 = _T_1966 ? 2'h2 : 2'h3; // @[Mux.scala 98:16] wire [1:0] _T_1983 = _T_1952 ? 2'h1 : _T_1982; // @[Mux.scala 98:16] reg [3:0] buf_rspageQ_0; // @[el2_lsu_bus_buffer.scala 563:63] wire _T_2770 = buf_state_3 == 3'h5; // @[el2_lsu_bus_buffer.scala 476:104] @@ -4007,7 +3992,7 @@ end // initial WrPtr1_r <= 2'h1; end else if (_T_1966) begin WrPtr1_r <= 2'h2; - end else if (_T_1980) begin + end else begin WrPtr1_r <= 2'h3; end end @@ -4020,7 +4005,7 @@ end // initial WrPtr0_r <= 2'h1; end else if (_T_1906) begin WrPtr0_r <= 2'h2; - end else if (_T_1917) begin + end else begin WrPtr0_r <= 2'h3; end end diff --git a/src/main/scala/lsu/el2_lsu_bus_buffer.scala b/src/main/scala/lsu/el2_lsu_bus_buffer.scala index 9ef2b142..d52066dc 100644 --- a/src/main/scala/lsu/el2_lsu_bus_buffer.scala +++ b/src/main/scala/lsu/el2_lsu_bus_buffer.scala @@ -421,13 +421,13 @@ class el2_lsu_bus_buffer extends Module with RequireAsyncReset with el2_lib { obuf_wr_timer := withClock(io.lsu_busm_clk){RegNext(obuf_wr_timer_in, 0.U)} val WrPtr0_m = WireInit(UInt(DEPTH_LOG2.W), 0.U) - WrPtr0_m := MuxCase(WrPtr0_r, (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & + WrPtr0_m := MuxCase(3.U, (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | (io.lsu_busreq_r & ((WrPtr0_r === i.U) | (io.ldst_dual_r & (WrPtr1_r === i.U)))))) -> i.U)) io.buf_state := buf_state.reverse.reduce(Cat(_,_)) val WrPtr1_m = WireInit(UInt(DEPTH_LOG2.W), 0.U) - WrPtr1_m := MuxCase(WrPtr1_r, (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | + WrPtr1_m := MuxCase(3.U, (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | (io.lsu_busreq_m & (WrPtr0_m===i.U)) | (io.lsu_busreq_r & (((WrPtr0_r === i.U)) | (io.ldst_dual_r & (WrPtr1_r===i.U)))))) -> i.U)) diff --git a/target/scala-2.12/classes/lsu/el2_lsu_bus_buffer.class b/target/scala-2.12/classes/lsu/el2_lsu_bus_buffer.class index 233fe0b139667de4c4096fb222ce433a7785812d..0e286f46559c17526c31216c0db43fccf10e4fef 100644 GIT binary patch delta 4346 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