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

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

?? uartctrl.tdf

?? uart的vhdl實現
?? TDF
字號:
TITLE "UART Controller"; 


%//////////////////
// INCLUDE FILES //
//////////////////%

INCLUDE "lpm_dff.inc";
INCLUDE "lpm_mux.inc";
INCLUDE "lpm_bustri.inc";


%////////////////////////////
// USER-DEFINED PARAMETERS //
////////////////////////////%

PARAMETERS
(
 FCLK,			-- Master Clock Frequency
CONFIG,			-- configration register content
BAUDRATE		-- Baudrate register content
);


%/////////////////////////
// CONSTANT DEFINITIONS //
/////////////////////////%

% DIVISOR VALUES %

CONSTANT DIV1200   = (FCLK+1200)   DIV (2*1200)   - 1;		-- 1200 Baud
CONSTANT DIV2400   = (FCLK+2400)   DIV (2*2400)   - 1;		-- 2400 Baud
CONSTANT DIV4800   = (FCLK+4800)   DIV (2*4800)   - 1;		-- 4800 Baud
CONSTANT DIV9600   = (FCLK+9600)   DIV (2*9600)   - 1;		-- 9600 Baud
CONSTANT DIV14400  = (FCLK+14400)  DIV (2*14400)  - 1;		-- 14400 Baud
CONSTANT DIV19200  = (FCLK+19200)  DIV (2*19200)  - 1;		-- 19200 Baud
CONSTANT DIV28800  = (FCLK+28800)  DIV (2*28800)  - 1;		-- 28800 Baud
CONSTANT DIV38400  = (FCLK+38400)  DIV (2*38400)  - 1;		-- 38400 Baud
CONSTANT DIV57600  = (FCLK+57600)  DIV (2*57600)  - 1;		-- 57600 Baud
CONSTANT DIV115200 = (FCLK+115200) DIV (2*115200) - 1;		-- 115200 Baud

%/////////////////////
// INPUTS & OUTPUTS //
/////////////////////%

SUBDESIGN UARTCTRL
(
 Di[7..0]										: INPUT;	-- Input Data Bus
 Do[7..0]										: OUTPUT;	-- Multiplexed Output Data Bus

 CLK, RESET, RD, WR, CS, A[1..0]				: INPUT;	-- CPU Interface
 INT, RCVD, SENT								: OUTPUT;
-- D[7..0]										: BIDIR;

 TxDIVISOR[16..0], TxCfgReg[6..0], TxReg[7..0]	: OUTPUT;	-- Tx Interface
 TxSTATUS, TxEnd 								: INPUT;	-- CTSf, DSRf					: INPUT;	
 TxStart, TxReset, TxCLK						: OUTPUT;

 RxSTATUS[4..0], RxReg[7..0]					: INPUT;	-- Rx Interface
 RxDIVISOR[16..0], RxCfgReg[6..0]				: OUTPUT;
 RxEnd 											: INPUT;	-- /RxRTS, /RxDTR							: INPUT;
 RxStart, RxReset, RxCLK						: OUTPUT;	-- , /RTS, /DTR			: OUTPUT;
)


%//////////////////////////
// VARIABLE DECLARATIONS //
//////////////////////////%

VARIABLE

% INTERNAL VARIABLES %
 --CfgReg[6..0]			: NODE;		-- UART Configuration Register
 --BaudReg[7..0]		: NODE;		-- UART Baud Rate Register (Write Only)
 DIVISOR[16..0]			: NODE;		-- Baud-Rate Clock Divisor
 DOMUX[7..0]			: NODE;		-- Output Data Bus Multiplexer
 DMXDo[3..0][7..0]		: NODE;		-- Demultiplexed Output Data Bus
 DIVd[16..0]			: NODE;		-- D-inputs to Divisor Register
 HANDSHAKE				: NODE;		-- Handshaking Type
BaudReg[7..0]			: NODE;
CfgReg[7..0]			: NODE;


% STATE MACHINES %
 RxRdss	: MACHINE WITH STATES (RxRd0, RxRd1, RxRd2);				-- Status Register Read
 TxWrss	: MACHINE WITH STATES (TxWr0, TxWr1, TxWr2);				-- Tx Register Write


%//////////////////
// LOGIC SECTION //
//////////////////%

BEGIN

% DEFAULT VALUES %
	CfgReg[7..0] = CONFIG;
	BaudReg[7..0] = BAUDRATE;

   IF    (BaudReg[] == 0) THEN DIVd[]=DIV1200;    --Ratess=Rate3;		-- Baud Rate = 1200
   ELSIF (BaudReg[] == 1) THEN DIVd[]=DIV2400;    --Ratess=Rate3;		-- Baud Rate = 2400
   ELSIF (BaudReg[] == 2) THEN DIVd[]=DIV4800;    --Ratess=Rate3;		-- Baud Rate = 4800
   ELSIF (BaudReg[] == 3) THEN DIVd[]=DIV9600;    --Ratess=Rate3;		-- Baud Rate = 9600
   ELSIF (BaudReg[] == 4) THEN DIVd[]=DIV14400;   --Ratess=Rate3;		-- Baud Rate = 14400
   ELSIF (BaudReg[] == 5) THEN DIVd[]=DIV19200;   --Ratess=Rate3;		-- Baud Rate = 19200
   ELSIF (BaudReg[] == 6) THEN DIVd[]=DIV28800;   --Ratess=Rate3;		-- Baud Rate = 28800
   ELSIF (BaudReg[] == 7) THEN DIVd[]=DIV38400;   --Ratess=Rate3;		-- Baud Rate = 38400
   ELSIF (BaudReg[] == 8) THEN DIVd[]=DIV57600;   --Ratess=Rate3;		-- Baud Rate = 57600
   ELSIF (BaudReg[] == 9) THEN DIVd[]=DIV115200;  --Ratess=Rate3;		-- Baud Rate = 115200
   ELSE DIVd[16..7]=0; DIVd[6..0]=BaudReg[6..0];  --Ratess=Rate3;		-- Baud Rate = FCLK/(2*BaudReg[6..0] + 2)
   END IF;

  TxREG[]	= LPM_DFF (Di[7..0], WR # CS # A1 # A0, VCC,,,,,, RESET,,)	-- Tx Data Register
              WITH (LPM_WIDTH=8)
              RETURNS (.q[]);
  DIVISOR[] = DIVd[];
 DOMUX[]	= LPM_MUX (.Data[][] = DMXDo[3..0][7..0], .Sel[] = A[1..0])						-- Output Data Bus Multiplexer
              WITH (LPM_WIDTH=8, LPM_SIZE=4, LPM_WIDTHS=2)
              RETURNS (.result[]);
 RCVD		= LPM_DFF (RxEND, CLK,,,,,,, RESET,,)							-- Rx Interrupt
              WITH (LPM_WIDTH=1)
              RETURNS (.q[]);
 SENT		= LPM_DFF (TxEND, CLK,,,,,,, RESET,,)							-- Tx Interrupt
              WITH (LPM_WIDTH=1)
              RETURNS (.q[]);
 INT		= LPM_DFF (RxEND # TxEND, CLK,,,,,,, RESET,,)					-- Rx/Tx Common Interrupt
              WITH (LPM_WIDTH=1)
              RETURNS (.q[]);

% COMBINATORIAL LOGIC %
 RxDIVISOR[]=DIVISOR[];		-- Common Rx/Tx Inputs
 TxDIVISOR[]=DIVISOR[];
 RxCfgReg[]=CfgReg[6..0];
 TxCfgReg[]=CfgReg[6..0];
 RxCLK=CLK;
 TxCLK=CLK;

 HANDSHAKE=CfgReg[6];

  

 Do[]=DOMUX[];				-- Multiplexed Output Data Bus
 DMXDo[0][]=RxREG[];		-- Demultiplexed Output Data Bus
 DMXDo[1][0]=TxSTATUS;
 DMXDo[1][5..1]=RxSTATUS[];
 DMXDo[1][7..6]=0;
 DMXDo[2][]=0;
 DMXDo[3][0]=GND;--CTSf;
 DMXDo[3][1]=GND;--DSRf;
 DMXDo[3][7..2]=0;

 RxReset=RESET;				-- Rx Reset
 TxReset=RESET;				-- Tx Reset

% STATE MACHINES %
 RxRdss.CLK = CLK;
 RxRdss.RESET= RESET;
 TxWrss.CLK = CLK;
 TxWrss.RESET= RESET;

% Rx DATA REGISTER READ STATE MACHINE %
 CASE RxRdss	IS

  WHEN RxRd0 =>		-- Wait for a Read from the Rx Data Register
   IF !(CS # A0 # A1 # Rd # !WR) THEN RxRdss=RxRd1; 
   ELSE RxRdss=RxRd0;
   END IF;

  WHEN RxRd1 =>		-- Wait until Rx Data Register Read is completed
   IF (CS # A0 # A1 # Rd # !WR) THEN RxRdss=RxRd2; 
   ELSE RxRdss=RxRd1;
   END IF;

  WHEN RxRd2 =>		-- Clear Rx Status Register
   RxStart=VCC;
   RxRdss=RxRd0; 

 END CASE;


% Tx DATA REGISTER WRITE STATE MACHINE %
 CASE TxWrss	IS

  WHEN TxWr0 =>		-- Wait for a Write to the Tx Data Register
   IF !(CS # A0 # A1 # !Rd # WR) THEN TxWrss=TxWr1; 
   ELSE TxWrss=TxWr0;
   END IF;

  WHEN TxWr1 =>		-- Wait until Tx Data Register Write is completed
   IF (CS # A0 # A1 # !Rd # WR) THEN TxWrss=TxWr2; 
   ELSE TxWrss=TxWr1;
   END IF;

  WHEN TxWr2 =>		-- Enable Tx
   TxStart=VCC;
   TxWrss=TxWr0;

 END CASE;

END;



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精油按摩中文字幕久久| 日本v片在线高清不卡在线观看| 麻豆成人av在线| 91麻豆精品国产91久久久久久| 午夜av电影一区| 91精品综合久久久久久| 免费观看久久久4p| 日韩精品一区二区在线| 国产一本一道久久香蕉| 国产精品国产精品国产专区不蜜| 99久久精品久久久久久清纯| 一区二区日韩av| 制服丝袜亚洲播放| 国产不卡在线播放| 一区二区三区精品在线观看| 欧美精选午夜久久久乱码6080| 六月丁香综合在线视频| 国产欧美日韩不卡免费| 91免费观看视频在线| 午夜精彩视频在线观看不卡| 日韩一区二区不卡| 不卡一区中文字幕| 午夜精品福利视频网站| 久久久欧美精品sm网站| 91色综合久久久久婷婷| 日本sm残虐另类| 国产女人18毛片水真多成人如厕| 色拍拍在线精品视频8848| 麻豆91在线播放免费| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 中文字幕一区二区在线观看| 欧美日韩国产高清一区二区| 国产综合久久久久影院| 亚洲综合免费观看高清完整版在线 | www.欧美色图| 日韩电影网1区2区| 中文字幕精品—区二区四季| 精品视频一区二区三区免费| 国产精品自拍三区| 午夜精品视频在线观看| 亚洲欧洲精品天堂一级| 日韩一区二区影院| 色爱区综合激月婷婷| 激情深爱一区二区| 亚洲综合久久av| 国产精品网站在线| 日韩免费看的电影| 欧美zozozo| 欧美久久一区二区| 91欧美一区二区| 国产自产v一区二区三区c| 亚洲成人中文在线| 亚洲天天做日日做天天谢日日欢| 日韩欧美三级在线| 欧美色偷偷大香| jlzzjlzz亚洲日本少妇| 国产乱码精品一区二区三区忘忧草| 亚洲一区二区三区精品在线| 中文欧美字幕免费| 精品日韩欧美在线| 日韩一级免费观看| 欧美高清视频不卡网| 欧美最猛黑人xxxxx猛交| av电影在线不卡| 成人h动漫精品| 国产成人精品三级麻豆| 国产精品自产自拍| 国产精品 日产精品 欧美精品| 亚洲18女电影在线观看| 亚洲电影第三页| 亚洲在线视频免费观看| 亚洲精品久久嫩草网站秘色| 亚洲另类在线制服丝袜| 亚洲免费在线电影| 亚洲免费观看高清| 亚洲视频1区2区| 亚洲黄色免费网站| 亚洲一区视频在线观看视频| 亚洲一区二区欧美日韩 | 在线免费观看一区| 在线日韩国产精品| 一本一本大道香蕉久在线精品| 97精品视频在线观看自产线路二| 97精品电影院| 在线观看一区日韩| 欧美日韩国产美| 日韩视频免费观看高清在线视频| 91精品国产综合久久婷婷香蕉| 欧美精品777| 精品国产髙清在线看国产毛片| 日韩一区二区电影| 国产亚洲人成网站| 国产精品久久久久久久久久久免费看 | 日韩一区二区影院| 久久综合狠狠综合久久综合88| 精品免费一区二区三区| 欧美激情一区三区| 亚洲综合视频在线| 青青青伊人色综合久久| 韩国三级在线一区| 大陆成人av片| 欧美日韩中文字幕精品| 亚洲免费伊人电影| 亚洲午夜激情网站| 久久av资源站| 99精品视频一区| 91精品国产综合久久久蜜臀粉嫩 | 亚洲国产毛片aaaaa无费看| 亚洲成人一二三| 久久国产精品第一页| 大陆成人av片| 欧美丝袜丝交足nylons| 精品乱码亚洲一区二区不卡| 亚洲欧洲国产日本综合| 日韩av电影天堂| 国产精品自拍av| 欧美日韩一本到| 国产日韩欧美高清在线| 亚洲综合激情小说| 国产露脸91国语对白| 色噜噜久久综合| 久久夜色精品国产噜噜av| 一区二区在线免费| 国产一区二区看久久| 欧美图区在线视频| 国产亚洲欧美激情| 午夜影视日本亚洲欧洲精品| 国产精品亚洲第一| 欧美精品第1页| 中文字幕一区二区三区视频 | 26uuu成人网一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 日韩不卡一区二区三区 | 成人高清免费观看| 欧美一区二区二区| 亚洲精品v日韩精品| 国产精品一卡二| 欧美一二三四区在线| 玉足女爽爽91| 成人av午夜影院| 亚洲精品在线免费播放| 亚洲高清免费观看| 92国产精品观看| 久久久久亚洲综合| 日韩精品电影一区亚洲| 一本一道波多野结衣一区二区| 久久这里都是精品| 日韩成人免费在线| 欧美特级限制片免费在线观看| 中文字幕成人在线观看| 国产麻豆成人传媒免费观看| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美中文一区二区| 首页亚洲欧美制服丝腿| 91福利在线免费观看| 亚洲人成电影网站色mp4| 99视频精品在线| 蜜桃精品视频在线观看| 8x8x8国产精品| 午夜影院在线观看欧美| 欧美日韩激情在线| 亚洲小少妇裸体bbw| 欧美色偷偷大香| 午夜精品免费在线观看| 5858s免费视频成人| 午夜伊人狠狠久久| 欧美理论片在线| 婷婷亚洲久悠悠色悠在线播放| 在线观看欧美日本| 亚洲欧美日韩系列| 99精品视频在线观看| 国产欧美日韩亚州综合 | 国产无人区一区二区三区| 秋霞成人午夜伦在线观看| 欧美在线影院一区二区| 亚洲h在线观看| 欧美日韩一级视频| 一区二区免费在线| 国产一区二区不卡在线| 国产视频一区在线观看| 国产精品一区二区男女羞羞无遮挡 | 狠狠色狠狠色综合日日91app| 日韩一区二区电影在线| 久久国产精品第一页| 欧美一级艳片视频免费观看| 午夜国产不卡在线观看视频| 波多野结衣在线一区| 中文字幕亚洲电影| 91麻豆精东视频| 亚洲柠檬福利资源导航| 欧美在线制服丝袜| 亚洲特级片在线| 欧美日韩精品福利| 日本亚洲天堂网| 26uuu国产一区二区三区| 99视频在线精品| 亚洲精品亚洲人成人网| 欧美午夜免费电影| 国产一区二区不卡老阿姨| 中文字幕av资源一区|