亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dec.vhd

?? it is used to understand the basic working of a BCH encoder/Decoder
?? VHD
字號:
-- File generated by bch.exe program.
-- The decoder for BCH code (15,7), t=2
 -- with optimisation.
-- GF(2^4) is generated by polynomial [1+x+...] - 11001;
-------------------------------------------------------------------
-- pow3

ENTITY ffce IS
PORT (clk, ce, din: IN BIT; -- ce- clock enable
	dout: OUT BIT); --output serial data
END ffce;

ARCHITECTURE ffcea OF ffce IS
	SIGNAL q: BIT;
  BEGIN
	dout<= q;
  PROCESS BEGIN 
	WAIT UNTIL clk'EVENT AND clk='1';
	IF ce='1' THEN
	  q<= din;
	ELSE
	  q<= q;
	END IF;
  END PROCESS;
END ffcea;	

-------------------------------------------------------------------
-- counter modulo n

	USE WORK.const.ALL;
ENTITY dcount IS
PORT (clk, reset: IN BIT; 
	cef, pe, vdout, vdout1: OUT BIT);
END dcount;

ARCHITECTURE dcounta OF dcount IS	
	SIGNAL cout: BIT_VECTOR(0 TO m-1);
	SIGNAL vdout11, vdoutS, vdoutR, nFirst, cef1: BIT;
  BEGIN
	pe<=  cout(0) AND NOT cout(1) AND NOT cout(2) AND NOT cout(3);
		-- pe=1 if count=0
	cef1<=  NOT cout(0) AND cout(1) AND NOT cout(2) AND NOT cout(3);
		-- cef=1 if count= 1;
	cef<= cef1;
	vdoutS<= nFirst AND cef1;
		-- vdout=1 if count=1
	vdoutR<= reset OR ( cout(0) AND NOT cout(1) AND cout(2) AND NOT cout(3));
		-- vdout=1 if count=k+1
	vdout1<= vdout11;

  PROCESS BEGIN -- increment or reset cout in ring, cout=L^count
	WAIT UNTIL clk'EVENT AND clk='1';
	IF reset='1' THEN
		nFirst<= '0';
	ELSIF vdoutR='1' THEN
		nFirst<= '1';
	END IF;

	IF vdoutR='1' THEN
		vdout11<= '0';
	ELSIF vdoutS='1' THEN
		vdout11<= '1';
	END IF;
	vdout<= vdout11; -- delay by one clock

	cout(0)<= cout(m-1) OR reset;
	cout(1)<= (cout(0) XOR cout(m-1)) AND NOT reset;
	cout(2)<= cout(1) AND NOT reset;
	cout(3)<= cout(2) AND NOT reset;
  END PROCESS;
END dcounta;

---------------------------------------------------------------------
-- buffer circuit

	USE WORK.const.ALL;
ENTITY dbuf IS
PORT (clk, err, vdout, din: IN BIT;
	dout: OUT BIT); 
END dbuf;

ARCHITECTURE dbufa OF dbuf IS
	SIGNAL buf: BIT_VECTOR(0 TO n+1); 
	-- siso shift registers for storing data to be corrected
  BEGIN
  PROCESS BEGIN
	WAIT UNTIL clk'EVENT AND clk='1';
	buf<= din & buf(0 TO n);
	dout<= (buf(n+1) XOR err) AND vdout;
  END PROCESS;
END dbufa;
---------------------------------------------------------------------------
-- Syndroms calculation circuits

	USE WORK.const.ALL;
ENTITY dsyn1 IS
PORT (clk, pe ,din: IN BIT;
	dout1: OUT BIT_VECTOR(0 TO m-1));
END dsyn1;

ARCHITECTURE dsyn1a OF dsyn1 IS
	SIGNAL syn: BIT_VECTOR(0 TO 3);
  BEGIN
	dout1<= syn;
  PROCESS BEGIN
	WAIT UNTIL clk'EVENT AND clk='1';
	IF pe='1' THEN
	  syn(0)<= din;
	  syn(1 TO 3)<= "000";
	ELSE
	syn(0)<= din XOR syn(3);
	syn(1)<= syn(0) XOR syn(3);
	syn(2)<= syn(1);
	syn(3)<= syn(2);
	END IF;
  END PROCESS;
END dsyn1a;


	USE WORK.const.ALL;
ENTITY dsyn3 IS
PORT (clk, pe ,din: IN BIT;
	dout3: OUT BIT_VECTOR(0 TO m-1));
END dsyn3;

ARCHITECTURE dsyn3a OF dsyn3 IS
	SIGNAL syn: BIT_VECTOR(0 TO 3);
  BEGIN
	dout3<= syn;
  PROCESS BEGIN
	WAIT UNTIL clk'EVENT AND clk='1';
	IF pe='1' THEN
	  syn(0)<= din;
	  syn(1 TO 3)<= "000";
	ELSE
	syn(0)<= din XOR syn(1);
	syn(1)<= syn(1) XOR syn(2);
	syn(2)<= syn(2) XOR syn(3);
	syn(3)<= syn(0) XOR syn(3);
	END IF;
  END PROCESS;
END dsyn3a;



-----------------------------------------------------------------
-- dout<= din^3

	USE WORK.const.ALL;
ENTITY dpow3 IS
PORT (din: IN BIT_VECTOR(0 TO m-1); 
	dout: OUT BIT_VECTOR(0 TO m-1));
END dpow3;

ARCHITECTURE dpow3a OF dpow3 IS
	SIGNAL dxor: BIT_VECTOR(0 TO 12);
  BEGIN
	dxor(0 TO m-1)<= din;
	dxor(4)<= din(0) AND din(1);
	dxor(5)<= din(0) AND din(2);
	dxor(6)<= din(0) AND din(3);
	dxor(7)<= din(1) AND din(2);
	dxor(8)<= din(1) AND din(3);
	dxor(9)<= din(2) AND din(3);
	dxor(10)<= dxor(2) XOR dxor(8); -- 1
	dxor(11)<= dxor(3) XOR dxor(9); -- 1
	dxor(12)<= dxor(4) XOR dxor(5); -- 1
		-- optimalization saving = 3 XOR gates
	dout(0)<= dxor(0) XOR dxor(5) XOR dxor(7) XOR dxor(8);
	dout(1)<= dxor(11) XOR dxor(12);
	dout(2)<= dxor(6) XOR dxor(7) XOR dxor(9) XOR dxor(10) XOR dxor(12);
	dout(3)<= dxor(1) XOR dxor(10) XOR dxor(11);
		-- 13 XOR gates
	
END dpow3a;

---------------------------------------------------------------------------
-- compare if equil = dout<= ((syn1)^3 == syn3) 

	USE WORK.const.ALL;
ENTITY deq IS
PORT (syn1, syn3: IN BIT_VECTOR(0 TO m-1); 
	dout: OUT BIT);
END deq;

ARCHITECTURE deqa OF deq IS
	SIGNAL neq_or: BIT_VECTOR(0 TO m-1);
	SIGNAL power: BIT_VECTOR(0 TO m-1); -- power =(syn1)^3	
		-- power 3 circuit
	COMPONENT dpow3 -- dout<= din^3
		PORT (din: IN BIT_VECTOR(0 TO m-1); 
			dout: OUT BIT_VECTOR(0 TO m-1)); 
		END COMPONENT;
		FOR ALL: dpow3 USE ENTITY WORK.dpow3 (dpow3a);
  BEGIN
	p1: dpow3
		PORT MAP(syn1, power);
	dout<= neq_or(m-1);
	neq_or(0)<= syn3(0) XOR power(0);
	gen:
	FOR i IN 1 TO m-1 GENERATE
		neq_or(i)<= neq_or(i-1) OR (syn3(i) XOR power(i)); 
	END GENERATE;	
END deqa;

---------------------------------------------------------------------------
-- Chien search circuit

	USE WORK.const.ALL;
ENTITY dch1 IS
PORT (clk, err, errcheck, pe: IN BIT;
	din: IN BIT_VECTOR(0 TO m-1);
	dout: OUT BIT_VECTOR(0 TO m-1));
END dch1;

ARCHITECTURE dch1a OF dch1 IS
	SIGNAL ch0reg: BIT;
	SIGNAL chin: BIT_VECTOR(0 TO m-1); -- registers input
	SIGNAL ch: BIT_VECTOR(0 TO 3); -- ch registers and optimisation
  BEGIN
	ch0reg<= ch(0) XOR err; -- error was found so correct it
	dout(0)<= ch(0) XOR errcheck; -- suppose that an error has occured
	dout(1 TO m-1)<= ch(1 TO m-1);
	chin(0)<= ch(3);
	chin(1)<= ch0reg XOR ch(3);
	chin(2)<= ch(1);
	chin(3)<= ch(2);
  PROCESS BEGIN
	WAIT UNTIL clk'EVENT AND clk='1';
	IF pe='1' THEN
	  ch(0 TO m-1)<= din;
	ELSE
	  ch(0 TO m-1)<= chin;
	END IF;
  END PROCESS;
	-- number XOR gates= 1;
END dch1a;


	USE WORK.const.ALL;
ENTITY dch3 IS
PORT (clk, err, errcheck, pe: IN BIT;
	din: IN BIT_VECTOR(0 TO m-1);
	dout: OUT BIT_VECTOR(0 TO m-1));
END dch3;

ARCHITECTURE dch3a OF dch3 IS
	SIGNAL ch0reg: BIT;
	SIGNAL chin: BIT_VECTOR(0 TO m-1); -- registers input
	SIGNAL ch: BIT_VECTOR(0 TO 3); -- ch registers and optimisation
  BEGIN
	ch0reg<= ch(0) XOR err; -- error was found so correct it
	dout(0)<= ch(0) XOR errcheck; -- suppose that an error has occured
	dout(1 TO m-1)<= ch(1 TO m-1);
	chin(0)<= ch(1);
	chin(1)<= ch(1) XOR ch(2);
	chin(2)<= ch(2) XOR ch(3);
	chin(3)<= ch0reg XOR ch(3);
  PROCESS BEGIN
	WAIT UNTIL clk'EVENT AND clk='1';
	IF pe='1' THEN
	  ch(0 TO m-1)<= din;
	ELSE
	  ch(0 TO m-1)<= chin;
	END IF;
  END PROCESS;
	-- number XOR gates= 3;
END dch3a;


---------------------------------------------------------------------------
-- decoder circuit
	USE WORK.const.ALL;
ENTITY dec IS
PORT (clk, reset, din: IN BIT; 
	vdout, dout: OUT BIT); 
END dec;

ARCHITECTURE deca OF dec IS
	SIGNAL  pe, cef, cefa, vdout1, din_reset: BIT;
	--pe -parallel enable sr->sc;  er - correct error,
	--vdout - valid data out - remenber data register 
	SIGNAL ff1, ff3, err, err1, err2, errcheck, ce, neq: BIT; 
	SIGNAL syn1, syn3: BIT_VECTOR(0 TO m-1); -- syndroms
	SIGNAL ch1, ch3: BIT_VECTOR(0 TO m-1); -- Chien output
	SIGNAL ch1_or: BIT_VECTOR(0 TO m-1);

	COMPONENT deq -- dout<= ( syn1^3 != syn3 )
		PORT (syn1, syn3: IN BIT_VECTOR(0 TO m-1); 
			dout: OUT BIT); 
		END COMPONENT;
		FOR ALL: deq USE ENTITY WORK.deq (deqa);
	COMPONENT ffce  
		PORT (clk, ce, din: IN BIT; 
			dout: OUT BIT); 
		END COMPONENT;
		FOR ALL: ffce USE ENTITY WORK.ffce (ffcea);
	COMPONENT dcount -- counter decoder 
		PORT(clk, reset: IN BIT; cef, pe, vdout, vdout1: OUT BIT); 
		END COMPONENT;
		FOR ALL: dcount USE ENTITY WORK.dcount (dcounta);
	COMPONENT dbuf -- buffer shift registers 
		PORT (clk, err, vdout, din: IN BIT; 
			dout: OUT BIT); 
		END COMPONENT;
		FOR ALL: dbuf USE ENTITY WORK.dbuf (dbufa);
	COMPONENT dsyn1 -- syndrom calculation 
		PORT (clk, pe, din: IN BIT; 
			dout1: OUT BIT_VECTOR(0 TO m-1)); 
		END COMPONENT;
		FOR ALL: dsyn1 USE ENTITY WORK.dsyn1 (dsyn1a);
	COMPONENT dsyn3 -- syndrom calculation 
		PORT (clk, pe, din: IN BIT; 
			dout3: OUT BIT_VECTOR(0 TO m-1)); 
		END COMPONENT;
		FOR ALL: dsyn3 USE ENTITY WORK.dsyn3 (dsyn3a);
	COMPONENT dch1 -- Chein search circuit 
		PORT (clk, err, errcheck, pe: IN BIT;
			 din: IN BIT_VECTOR(0 TO m-1); 
			dout: OUT BIT_VECTOR(0 TO m-1)); 
		END COMPONENT;
		FOR ALL: dch1 USE ENTITY WORK.dch1 (dch1a);
	COMPONENT dch3 -- Chein search circuit 
		PORT (clk, err, errcheck, pe: IN BIT;
			 din: IN BIT_VECTOR(0 TO m-1); 
			dout: OUT BIT_VECTOR(0 TO m-1)); 
		END COMPONENT;
		FOR ALL: dch3 USE ENTITY WORK.dch3 (dch3a);


  BEGIN
	c1: dcount
		PORT MAP (clk, reset, cef, pe, vdout, vdout1);
	b1: dbuf
		PORT MAP (clk, err, vdout1, din_reset, dout);
	e1: deq
		PORT MAP (ch1, ch3, neq);
	f1: ffce
		PORT MAP (clk, cefa, ch1_or(m-1), ff1);
	f2: ffce
		PORT MAP (clk, cefa, neq, ff3);
	s1: dsyn1
		PORT MAP (clk, pe, din_reset, syn1); 
	s3: dsyn3
		PORT MAP (clk, pe, din_reset, syn3); 
	h1: dch1
		PORT MAP (clk, err, errcheck, pe, syn1, ch1); 
	h3: dch3
		PORT MAP (clk, err, errcheck, pe, syn3, ch3); 


	din_reset<= din AND NOT reset;

	--  ch1_or eq_or gates
	ch1_or(0)<= ch1(0);
	gen:
	FOR i IN 1 TO m-1 GENERATE
		ch1_or(i)<= ch1_or(i-1) OR ch1(i);
	END GENERATE;	

	-- cefa - clock enable p1, p3 - cepa=1 if start of a new word or err
	cefa <= cef OR err; 
	-- error decision circuit
	err1<= NOT ff3 AND  NOT neq AND ff1 AND NOT ch1_or(m-1); 
		--single err
	err2<= ff1 AND ch1_or(m-1) AND ff3 AND NOT neq; 
		-- double error
	err<= err1 OR err2; -- error has been found
	errcheck<= NOT cef; -- 
END deca;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人aa大片| 色综合一区二区| 久久精品视频一区| 国产一区二区美女| 国产区在线观看成人精品| 国产麻豆精品一区二区| 欧美极品xxx| 色呦呦国产精品| 三级亚洲高清视频| 亚洲精品一区二区三区福利| 国产精品一区二区三区乱码| 国产欧美一区二区精品性色超碰| 成人黄色免费短视频| 亚洲视频免费在线| 欧美日韩国产精品自在自线| 日本亚洲欧美天堂免费| 久久夜色精品国产噜噜av| 国产美女娇喘av呻吟久久| 欧美va在线播放| 成人激情免费电影网址| 亚洲精品免费视频| 在线观看视频一区| 日韩高清中文字幕一区| 久久毛片高清国产| 91福利精品视频| 精品一区二区三区免费观看| 国产精品国产三级国产aⅴ原创| 欧美色精品在线视频| 国产一区二三区好的| 中文字幕一区免费在线观看| 欧美卡1卡2卡| 成人激情动漫在线观看| 日韩二区三区在线观看| 国产精品视频看| 日韩欧美一区二区三区在线| av毛片久久久久**hd| 日韩va亚洲va欧美va久久| 国产精品人妖ts系列视频| 欧美一级日韩免费不卡| 91麻豆国产福利精品| 久久国产乱子精品免费女| 一级特黄大欧美久久久| 久久久av毛片精品| 欧美一区二区免费| 色婷婷亚洲综合| 国产91综合网| 韩国成人在线视频| 一级女性全黄久久生活片免费| 中文字幕免费在线观看视频一区| 91麻豆精品国产自产在线观看一区| 成人在线视频一区| 精品午夜久久福利影院| 亚洲综合小说图片| 亚洲三级小视频| 久久久不卡网国产精品二区| 日韩一区二区三区视频在线| 欧美性色黄大片| 91麻豆免费看| 99精品国产一区二区三区不卡| 精久久久久久久久久久| 欧美a一区二区| 日韩—二三区免费观看av| 亚洲一区二区影院| 亚洲一区二区欧美日韩 | a在线欧美一区| 国产一区二区免费视频| 久久国产尿小便嘘嘘尿| 男女视频一区二区| 美女在线观看视频一区二区| 亚洲6080在线| 亚洲二区视频在线| 亚洲午夜久久久久中文字幕久| 亚洲精品精品亚洲| 亚洲欧美另类久久久精品| 国产精品久久久久永久免费观看 | 日本欧美一区二区三区乱码| 亚洲一二三四在线| 午夜精品在线看| 亚洲小说春色综合另类电影| 亚洲精品免费在线观看| 亚洲最大色网站| 午夜电影一区二区| 日韩精品亚洲一区| 毛片不卡一区二区| 狠狠色丁香九九婷婷综合五月| 久久爱www久久做| 国产一区二区三区国产| 国产麻豆精品95视频| 成人美女在线视频| 色偷偷88欧美精品久久久| 在线视频观看一区| 777色狠狠一区二区三区| 欧美在线一二三四区| 久久品道一品道久久精品| av不卡免费在线观看| 日本电影欧美片| 国产在线国偷精品免费看| 免费人成精品欧美精品| 国产精品毛片久久久久久久| 日韩欧美亚洲国产精品字幕久久久| 欧美精品日韩综合在线| 国内精品嫩模私拍在线| 亚洲第一福利一区| 国产激情视频一区二区在线观看| 亚洲欧美在线观看| 亚洲午夜电影在线观看| 偷窥国产亚洲免费视频| 国内精品国产成人| 一本一道久久a久久精品| 欧美精品第1页| 亚洲国产高清aⅴ视频| 亚洲另类一区二区| 麻豆91精品91久久久的内涵| 国产不卡在线一区| 欧美精品乱码久久久久久| 久久久久久久久久久电影| 亚洲精品国产精华液| 久久www免费人成看片高清| 99久久99久久免费精品蜜臀| 欧美人妇做爰xxxⅹ性高电影| 久久久国产午夜精品| 一个色综合网站| 国产精品白丝jk黑袜喷水| 欧美羞羞免费网站| 久久久精品黄色| 午夜精品久久久久久久久久久| 国产成人自拍高清视频在线免费播放| 色综合天天天天做夜夜夜夜做| 5566中文字幕一区二区电影| 久久久精品黄色| 日本不卡在线视频| 91天堂素人约啪| 精品国精品自拍自在线| 亚洲色图都市小说| 国产麻豆精品一区二区| 欧美精品高清视频| 亚洲视频资源在线| 国产成人在线电影| 日韩欧美成人午夜| 亚洲成av人片一区二区三区| 国产91精品露脸国语对白| 欧美成人综合网站| 首页国产丝袜综合| 色婷婷亚洲精品| 国产精品国产三级国产aⅴ原创| 激情图片小说一区| 欧美精选一区二区| 亚洲自拍欧美精品| 色综合天天天天做夜夜夜夜做| 一区二区视频在线| 成人午夜在线免费| 久久综合给合久久狠狠狠97色69| 亚洲五码中文字幕| 91久久精品一区二区| 国产精品嫩草久久久久| 国产精品一二三在| 欧美精品一区二区三区蜜桃视频| 无吗不卡中文字幕| 欧美日韩精品一区二区三区| 亚洲美女屁股眼交3| 成人激情免费电影网址| 久久精品欧美一区二区三区不卡| 精品亚洲成a人在线观看| 日韩一区二区精品葵司在线| 亚洲成av人影院| 欧美精品日韩一本| 三级久久三级久久| 欧美区一区二区三区| 亚洲一区二区三区国产| 欧美视频一区在线观看| 亚洲综合色自拍一区| 在线看日本不卡| 亚洲成人你懂的| 8v天堂国产在线一区二区| 日韩avvvv在线播放| 日韩欧美中文一区| 国产一区二区h| 国产亚洲综合性久久久影院| 国产电影一区二区三区| 亚洲国产精品av| 91女人视频在线观看| 亚洲激情自拍偷拍| 欧美调教femdomvk| 日日摸夜夜添夜夜添精品视频| 欧美福利视频一区| 国内成人免费视频| 亚洲欧美日本韩国| 欧美视频一区二区在线观看| 日韩成人精品视频| 欧美精品一区在线观看| 成人免费三级在线| 一区二区三区欧美视频| 日韩一级大片在线| 国产传媒欧美日韩成人| 亚洲免费观看在线视频| 欧美人狂配大交3d怪物一区| 精品一区二区三区不卡| 欧美激情资源网| 欧美日韩不卡一区二区| 久草在线在线精品观看|