⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialparallel.vhd

📁 BCH编码器并行8路实现
💻 VHD
字号:
--------------------------------------------------------------------------------
-- Company: 
-- Engineer:
--
-- Create Date:    19:58:28 03/17/08
-- Design Name:    
-- Module Name:    serialparallel - Behavioral
-- Project Name:   
-- Target Device:  
-- Tool versions:  
-- Description:
--
-- Dependencies:
-- 
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
-- 
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity serialparallel is
	port(
		  clock:in std_logic;
		  reset:in std_logic;
		  in0:in std_logic;
		  in1:in std_logic;
		  in2:in std_logic;
		  in3:in std_logic;
		  in4:in std_logic;
		  in5:in std_logic;
		  in6:in std_logic;
		  in7:in std_logic;
		  en:in std_logic;
--		  read_write:in std_logic;	  ----read_write='1'为读fifo,read_write='0'为写fifo
		--  dout:out std_logic_vector(0 to 135)
		  dout0:out std_logic;
		  dout1:out std_logic;
		  dout2:out std_logic;
		  dout3:out std_logic;
		  dout4:out std_logic;
		  dout5:out std_logic;
		  dout6:out std_logic;
		  dout7:out std_logic;
		);
end serialparallel;

architecture Behavioral of serialparallel is

signal d:std_logic_vector(0 to 135);
begin

process(clock,reset)
   variable tmp:std_logic_vector(0 to 7);		 
begin
	if(reset='1') then
		d<=(others=>'0');
	elsif(clock'event and clock='1' and en='1') then
tmp(0):=d(0) xor in0;
tmp(1):=d(1) xor d(0) xor in0 xor in1;
tmp(2):=d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2;
tmp(3):=d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3;
tmp(4):=d(4) xor d(0) xor in0  xor d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3 xor in4;
tmp(5):=d(5) xor d(1) xor d(0) xor in0 xor in1 xor d(4) xor d(0) xor in0  xor d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3 xor in4 xor in5;
tmp(6):=d(6) xor d(0) xor in0 xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor d(5) xor d(1) xor d(0) xor in0 xor in1 xor d(4) xor d(0) xor in0  xor d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3 xor in4 xor in5 xor in6;
tmp(7):=d(7) xor d(0) xor in0 xor d(1) xor d(0) xor in0 xor in1 xor d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3 xor d(6) xor d(0) xor in0 xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor d(5) xor d(1) xor d(0) xor in0 xor in1 xor d(4) xor d(0) xor in0  xor d(3) xor d(2) xor d(1) xor d(0) xor in0 xor in1 xor in2 xor in3 xor in4 xor in5 xor in6 xor in7;

						
d(0)<=tmp(7) xor tmp(4) xor tmp(2) xor tmp(1) xor d(8);
d(1)<=tmp(5) xor tmp(3) xor tmp(2) xor tmp(0) xor d(9);
d(2)<=tmp(6) xor tmp(4) xor tmp(3) xor tmp(1) xor d(10);
d(3)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(2) xor d(11);
d(4)<=tmp(6) xor tmp(5) xor tmp(3) xor tmp(0) xor d(12);
d(5)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(1) xor d(13);
d(6)<=tmp(7) xor tmp(5) xor tmp(2) xor d(14);
d(7)<=tmp(6) xor tmp(3) xor tmp(0) xor d(15);
d(8)<=tmp(7) xor tmp(4) xor tmp(1) xor tmp(0) xor d(16);
d(9)<=tmp(5) xor tmp(2) xor tmp(1) xor tmp(0) xor d(17);
d(10)<=tmp(6) xor tmp(3) xor tmp(2) xor tmp(1) xor d(18);
d(11)<=tmp(7) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(0) xor d(19);
d(12)<=tmp(5) xor tmp(4) xor tmp(3) xor tmp(1) xor tmp(0) xor d(20);
d(13)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(2) xor tmp(1) xor tmp(0) xor d(21);
d(14)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(22);
d(15)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor d(23);
d(16)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor d(24);
d(17)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor d(25);
d(18)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor d(26);
d(19)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(0) xor d(27);
d(20)<=tmp(7) xor tmp(6) xor tmp(1) xor tmp(0) xor d(28);
d(21)<=tmp(7) xor tmp(2) xor tmp(1) xor d(29);
d(22)<=tmp(3) xor tmp(2) xor tmp(0) xor d(30);
d(23)<=tmp(4) xor tmp(3) xor tmp(1) xor d(31);
d(24)<=tmp(5) xor tmp(4) xor tmp(2) xor d(32);
d(25)<=tmp(6) xor tmp(5) xor tmp(3) xor tmp(0) xor d(33);
d(26)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(1) xor d(34);
d(27)<=tmp(7) xor tmp(5) xor tmp(2) xor tmp(0) xor d(35);
d(28)<=tmp(6) xor tmp(3) xor tmp(1) xor d(36);
d(29)<=tmp(7) xor tmp(4) xor tmp(2) xor d(37);
d(30)<=tmp(5) xor tmp(3) xor d(38);
d(31)<=tmp(6) xor tmp(4) xor d(39);
d(32)<=tmp(7) xor tmp(5) xor tmp(0) xor d(40);
d(33)<=tmp(6) xor tmp(1) xor tmp(0) xor d(41);
d(34)<=tmp(7) xor tmp(2) xor tmp(1) xor tmp(0) xor d(42);
d(35)<=tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(43);
d(36)<=tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(44);
d(37)<=tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor d(45);
d(38)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor d(46);
d(39)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(0) xor d(47);
d(40)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(1) xor d(48);
d(41)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(2) xor d(49);
d(42)<=tmp(7) xor tmp(6) xor tmp(3) xor tmp(0) xor d(50);
d(43)<=tmp(7) xor tmp(4) xor tmp(1) xor tmp(0) xor d(51);
d(44)<=tmp(5) xor tmp(2) xor tmp(1) xor d(52);
d(45)<=tmp(6) xor tmp(3) xor tmp(2) xor tmp(0) xor d(53);
d(46)<=tmp(7) xor tmp(4) xor tmp(3) xor tmp(1) xor d(54);
d(47)<=tmp(5) xor tmp(4) xor tmp(2) xor d(55);
d(48)<=tmp(6) xor tmp(5) xor tmp(3) xor d(56);
d(49)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(0) xor d(57);
d(50)<=tmp(7) xor tmp(5) xor tmp(1) xor d(58);
d(51)<=tmp(6) xor tmp(2) xor d(59);
d(52)<=tmp(7) xor tmp(3) xor tmp(0) xor d(60);
d(53)<=tmp(4) xor tmp(1) xor d(61);
d(54)<=tmp(5) xor tmp(2) xor d(62);
d(55)<=tmp(6) xor tmp(3) xor tmp(0) xor d(63);
d(56)<=tmp(7) xor tmp(4) xor tmp(1) xor tmp(0) xor d(64);
d(57)<=tmp(5) xor tmp(2) xor tmp(1) xor tmp(0) xor d(65);
d(58)<=tmp(6) xor tmp(3) xor tmp(2) xor tmp(1) xor d(66);
d(59)<=tmp(7) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(0) xor d(67);
d(60)<=tmp(5) xor tmp(4) xor tmp(3) xor tmp(1) xor tmp(0) xor d(68);
d(61)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(2) xor tmp(1) xor d(69);
d(62)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(3) xor tmp(2) xor tmp(0) xor d(70);
d(63)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(3) xor tmp(1) xor tmp(0) xor d(71);
d(64)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(2) xor tmp(1) xor tmp(0) xor d(72);
d(65)<=tmp(6) xor tmp(5) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(73);
d(66)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor d(74);
d(67)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor d(75);
d(68)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor d(76);
d(69)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor d(77);
d(70)<=tmp(7) xor tmp(6) xor tmp(5) xor d(78);
d(71)<=tmp(7) xor tmp(6) xor tmp(0) xor d(79);
d(72)<=tmp(7) xor tmp(1) xor d(80);
d(73)<=tmp(2) xor tmp(0) xor d(81);
d(74)<=tmp(3) xor tmp(1) xor d(82);
d(75)<=tmp(4) xor tmp(2) xor tmp(0) xor d(83);
d(76)<=tmp(5) xor tmp(3) xor tmp(1) xor d(84);
d(77)<=tmp(6) xor tmp(4) xor tmp(2) xor tmp(0) xor d(85);
d(78)<=tmp(7) xor tmp(5) xor tmp(3) xor tmp(1) xor tmp(0) xor d(86);
d(79)<=tmp(6) xor tmp(4) xor tmp(2) xor tmp(1) xor d(87);
d(80)<=tmp(7) xor tmp(5) xor tmp(3) xor tmp(2) xor d(88);
d(81)<=tmp(6) xor tmp(4) xor tmp(3) xor d(89);
d(82)<=tmp(7) xor tmp(5) xor tmp(4) xor d(90);
d(83)<=tmp(6) xor tmp(5) xor d(91);
d(84)<=tmp(7) xor tmp(6) xor d(92);
d(85)<=tmp(7) xor d(93);
d(86)<=tmp(0) xor d(94);
d(87)<=tmp(1) xor d(95);
d(88)<=tmp(2) xor tmp(0) xor d(96);
d(89)<=tmp(3) xor tmp(1) xor d(97);
d(90)<=tmp(4) xor tmp(2) xor tmp(0) xor d(98);
d(91)<=tmp(5) xor tmp(3) xor tmp(1) xor d(99);
d(92)<=tmp(6) xor tmp(4) xor tmp(2) xor tmp(0) xor d(100);
d(93)<=tmp(7) xor tmp(5) xor tmp(3) xor tmp(1) xor tmp(0) xor d(101);
d(94)<=tmp(6) xor tmp(4) xor tmp(2) xor tmp(1) xor tmp(0) xor d(102);
d(95)<=tmp(7) xor tmp(5) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(103);
d(96)<=tmp(6) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(104);
d(97)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(105);
d(98)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor d(106);
d(99)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor d(107);
d(100)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor d(108);
d(101)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor d(109);
d(102)<=tmp(7) xor tmp(6) xor tmp(5) xor d(110);
d(103)<=tmp(7) xor tmp(6) xor tmp(0) xor d(111);
d(104)<=tmp(7) xor tmp(1) xor d(112);
d(105)<=tmp(2) xor tmp(0) xor d(113);
d(106)<=tmp(3) xor tmp(1) xor tmp(0) xor d(114);
d(107)<=tmp(4) xor tmp(2) xor tmp(1) xor d(115);
d(108)<=tmp(5) xor tmp(3) xor tmp(2) xor d(116);
d(109)<=tmp(6) xor tmp(4) xor tmp(3) xor tmp(0) xor d(117);
d(110)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(1) xor tmp(0) xor d(118);
d(111)<=tmp(6) xor tmp(5) xor tmp(2) xor tmp(1) xor d(119);
d(112)<=tmp(7) xor tmp(6) xor tmp(3) xor tmp(2) xor tmp(0) xor d(120);
d(113)<=tmp(7) xor tmp(4) xor tmp(3) xor tmp(1) xor tmp(0) xor d(121);
d(114)<=tmp(5) xor tmp(4) xor tmp(2) xor tmp(1) xor tmp(0) xor d(122);
d(115)<=tmp(6) xor tmp(5) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(123);
d(116)<=tmp(7) xor tmp(6) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor tmp(0) xor d(124);
d(117)<=tmp(7) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor tmp(1) xor d(125);
d(118)<=tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(2) xor d(126);
d(119)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(3) xor tmp(0) xor d(127);
d(120)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(4) xor tmp(1) xor d(128);
d(121)<=tmp(7) xor tmp(6) xor tmp(5) xor tmp(2) xor d(129);
d(122)<=tmp(7) xor tmp(6) xor tmp(3) xor tmp(0);
d(123)<=tmp(7) xor tmp(4) xor tmp(1);
d(124)<=tmp(5) xor tmp(2);
d(125)<=tmp(6) xor tmp(3);
d(126)<=tmp(7) xor tmp(4);
d(127)<=tmp(5);
d(128)<=tmp(6);
d(129)<=tmp(7);
d(130 to 135)<="000000";------
end if;
end process;


--process(clock,reset)		 
--begin
--	if(reset='1') then
--		d<=(others=>'0');
--	elsif(clock'event and clock='1' and read_write='0') then
	   
end Behavioral;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -