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

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

?? tb_spi_top.v

?? 關于開發驅動的代碼】 關于開發驅動的代碼】 關于開發驅動的代碼】 關于開發驅動的代碼】 關于開發驅動的代碼】 關于開發驅動的代碼】 關于開發驅動的代碼】
?? V
字號:
//////////////////////////////////////////////////////////////////////////                                                              ////////  tb_spi_top.v                                                ////////                                                              ////////  This file is part of the SPI IP core project                ////////  http://www.opencores.org/projects/spi/                      ////////                                                              ////////  Author(s):                                                  ////////      - Simon Srot (simons@opencores.org)                     ////////                                                              ////////  Based on:                                                   ////////      - i2c/bench/verilog/tst_bench_top.v                     ////////        Copyright (C) 2001 Richard Herveille                  ////////                                                              ////////  All additional information is avaliable in the Readme.txt   ////////  file.                                                       ////////                                                              //////////////////////////////////////////////////////////////////////////////                                                              //////// Copyright (C) 2002 Authors                                   ////////                                                              //////// This source file may be used and distributed without         //////// restriction provided that this copyright statement is not    //////// removed from the file and that any derivative work contains  //////// the original copyright notice and the associated disclaimer. ////////                                                              //////// This source file is free software; you can redistribute it   //////// and/or modify it under the terms of the GNU Lesser General   //////// Public License as published by the Free Software Foundation; //////// either version 2.1 of the License, or (at your option) any   //////// later version.                                               ////////                                                              //////// This source is distributed in the hope that it will be       //////// useful, but WITHOUT ANY WARRANTY; without even the implied   //////// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //////// PURPOSE.  See the GNU Lesser General Public License for more //////// details.                                                     ////////                                                              //////// You should have received a copy of the GNU Lesser General    //////// Public License along with this source; if not, download it   //////// from http://www.opencores.org/lgpl.shtml                     ////////                                                              //////////////////////////////////////////////////////////////////////////`include "timescale.v"module tb_spi_top();  reg         clk;  reg         rst;  wire [31:0] adr;  wire [31:0] dat_i, dat_o;  wire        we;  wire  [3:0] sel;  wire        stb;  wire        cyc;  wire        ack;  wire        err;  wire        int;  wire  [7:0] ss;  wire        sclk;  wire        mosi;  wire        miso;  reg  [31:0] q;  reg  [31:0] q1;  reg  [31:0] q2;  reg  [31:0] q3;  reg  [31:0] result;  parameter SPI_RX_0   = 5'h0;  parameter SPI_RX_1   = 5'h4;  parameter SPI_RX_2   = 5'h8;  parameter SPI_RX_3   = 5'hc;  parameter SPI_TX_0   = 5'h0;  parameter SPI_TX_1   = 5'h4;  parameter SPI_TX_2   = 5'h8;  parameter SPI_TX_3   = 5'hc;  parameter SPI_CTRL   = 5'h10;  parameter SPI_DIVIDE = 5'h14;  parameter SPI_SS     = 5'h18;  // Generate clock  always #5 clk = ~clk;  // Wishbone master model  wb_master_model #(32, 32) i_wb_master (    .clk(clk), .rst(rst),    .adr(adr), .din(dat_i), .dout(dat_o),    .cyc(cyc), .stb(stb), .we(we), .sel(sel), .ack(ack), .err(err), .rty(1'b0)  );  // SPI master core  spi_top i_spi_top (    .wb_clk_i(clk), .wb_rst_i(rst),     .wb_adr_i(adr[4:0]), .wb_dat_i(dat_o), .wb_dat_o(dat_i),     .wb_sel_i(sel), .wb_we_i(we), .wb_stb_i(stb),     .wb_cyc_i(cyc), .wb_ack_o(ack), .wb_err_o(err), .wb_int_o(int),    .ss_pad_o(ss), .sclk_pad_o(sclk), .mosi_pad_o(mosi), .miso_pad_i(miso)   );  // SPI slave model  spi_slave_model i_spi_slave (    .rst(rst), .ss(ss[0]), .sclk(sclk), .mosi(mosi), .miso(miso)  );  initial    begin      $display("\nstatus: %t Testbench started\n\n", $time);      $dumpfile("bench.vcd");      $dumpvars(1, tb_spi_top);      $dumpvars(1, tb_spi_top.i_spi_slave);      // Initial values      clk = 0;      i_spi_slave.rx_negedge = 1'b0;      i_spi_slave.tx_negedge = 1'b0;      result = 32'h0;      // Reset system      rst = 1'b0; // negate reset      #2;      rst = 1'b1; // assert reset      repeat(20) @(posedge clk);      rst = 1'b0; // negate reset      $display("status: %t done reset", $time);            @(posedge clk);      // Program core      i_wb_master.wb_write(0, SPI_DIVIDE, 32'h00); // set devider register      i_wb_master.wb_write(0, SPI_TX_0, 32'h5a);   // set tx register to 0x5a      i_wb_master.wb_write(0, SPI_CTRL, 32'h208);   // set 8 bit transfer      i_wb_master.wb_write(0, SPI_SS, 32'h01);     // set ss 0      $display("status: %t programmed registers", $time);      i_wb_master.wb_cmp(0, SPI_DIVIDE, 32'h00);   // verify devider register      i_wb_master.wb_cmp(0, SPI_TX_0, 32'h5a);     // verify tx register      i_wb_master.wb_cmp(0, SPI_CTRL, 32'h208);     // verify tx register      i_wb_master.wb_cmp(0, SPI_SS, 32'h01);       // verify ss register      $display("status: %t verified registers", $time);      i_spi_slave.rx_negedge = 1'b1;      i_spi_slave.tx_negedge = 1'b0;      i_spi_slave.data[31:0] = 32'ha5967e5a;      i_wb_master.wb_write(0, SPI_CTRL, 32'h308);   // set 8 bit transfer, start transfer      $display("status: %t generate transfer:  8 bit, msb first, tx posedge, rx negedge", $time);      // Check bsy bit      i_wb_master.wb_read(0, SPI_CTRL, q);      while (q[8])        i_wb_master.wb_read(1, SPI_CTRL, q);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      if (i_spi_slave.data[7:0] == 8'h5a && q == 32'h000000a5)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b0;      i_spi_slave.tx_negedge = 1'b1;      i_wb_master.wb_write(0, SPI_TX_0, 32'ha5);      i_wb_master.wb_write(0, SPI_CTRL, 32'h408);   // set 8 bit transfer, tx negedge      i_wb_master.wb_write(0, SPI_CTRL, 32'h508);   // set 8 bit transfer, tx negedge, start transfer      $display("status: %t generate transfer:  8 bit, msb first, tx negedge, rx posedge", $time);      // Check bsy bit      i_wb_master.wb_read(0, SPI_CTRL, q);      while (q[8])        i_wb_master.wb_read(1, SPI_CTRL, q);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      if (i_spi_slave.data[7:0] == 8'ha5 && q == 32'h00000096)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b0;      i_spi_slave.tx_negedge = 1'b1;      i_wb_master.wb_write(0, SPI_TX_0, 32'h5aa5);      i_wb_master.wb_write(0, SPI_CTRL, 32'hc10);   // set 16 bit transfer, tx negedge, lsb      i_wb_master.wb_write(0, SPI_CTRL, 32'hd10);   // set 16 bit transfer, tx negedge, start transfer      $display("status: %t generate transfer: 16 bit, lsb first, tx negedge, rx posedge", $time);      // Check bsy bit      i_wb_master.wb_read(0, SPI_CTRL, q);      while (q[8])        i_wb_master.wb_read(1, SPI_CTRL, q);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      if (i_spi_slave.data[15:0] == 16'ha55a && q == 32'h00005a7e)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b1;      i_spi_slave.tx_negedge = 1'b0;      i_wb_master.wb_write(0, SPI_TX_0, 32'h76543210);      i_wb_master.wb_write(0, SPI_TX_1, 32'hfedcba98);      i_wb_master.wb_write(0, SPI_CTRL, 32'h1a40);   // set 64 bit transfer, rx negedge, lsb      i_wb_master.wb_write(0, SPI_CTRL, 32'h1b40);   // set 64 bit transfer, rx negedge, start transfer      $display("status: %t generate transfer: 64 bit, lsb first, tx posedge, rx negedge", $time);      // Check bsy bit      i_wb_master.wb_read(0, SPI_CTRL, q);      while (q[8])        i_wb_master.wb_read(1, SPI_CTRL, q);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      i_wb_master.wb_read(1, SPI_RX_1, q1);      result = result + q1;      if (i_spi_slave.data == 32'h195d3b7f && q == 32'h5aa5a55a && q1 == 32'h76543210)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b0;      i_spi_slave.tx_negedge = 1'b1;      i_wb_master.wb_write(0, SPI_TX_0, 32'hccddeeff);      i_wb_master.wb_write(0, SPI_TX_1, 32'h8899aabb);      i_wb_master.wb_write(0, SPI_TX_2, 32'h44556677);      i_wb_master.wb_write(0, SPI_TX_3, 32'h00112233);      i_wb_master.wb_write(0, SPI_CTRL, 32'h400);      i_wb_master.wb_write(0, SPI_CTRL, 32'h500);      $display("status: %t generate transfer: 128 bit, msb first, tx posedge, rx negedge", $time);      // Check bsy bit      i_wb_master.wb_read(0, SPI_CTRL, q);      while (q[8])        i_wb_master.wb_read(1, SPI_CTRL, q);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      i_wb_master.wb_read(1, SPI_RX_1, q1);      result = result + q1;      i_wb_master.wb_read(1, SPI_RX_2, q2);      result = result + q2;      i_wb_master.wb_read(1, SPI_RX_3, q3);      result = result + q3;      if (i_spi_slave.data == 32'hccddeeff && q == 32'h8899aabb && q1 == 32'h44556677 && q2 == 32'h00112233 && q3 == 32'h195d3b7f)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b0;      i_spi_slave.tx_negedge = 1'b1;      i_wb_master.wb_write(0, SPI_TX_0, 32'haa55a5a5);      i_wb_master.wb_write(0, SPI_CTRL, 32'h1420);      i_wb_master.wb_write(0, SPI_CTRL, 32'h1520);      $display("status: %t generate transfer: 32 bit, msb first, tx negedge, rx posedge, ie", $time);      // Check interrupt signal      while (!int)        @(posedge clk);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;          @(posedge clk);      if (!int && i_spi_slave.data == 32'haa55a5a5 && q == 32'hccddeeff)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b1;      i_spi_slave.tx_negedge = 1'b0;      i_wb_master.wb_write(0, SPI_TX_0, 32'h01248421);      i_wb_master.wb_write(0, SPI_CTRL, 32'h3220);      i_wb_master.wb_write(0, SPI_CTRL, 32'h3320);      $display("status: %t generate transfer: 32 bit, msb first, tx posedge, rx negedge, ie, ass", $time);      while (!int)        @(posedge clk);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      @(posedge clk);      if (!int && i_spi_slave.data == 32'h01248421 && q == 32'haa55a5a5)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      i_spi_slave.rx_negedge = 1'b1;      i_spi_slave.tx_negedge = 1'b0;      i_wb_master.wb_write(0, SPI_TX_0, 32'h1);      i_wb_master.wb_write(0, SPI_CTRL, 32'h3201);      i_wb_master.wb_write(0, SPI_CTRL, 32'h3301);      $display("status: %t generate transfer: 1 bit, msb first, tx posedge, rx negedge, ie, ass", $time);      while (!int)        @(posedge clk);      i_wb_master.wb_read(1, SPI_RX_0, q);      result = result + q;      @(posedge clk);      if (!int && i_spi_slave.data == 32'h02490843 && q == 32'h0)        $display("status: %t transfer completed: ok", $time);      else        $display("status: %t transfer completed: nok", $time);      $display("\n\nstatus: %t Testbench done", $time);      #25000; // wait 25us      $display("report (%h)", (result ^ 32'h2e8b36ab) + 32'hdeaddead);      $display("exit (%h)", result ^ 32'h2e8b36ab);      $stop;    endendmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国免费一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 一区二区三区在线观看欧美| 亚洲国产精品自拍| 国产精品一区二区免费不卡| 在线免费观看日本欧美| 久久久久久久久99精品| 日韩精品电影一区亚洲| 91麻豆成人久久精品二区三区| 678五月天丁香亚洲综合网| 中文字幕欧美国产| 久久精品国产77777蜜臀| 在线观看日韩av先锋影音电影院| 国产欧美一区二区精品忘忧草| 日韩成人精品视频| 欧美亚洲一区二区在线观看| 欧美国产综合色视频| 韩国欧美一区二区| 欧美一区二区三区在线观看视频 | 9i看片成人免费高清| 欧美tickling挠脚心丨vk| 亚洲一区免费在线观看| 色综合天天综合狠狠| 国产精品国产三级国产aⅴ无密码| 久久99精品国产91久久来源| 欧美裸体bbwbbwbbw| 亚洲一区在线播放| 欧亚洲嫩模精品一区三区| 亚洲色图欧美在线| 91日韩精品一区| 亚洲欧美电影一区二区| jlzzjlzz国产精品久久| 国产精品情趣视频| 高清免费成人av| 国产精品久久久久桃色tv| 福利一区在线观看| 1区2区3区欧美| 91首页免费视频| 一区二区三区四区在线免费观看 | 在线观看视频一区| 亚洲尤物在线视频观看| 欧美亚洲国产怡红院影院| 夜色激情一区二区| 欧美日韩一区二区在线观看视频| 午夜私人影院久久久久| 欧美一卡二卡三卡| 精品伊人久久久久7777人| 久久久亚洲高清| 91香蕉视频污| 午夜久久久久久电影| 欧美sm美女调教| 成人免费福利片| 一区二区三区国产精华| 91麻豆精品国产91久久久久久久久 | 精品国产青草久久久久福利| 国产又黄又大久久| 国产精品福利影院| 欧美群妇大交群的观看方式| 蜜臀精品一区二区三区在线观看| 精品av久久707| 成人精品小蝌蚪| 亚洲成人午夜电影| 精品国产免费久久| 99国产精品久久久久| 亚洲大型综合色站| 久久久久久97三级| 欧洲国内综合视频| 国产乱码精品一区二区三区五月婷| 国产精品久久久久三级| 欧美少妇bbb| 国产不卡在线播放| 亚洲一区在线观看免费观看电影高清 | 一区二区欧美国产| 日韩精品自拍偷拍| 91婷婷韩国欧美一区二区| 另类小说综合欧美亚洲| 亚洲女人****多毛耸耸8| 日韩视频免费观看高清在线视频| 成人一区二区三区中文字幕| 三级精品在线观看| 亚洲色大成网站www久久九九| 日韩欧美精品在线| 欧美伊人精品成人久久综合97| 国产麻豆成人精品| 日韩精品色哟哟| 国产精品动漫网站| 久久精品在线免费观看| 欧美挠脚心视频网站| 91丨porny丨首页| 国产福利一区二区| 看国产成人h片视频| 亚洲v精品v日韩v欧美v专区| 国产精品美女久久久久久久久 | 美国十次了思思久久精品导航| 中文字幕亚洲精品在线观看| 久久综合狠狠综合| 日韩一区二区三区电影| 欧美日韩中字一区| 在线免费一区三区| 一本一本大道香蕉久在线精品 | 日本不卡一二三区黄网| 一区二区三区资源| 亚洲蜜臀av乱码久久精品蜜桃| 国产婷婷精品av在线| 欧美videos中文字幕| 日韩丝袜情趣美女图片| 在线播放国产精品二区一二区四区| 色综合久久久久久久久| 色综合一区二区| 97国产精品videossex| av亚洲产国偷v产偷v自拍| 国产高清不卡一区二区| 国产激情一区二区三区四区| 国产一区中文字幕| 国产精品一区二区久久不卡| 国产精品99久| 成人午夜av电影| 9人人澡人人爽人人精品| www.欧美.com| 色综合久久九月婷婷色综合| 色先锋久久av资源部| 欧美性感一区二区三区| 91精品欧美久久久久久动漫| 666欧美在线视频| 日韩欧美一区二区久久婷婷| 日韩欧美一区二区视频| 2021国产精品久久精品| 国产日韩成人精品| 中文字幕中文乱码欧美一区二区| 亚洲欧美在线视频观看| 一区二区激情小说| 丝袜美腿亚洲色图| 国产一区二区导航在线播放| 成人做爰69片免费看网站| av毛片久久久久**hd| 欧美日韩免费高清一区色橹橹| 欧美日韩小视频| 精品av久久707| 亚洲男人的天堂在线aⅴ视频| 午夜伦欧美伦电影理论片| 九色综合狠狠综合久久| 成人精品国产一区二区4080| 欧美天堂亚洲电影院在线播放| 这里只有精品电影| 国产精品网站一区| 亚洲午夜免费电影| 国产真实乱偷精品视频免| 99久久精品国产毛片| 91精品国产欧美一区二区成人| 久久蜜臀中文字幕| 亚洲制服丝袜在线| 国产一区不卡视频| 色菇凉天天综合网| 久久久久久99久久久精品网站| 亚洲男人的天堂在线观看| 久久69国产一区二区蜜臀| 91免费在线视频观看| 日韩美女在线视频| 一区二区三区中文免费| 国产又粗又猛又爽又黄91精品| 91网站在线播放| 日韩免费看网站| 一区二区三区视频在线看| 国产乱码精品1区2区3区| 欧美日韩一卡二卡| 亚洲欧洲av另类| 韩国女主播成人在线| 欧美日韩国产综合一区二区三区| 日本一区二区免费在线| 免费观看91视频大全| 91福利在线播放| 国产精品久久久久婷婷| 精品亚洲aⅴ乱码一区二区三区| 欧美亚洲动漫制服丝袜| 国产精品久久久一区麻豆最新章节| 麻豆91免费观看| 欧美另类z0zxhd电影| 一区二区三区在线免费视频| 成人精品国产一区二区4080| 精品福利在线导航| 日韩不卡一区二区| 欧美性猛片aaaaaaa做受| 中文字幕中文字幕一区二区| 国产福利精品导航| 久久综合久久99| 久久av老司机精品网站导航| 欧美日韩mp4| 亚洲电影在线播放| 色老汉av一区二区三区| 亚洲乱码一区二区三区在线观看| 国产精品乡下勾搭老头1| 精品国产欧美一区二区| 激情深爱一区二区| xf在线a精品一区二区视频网站| 男女视频一区二区| 日韩一区二区三区电影在线观看| 日韩在线a电影| 91精品国产色综合久久不卡蜜臀 | 午夜激情一区二区三区| 欧美在线播放高清精品|