📄 m8.vhd
字号:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY M8 IS ----------x8+x4+x3+x2+1 [2 3 4 8]
PORT(clkx1024:IN STD_LOGIC;
notready:IN STD_LOGIC;
M_8:OUT STD_LOGIC);
END M8;
ARCHITECTURE generator_archi OF M8 IS
SIGNAL count:INTEGER RANGE 0 TO 256;
SIGNAL enable:STD_LOGIC;
BEGIN
PROCESS(notready,count,clkx1024)
VARIABLE shift:STD_LOGIC_VECTOR(7 downto 0);
VARIABLE tmp:STD_LOGIC;
BEGIN
IF(notready='1'OR count=256) THEN
M_8<='0';
shift:="10000000";
ELSIF(enable='1') THEN
IF(clkx1024'event AND clkx1024='1')THEN
tmp:=shift(0) XOR shift(4) XOR shift(5) XOR shift(6)XOR
(NOT shift(7)and not shift(6)and not shift(5)and not shift(4)and not shift(3)and not shift(2)and not shift(1));
M_8<=tmp;
FOR i IN 0 TO 6 LOOP
shift(i):=shift(i+1);
END LOOP;
shift(7):=tmp;
END IF;
END IF;
END PROCESS;
PROCESS(notready,clkx1024)
BEGIN
IF notready='1' THEN
count<=0;
ELSIF(clkx1024'event AND clkx1024='1') THEN
IF count=256 THEN
count<=1;
ELSE count<=count+1;
END IF;
END IF;
END PROCESS;
PROCESS(count,clkx1024,notready)
BEGIN
IF notready='1' THEN
enable<='1';
elsif(clkx1024'event AND clkx1024='0') THEN
IF(count=255) THEN
enable<='0';
ELSIF(count=256) THEN
enable<='1';
END IF;
END IF;
END PROCESS;
END generator_archi;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -