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

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

?? uusb_mmc_sm.v

?? 實現USB接口功能的VHDL和verilog完整源代碼
?? V
字號:
/*    
# --------------------------------------------------------------------------
#    Module      : Uusb_dual.v 
#     
#    Revision     : $Revision: 1.37 $
#    
#---------------------------------------------------------------------------
#   Purpose : 
#-------------------------------------------------------------------------
*/   

// FOR FPGA TEST TOP MODULE  

module Uusb_mmc_sm
	(
	// inputs from bus
                testmode,
                testreset,
		pwronresetb,
		//sm64_enable,
		clock48,	// 48 MHz clock
		rcvin,		// differential in
		vpin,		// plus in
		vmin,		// minus in
                // inputs from smart media
                card_ready,
                smart_rd_data,

		vmo,		// minus out
		vpo,		// plus out
		usboen,	// oe for usb bits
		suspend,
		usbclock,
		usbclockout,

         gpiopin0,
		 gpiopin1,
		 gpiopin2,
		 gpiopin3,
		 gpiopin4,
		 gpiopin5,
		 gpiopin6,
		 gpiopin7,
		  // in /out for mmc
                dataout_dat_in,
                dataout_dat_out,
                dataout_dat_enable,

//                data_cf_in,
                disablebus,
                //sm64_enable,
                clock_fc_out,

//                data_fc_out,
                datain_cmd_in,
                datain_cmd_out,
                datain_cmd_enable,
           // for MCU I/F
				data_in,
				data_out,
				clk_mcu,
                // outputs to smart media
                mcclock_out,
                mcclock,
                ale,
                cle,
                reb,
                web,
                wpb,
                out_enable,
                smart_wr_data

	);
  
  input      testmode;
  input      testreset;
  input      pwronresetb;
  //input      sm64_enable;
  input	     clock48;
  input	     rcvin;
  input	     vpin;
  input	     vmin;

  input      dataout_dat_in;
  output     dataout_dat_out;
  output     dataout_dat_enable;

  input              card_ready;
  input        [7:0] smart_rd_data;

  output     vmo;
  output     vpo;
  output     usboen;
  output     suspend;
  output     clock_fc_out;
  input      datain_cmd_in;
  output     datain_cmd_out;
  output     datain_cmd_enable;

  output     disablebus;
  output     mcclock_out;
  input      mcclock;
  input      usbclock;
  output     usbclockout;
  output             ale;
  output             cle;
  output             reb;
  output             web;
  output             wpb;
  output             out_enable;
  output       [7:0] smart_wr_data;

  input     gpiopin0;
  input     gpiopin1;
  input     gpiopin2;

  output    gpiopin3;
  output    gpiopin4;
  output    gpiopin5;
  output    gpiopin6;
  output    gpiopin7;

  output   data_out;
  output   clk_mcu;
  input    data_in;

// wires for endpoints
wire      out_enable1;
  wire	     endp0rdstall = 1'b0;
  wire	     endp0wrstall = 1'b0;
  wire      endp3rdready = 1'b1;

  wire [7:0] currentalternatesetting;
  wire [7:0] endpwrdata;
  wire [7:0] endp2rddata;
  wire [7:0] endp3rddata;
  wire [7:0] endp0rddata;
  wire [6:0] devromdescriptorindex;
  wire [7:0] devromsetupaddr;
  wire [7:0] romdevsetupdata;
  wire [2:0] setupbyteaddr = 3'b000;
  wire [7:0] setupdataout;	// one of 8 bytes of the setup stage data
  wire[10:0] framenumber;
  wire[15:0] datawr3data;
  wire[2:0] clockrate;
  wire[2:0] setmode;
wire spimode = (setmode == 3'b001) ? 1'b1 : 1'b0;
wire enmmc   = (setmode == 3'b010 || setmode == 3'b001) ? 1'b1 : 1'b0;
wire disablebus =(setmode == 3'b000 || setmode == 3'b001) ? 1'b1 : 1'b0; 
wire sm64_enable  = (setmode == 3'b100) ? 1'b1 :1'b0;
wire sm_enable = (setmode == 3'b011 || setmode == 3'b100) ? 1'b1 : 1'b0;

wire busy_end_out;
wire busy_end_mmc = (enmmc && !spimode) ? busy_end_out:1'b1;

Ucore core (
        .testmode(testmode),
        .testreset(testreset),
        .clock48 (clock48),
        .rcvin (rcvin),
        .vpin (vpin),
        .vmin (vmin),
        .vmo (vmo),
        .vpo (vpo),
        .usboen (usboen),
        .usbclockout (usbclockout),
        .usbclock (usbclock),
        .pwronreset(~pwronresetb),
    	.usbreset (usbreset),
    	.endpwrdata (endpwrdata),
    	.datapacketok (datapacketok),
    	.datapacketnotok (datapacketnotok),
        .devromdescriptorindex(devromdescriptorindex),
        .devromsetupaddr(devromsetupaddr),
        .romdevsetupdata(romdevsetupdata),
    	.romen(romen),
    	.endp0internaltogglebit(endp0internaltogglebit),
        .setupcycle(setupcycle),
        .setupbyteaddr(setupbyteaddr),
        .setupdata(setupdataout),
	    .rcvack(rcvack),
	    .suspend(suspend),
		.synthsof(synthsof),
	    .framenumber(framenumber),
	    .currentalternatesetting (currentalternatesetting),

        `include "Uvendorconnections.v"
 
	// connections to endpoint0 - read/write
	.endp0wr (endp0wr),
	.endp0wrready (endp0wrready),
	.endp0wrstall (endp0wrstall),
	.endp0rd (endp0rd),
	.endp0rddata (endp0rddata),
	//.endp0rdready (1'b1),
	.endp0rdready (endp0rdready && busy_end_mmc),
	.endp0rdstall (endp0rdstall),

	// connections to endpoint1 - write only
	.endp1wr (endp1wr),
	.endp1wrready (endp1wrready),
	//.endp1wrstall (endp1wrstall),

	// connections to endpoint2 - read only
	.endp2rd (endp2rd),
	.endp2rddata(endp2rddata),
	.endp2rdready(endp2rdready),
	//.endp2rdstall (endp2rdstall),
	
	.endp3rd (endp3rd),
	.endp3rddata(endp3rddata),
	.endp3rdready(endp3rdready)
	//.endp3rdstall (endp3rdstall)
	
	);
wire[7:0] datarddata;
wire[7:0] statusdatammc;
wire[7:0] statusdatasm;
wire[7:0] datawrdatammc;
wire[7:0] datawrdatasm;
wire[7:0] cmddatamc;



wire clock48mmc  = clock48;
wire cmdrdmmc , cmdrdsm;
wire statuswrmmc, statuswrsm;
wire datardmmc,datardsm;
wire datawrmmc, datawrsm;
wire cmdrdmc = (enmmc) ? cmdrdmmc : cmdrdsm ;
wire statuswrmc =(enmmc)? statuswrmmc : statuswrsm ;
wire[7:0]  statusdatamc =(enmmc)? statusdatammc :statusdatasm;
wire datard = (enmmc) ? datardmmc :datardsm;
wire datawr = (enmmc) ? datawrmmc :datawrsm;
wire[7:0] datawrdata = (enmmc)? datawrdatammc :datawrdatasm;
wire clock_5m, sync_reset_made ;

reg sofmmc;
always@(posedge mcclock)
 sofmmc <= synthsof;

UCtlreg ctlreg (
				.getbusy(getbusy),
				.getstatus(getstatus),
				.getstatuscheck(getstatuscheck),
				.usbclock(usbclock),
				.mcclock(mcclock),
				.syncreset(usbreset),
				.mcreset(mcreset),
				.datapacketok(datapacketok),
				.datapacketnotok(datapacketnotok),
				.cmdwrusb(endp0wr),
				.statusrdusb(endp0rd),
				.cmddatausb(endpwrdata),
				.statusdatausb(endp0rddata),
				.statusrdreadyusb(endp0rdready),
				.cmdwrreadyusb(endp0wrready),
                              // Memory Card
				.cmdrdmc(cmdrdmc),
				.cmddatamc(cmddatamc),
				.statuswrmc(statuswrmc),
				.statusdatamc(statusdatamc),
				.statuswrreadymc(statuswrreadymc),
				.cmdrdreadymc(cmdrdreadymc),
				// Configuration of MMC or SSFDC
				.enmmc(enmmc)//(enmmc)
				);
reg getdataout;
reg getstatusmc;
reg getstatuscheckmc;
reg setcmdwrmc;
reg getbusymc;

always@(posedge mcclock)
 begin
	getdataout <= getdata || setcmdrd;
	getstatusmc <=getstatus;
	getstatuscheckmc <= getstatuscheck;
	setcmdwrmc <= setcmdwr;
	getbusymc <= getbusy;
 end


usbmmc u_usbmmc   (
				.getstatus_check(getstatuscheckmc),
                .busy_end_out(busy_end_out),
				.sof(sofmmc),
                .usb_48_clock_uf_in(clock48mmc),
                .usb_clock_uf_in(usbclock),
                .mmc_enable(enmmc),
                //.disablebus(disablebus),
                .spimode(spimode),
                .divide_rate(clockrate),
                .sync_reset_uf_in(usbreset),
                .clock_5m_out(mcclock_out),
                .clock_5m(mcclock),
                //.sync_reset_made(sync_reset_made),
                .sync_reset_made(mcreset),
                .dataout_dat_in(dataout_dat_in),
                .dataout_dat_out(dataout_dat_out),
                .dataout_dat_enable(dataout_dat_enable),

                .getstatus(getstatusmc),
                .getdata(getdataout),

                .cmdrdready_uf_in(cmdrdreadymc),
                .cmdrddata_uf_in(cmddatamc),

                .endp1rdready_uf_in(datardready),
                .endp1rddata_uf_in(datarddata),

                .statuswrready_uf_in(statuswrreadymc),
                .endp2wrready_uf_in(datawrready),

                .cmdrd_fu_out(cmdrdmmc),
                .cmdrddatadone_fu_out(cmddatadone),

                .statuswr_fu_out(statuswrmmc),
                .statuswrdata_fu_out(statusdatammc),
                .statuswrdatadone_fu_out(statuswrdone),

                .endp1rd_fu_out(datardmmc),
                .endp1rddatadone_fu_out(datarddone),

                .endp2wr_fu_out(datawrmmc),
                .endp2wrdata_fu_out(datawrdatammc),
                .endp2wrdatadone_fu_out(datawrdone),
                .data_in(data_in),
				.data_out(data_out),
				.clk_mcu(clk_mcu),
                .setcmdwr(setcmdwrmc),
                .clock_fc_out(clock_fc_out),
                .datain_cmd_in(datain_cmd_in),
                .datain_cmd_out(datain_cmd_out),
                .datain_cmd_enable(datain_cmd_enable),
                .endp3(datawr3data)
                );
wire[7:0] smart_rd_data;
wire[7:0] smart_wr_data;

smarti  u_smarti(
           .mcclock(mcclock),
           .mcreset(mcreset),
           .sm_enable(sm_enable),
	   .sof(sofmmc),
	   .sm64_enable(sm64_enable),
           .disablebus(disablebus),
           .cmdrdready(cmdrdreadymc),
           .statuswrready(statuswrreadymc),
           .getbusy(getbusymc),
           .getstatus(getstatusmc),
           .getdata(getdataout),
           .datardready(datardready),
           .datawrready(datawrready),
           .cmddata(cmddatamc),
           .datarddata(datarddata),
           .card_ready(card_ready),
           .smart_rd_data(smart_rd_data),

           .cmdrd(cmdrdsm),
           .statuswr(statuswrsm),
           .statusdata(statusdatasm),
           .datard(datardsm),
           .datawr(datawrsm),
           .datawrdata(datawrdatasm),
           .web(web),
           .reb(reb),
           .cle(cle),
           .ale(ale),
           //.wpb(wpb),
           .out_enable(out_enable1),
           //.sm_state(sm_state), rha 11.29
           .smart_wr_data(smart_wr_data)
           );

assign out_enable = ~out_enable1;
Ufifo3rd endpoint3rd(
	   .usbclock(usbclock),
	   .syncreset(usbreset),
	   .fiford(endp3rd),
	   .fifowrdata(datawr3data),
	   .fiforddata(endp3rddata)
	   );

Udevrom rom (
	// addressing
	.devromdescriptorindex (devromdescriptorindex),
	.devromsetupaddr (devromsetupaddr),

	// read port
	.romdevsetupdata (romdevsetupdata)
	);

Ufifo endpoint1wr (
          .usbclock(usbclock),
          .mcclock(mcclock),
          .syncreset(usbreset),
          .mmcreset(mcreset),
          // To Fifo
          .fifowrdata(endpwrdata),
          // write port USB
          .fifowr(endp1wr),
          .fifowrready(endp1wrready),
          .datapacketok(datapacketok),
          .datapacketnotok(datapacketnotok),
          // read port M/C
          .fiforddata(datarddata),
          .fiford(datard),   // 8051 make the read strobe for getting data
          .fifordready(datardready)
          );

Ufiforx endpoint2rd (
          .setcmdwr(setcmdwr),
		  .getdata(getdataout),
		  .mcclock(mcclock),
          .usbclock(usbclock),
          .syncreset(usbreset),
          .mmcreset(mcreset),
          // To fifo
          .fiforddata(endp2rddata),
          // write port  M/C
          .fifowr(datawr),
          .fifowrdata(datawrdata),
          .fifowrready(datawrready),
          .datapacketok(datapacketok),
          .datapacketnotok(datapacketnotok),
          // read port  USB
          .fiford(endp2rd),
          .fifordready(endp2rdready)
          );


endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人ar影院免费观看视频| 国产精品美女视频| 国产精品一线二线三线精华| 日韩欧美一区电影| 成人午夜伦理影院| 亚洲 欧美综合在线网络| 欧美大片拔萝卜| 成人三级伦理片| 五月婷婷色综合| 亚洲国产精品精华液ab| 欧美三级电影在线观看| 国产精品一区久久久久| 亚洲在线成人精品| 久久亚洲捆绑美女| 欧美亚洲图片小说| 国产精品正在播放| 日韩电影网1区2区| 中文字幕一区二区三区四区不卡| 欧美片网站yy| 99久久99久久免费精品蜜臀| 一区二区高清在线| 欧美国产综合一区二区| 日韩一级欧美一级| 在线观看日韩一区| 成人网男人的天堂| 久久99精品久久久久| 亚洲国产视频a| 国产精品久久久久久久蜜臀| 欧美日韩一区三区四区| 成人激情图片网| 天天做天天摸天天爽国产一区| 久久一二三国产| 欧美一级片在线观看| 日本二三区不卡| 国产高清一区日本| 精品一区二区在线观看| 亚洲bt欧美bt精品777| 综合久久久久久久| 中文在线免费一区三区高中清不卡 | 一本久久综合亚洲鲁鲁五月天| 美女视频黄频大全不卡视频在线播放 | 欧美在线制服丝袜| 粉嫩嫩av羞羞动漫久久久| 日本一道高清亚洲日美韩| 国产精品久久久久久久久图文区| 337p日本欧洲亚洲大胆色噜噜| 884aa四虎影成人精品一区| 色一情一伦一子一伦一区| 国产寡妇亲子伦一区二区| 韩国中文字幕2020精品| 久久精品噜噜噜成人88aⅴ| 亚洲图片自拍偷拍| 一区二区高清视频在线观看| 亚洲日本在线a| 日韩理论片网站| 国产精品亲子伦对白| 国产精品久久毛片av大全日韩| 国产无人区一区二区三区| 精品对白一区国产伦| 欧美日韩一区久久| 欧美精品三级日韩久久| 777久久久精品| 91精品国产综合久久精品麻豆| 精品视频全国免费看| 91久久一区二区| 欧美日韩精品一区二区三区蜜桃| 91国偷自产一区二区三区观看| 91啪在线观看| 在线视频中文字幕一区二区| 欧洲精品一区二区| 91麻豆精品91久久久久久清纯| 欧美精品v日韩精品v韩国精品v| 欧美伊人精品成人久久综合97 | 麻豆国产精品一区二区三区 | 欧洲精品在线观看| 欧美剧情电影在线观看完整版免费励志电影| 在线观看日韩av先锋影音电影院| 欧美日韩国产综合视频在线观看| 欧美日韩亚洲不卡| 精品免费视频.| 国产精品女人毛片| 亚洲精品高清在线| 日韩av不卡一区二区| 精品影院一区二区久久久| 国产美女主播视频一区| 99久久99久久综合| 777奇米成人网| 国产拍揄自揄精品视频麻豆| 中文字幕中文字幕一区二区| 夜夜嗨av一区二区三区网页| 手机精品视频在线观看| 国产呦精品一区二区三区网站| 国产最新精品免费| 97精品久久久午夜一区二区三区 | 日韩欧美亚洲一区二区| 欧美激情一区三区| 亚洲网友自拍偷拍| 国产一区二区三区精品视频| 成人精品视频一区二区三区| 欧美亚洲一区二区三区四区| 精品国产区一区| √…a在线天堂一区| 午夜天堂影视香蕉久久| 国产经典欧美精品| 色婷婷久久久综合中文字幕| 在线观看国产91| 欧美一区二区国产| 久久一二三国产| 有码一区二区三区| 国产乱理伦片在线观看夜一区| 色婷婷av一区二区三区之一色屋| 日韩欧美另类在线| 一区二区日韩电影| 国产99久久久国产精品潘金| 欧美日韩一级黄| 国产精品视频一区二区三区不卡| 亚洲国产毛片aaaaa无费看| 国产一区二区三区四区五区入口| 色又黄又爽网站www久久| 久久婷婷一区二区三区| 亚洲成av人**亚洲成av**| 风间由美性色一区二区三区| 欧美日韩中文字幕一区二区| 国产精品沙发午睡系列990531| 午夜a成v人精品| 色综合久久中文字幕| 欧美激情一区二区三区不卡| 免费看精品久久片| 欧美日韩在线播放| 亚洲视频网在线直播| 国产成人精品免费网站| 555夜色666亚洲国产免| 中文字幕亚洲不卡| 国产精品99久久久| 欧美精品一区二区三区久久久| 亚洲超丰满肉感bbw| 色屁屁一区二区| 中文字幕日韩一区| 国产高清不卡一区二区| 日韩欧美区一区二| 青青草国产成人99久久| 欧美日韩国产另类一区| 亚洲精选一二三| 99视频超级精品| 国产女同性恋一区二区| 国产成人在线视频播放| 欧美精品一区二区久久婷婷| 日本在线观看不卡视频| 欧美乱妇23p| 亚洲电影第三页| 一本到高清视频免费精品| 国产精品免费网站在线观看| 国模大尺度一区二区三区| 欧美哺乳videos| 精彩视频一区二区| 久久日韩精品一区二区五区| 久久成人免费日本黄色| 欧美一级二级三级乱码| 蜜桃视频免费观看一区| 日韩免费成人网| 久久不见久久见中文字幕免费| 欧美视频日韩视频在线观看| 国产精品88av| 国产精品色婷婷久久58| 亚洲精品国产a久久久久久 | 亚洲香蕉伊在人在线观| 国产午夜精品一区二区三区视频| 国产精品自拍毛片| 欧美三片在线视频观看| 国产福利一区在线观看| 久久精品二区亚洲w码| 日产欧产美韩系列久久99| 国产一区二区三区免费在线观看| 一卡二卡三卡日韩欧美| 欧美久久久一区| 国产精品99久久久久久似苏梦涵 | 1区2区3区国产精品| 欧美挠脚心视频网站| 国产麻豆精品在线观看| 亚洲日穴在线视频| 精品久久久久久久久久久久久久久| 国产v综合v亚洲欧| 五月婷婷色综合| 国产精品三级久久久久三级| 7777精品伊人久久久大香线蕉的| 国产成人高清在线| 手机精品视频在线观看| 国产精品美女久久久久久久| 91精品国产欧美一区二区成人| 成人性色生活片免费看爆迷你毛片| 亚洲一区二区三区四区五区黄 | 久久蜜臀中文字幕| 欧美曰成人黄网| 国产99久久精品| 日韩电影在线免费看| 亚洲欧美二区三区| 久久久久久久久久久久电影 | 亚洲精品国产一区二区精华液| 久久亚洲一级片| 91精品福利在线一区二区三区 |