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

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

?? config_controller.tdf

?? IIR、FIR、FFT各模塊程序設計例程
?? TDF
?? 第 1 頁 / 共 3 頁
字號:
  The_Address_Counter.aclr         = restart_sequence;
-- JMC Changes
  The_CF_RST_Counter.aclr          = !CONFIG_DONE;
-- end
  The_Dclk_Divider.aclr            = restart_sequence;
  The_Data_Bit_Counter.aclr        = restart_sequence;
  The_Shift_Register.aclr          = restart_sequence;

  d1_safe_config.clrn              =  RESET_n;
  d2_safe_config.clrn              =  RESET_n;
  d1_reset_source.clrn             =  RESET_n;
  d2_reset_source.clrn             =  RESET_n;
  cause_was_safe_config.clrn       =  RESET_n;
  sync_config_request.clrn         =  RESET_n;
  
     -- Thinking about this one gives me a headache:
  The_Reset_Counter.aclr           = !RESET_n;
-- JMC Changes
  The_CF_Counter.aclr              = !CONFIG_DONE;
  The_CF_Counter.cnt_en            = !The_CF_Counter.cout;
-- end
  Reset_Pulse.prn                  =  RESET_n;
  
  ----------------
  -- DCLK divider 
  -- 
  -- This entire little system operates at the DCLK rate,
  -- which is 1/8 the master input clk (cpld_CLKOSC) rate of 
  -- 50MHz.  This gives us ~6.25MHz clk rate.
  --
  -- Of course all the registers actually run off the faster
  -- clk but, in the traditional style, are enabled only 1/8 of
  -- the time. 
  --
  -- The high-for-one / low-for-four DCLK clk-enable pulse comes from
  -- the carry-out of a divide-by-four counter.  The MSB of the counter
  -- is used as DCLK (to the Cyclone chip) directly.
  --
  -- Note that we want to hold the FPGA's DCLK input LOW 
  -- unless we're actually clking-in bits, as-indicated by State_Counting.
  --
  dclkq3_stcntg = The_Dclk_Divider.q[3] & State_Counting.q;     
    -- dclk to the FPGA
  dclk_en       = The_Dclk_Divider.cout;    -- carry            
    -- dclk_en to The_Data_Bit_Counter

  ----------------
  -- Data-Bit Counter
  --
  -- We have to dwell on each address (data byte) for eight DCLK cycles
  -- Thus, we enable the address-counter on only one out of every eight
  -- DCLK cycles.
  --
  byte_count_en = (dclk_en & The_Data_Bit_Counter.cout); 
                            -- clock enables the The_Address_Counter

  -- Wire-up this happy clk-enable to all the other registers: 
  CONFIG_n_reg.ena                 = dclk_en; 
  State_Waiting_For_STATUS_n.ena   = dclk_en; 
  State_Counting.ena               = dclk_en; 
  State_Done.ena                   = dclk_en;
  State_Error.ena                  = dclk_en;
  State_JTAG_Config.ena            = dclk_en;
  The_Data_Bit_Counter.clk_en      = dclk_en;
  The_Address_Counter.clk_en       = byte_count_en;
  The_Shift_Register.enable        = dclk_en & (State_Counting.q);  -- shift: clk_enable

  ----------------
  -- Reset-Pulse clk enable
  -- 
  -- The registers that figure-in to the reset-pulse computation
  -- are enabled at a relatively low rate to give us a nice, slow,
  -- wide pulse and well-debounced inputs.
  -- TPA: Deal with this later.
  --
  d1_safe_config.ena              = The_Reset_Counter.cout;
  d2_safe_config.ena              = The_Reset_Counter.cout;
  d1_reset_source.ena             = The_Reset_Counter.cout;
  d2_reset_source.ena             = The_Reset_Counter.cout;

  ----------------
  -- nCONFIG output
  --
  -- We hold nCONFIG low to "start the entire process."  When we let 
  -- go, the Cyclone starts thinkin'.  When it's ready to receive a configuration,
  -- it tells us by letting nSTATUS go high.
  -- 
  -- So, to start things rolling, we hold nCONFIG low for a while, 
  -- then release it (let it go high).   To keep this simple,
  -- I'll just hold nCONFIG low when we're in reset, then 
  -- release it as soon as RESET_n goes away.
  --

  CONFIG_n_reg.d = B"1";
 
  ----------------  --
  -- The first thing we do, upon wake-up, is go into the 
  -- "Waiting_For_nSTATUS" state (which is uniquely signified by the 
  -- correspondingly-named flip-flop containing a 1).  This state 
  -- is true until we see nSTATUS become 1, after which it 
  -- is never true again.  We can express this concept simply thus:
  --
  State_Waiting_For_STATUS_n.d = !STATUS_n; 

  ----------------
  -- STATE: Counting.
  -- 
  -- This bit enables the address-counter.  It's true after we see 
  -- nSTATUS from the Cyclone go high (which tells us it's ready). We
  -- set the "Counting" bit when we see that the "Waiting_For_nSTATUS"
  -- bit is false. 
  --
  -- We keep right on a'countin' until we see CONFIG_DONE go true,
  -- at which point we know, er, that the configuration process is done.
  --
  -- When configuration is done, the "Counting" state-bit gets set to zero.
  -- The machine then moves into "Done"-mode.
  --         
  -- Also, being in State_Error disables counting.
  -- ALWAYS TRUE!
  State_Counting.d    = !State_Waiting_For_STATUS_n.q  &    
                         !CONFIG_DONE                  &    
                         CONFIG_n_reg.q                & 
                         !State_Error.q                ;    

  The_Address_Counter.cnt_en  = State_Counting.q # try_asmi_config.q;
-- JMC Changes
  The_CF_RST_Counter.cnt_en = CONFIG_DONE & !The_CF_RST_Counter.q[21];
-- end
  The_Data_Bit_Counter.cnt_en = State_Counting.q # try_asmi_config.q; 

 -- using_flash                 = State_Counting.q;  -- maybe to tristate flash pins?

  ----------------
  -- STATE: Done.
  --
  -- You know you're done when:  
  --
  --     * The FPGA says it's done!  
  --     * Gee, it sure seems like we've tried long enough.
  -- 
  --  The Cyclone chip will drive CONFIG_DONE true (1) when it's all done.
  --  If we get to the end of our address-count range (256KBytes), then
  --  we should stop whether the Cyclone says it's done or not.  If it has 
  --  a problem and wants us to start over, it signals so with nSTATUS.
  --  I've learned from hard experience that there's no value in continuing
  --  to clk the Cyclone chip forever if it doesn't appear to be listening.
  --
  -- ph: clean up this comment.
  --
  --  State_Done.d = CONFIG_DONE # counter_wrapped.q # State_Done.q;
  State_Done.d = CONFIG_DONE # State_Done.q; 
    -- delete "counter_wrapped" fixed error light problem
                 
  -- THIS LINE TRI-STATES ALL OUTPUTS ALWAYS (useful for debugging):
  -- State_Done.d =                 B"1" ;      

  ----------------
  -- STATE: ACTIVE for ASMI config only
  --
                 
  -- Set configuration mode on the MSEL pins
    
  -- MSEL0 must be 
  --  low for EPCS config
  --  high for user or safe config load from parallel flash
  --  low when configured, or during JTAG config, or in Error state, 
  --  to enable tornado_spiblock.
  pld_MSEL0   = !State_Error.q & !State_JTAG_Config.q & !State_Done.q &
    (!try_asmi_config.q # cause_was_safe_config);
        -- MSEL0: High (1) = Passive Serial mode,
        --        Low  (0) = Active Serial mode 
                                                
  pld_MSEL1   = B"0";                
        -- MSEL1: Low  (0) for both Passive Serial and Active Serial modes   

  ----------------
  -- Output Control.
  --
  -- In general, this device wants to drive its outputs only while it is
  -- in the process of configuring from flash.  Put another way, this device
  -- wants to "let go of" (Hi-Z) its outputs when configuring from ASMI, and
  -- when configuration is done (successful), or configuration has failed.  
  --
  -- So we want to drive the outputs whenever it's not State_Done, nor is it
  -- State_Error, nor we're configuring from ASMI.  One could say, "well, we
  -- shouldn't be driving during/after configuration from JTAG also".  I say:
  -- by the time the user gets around to JTAGing in a new configuration, we'll
  -- be in either State_Done or State_Error anyway.
  --
  -- There is one exception to the tri-stating rule:
  --
  --     * The nCONFIG pin is "open collector," so we want to 
  --       turn its output-enable ON when we want to drive nCONFIG
  --       low, and OFF when we want let nCONFIG go high.
  --
  drive_outputs = !State_Done.q & !State_Error.q & !try_asmi_config.q;
  
  -- Signals headin' for the outputs:
  --
  -- Address mapping: 
  -- 
  -- We only use enough of the flash to store two configuration-images.
  --  For this design, we have 8MBytes of flash, and each 1S10ES config image
  --  takes a bit less than a megabyte.  Thus, we use 1/4 of the flash
  --  to store two images (a user image and a safe image).  It is
  --  polite to use the top (high) 1/4 of the flash, hence the
  --  high-order address bits are set to 1.
  --        
  --  The "user" configuration is, by convention, located in the 
  --  lowest (address) half of the part of the flash we're using to 
  --  store configuration images.  Thus, when we're trying the "user"
  --  configuration, we want to set this bit to zero.
  --
  obuf_A[].in           = The_Address_Counter.q[];
  obuf_flash_A22.in     = B"1"; -- Use high 1/4 address-range of flash.
  obuf_flash_A21.in     = B"1";    
  obuf_flash_A20.in     = !try_user_config.q; -- A20 gives low-half for 
                                              -- user image, 0x600k vs. 0x700k 
  obuf_flash_CS_n.in    = B"0"; -- select
  obuf_flash_OE_n.in    = B"0"; -- enable
  obuf_flash_RW_n.in    = B"1"; -- read only
  obuf_DCLK.in          = dclkq3_stcntg;    -- DCLKQ3_STATE; 
                        -- was the working output pin that fed this obuf_DCLK.in
  obuf_pld_DATA0.in     = DATA0;

  obuf_CONFIG_n_oe.in   = B"0";  -- SPR 128193
  

   -- Ye olde output enables:
  obuf_A[].oe               = drive_outputs;
  obuf_flash_A22.oe         = drive_outputs;
  obuf_flash_A21.oe         = drive_outputs;
  obuf_flash_A20.oe         = drive_outputs;
  obuf_flash_CS_n.oe        = drive_outputs;
  obuf_flash_OE_n.oe        = drive_outputs;
  obuf_flash_RW_n.oe        = drive_outputs;
  obuf_DCLK.oe              = drive_outputs;
  obuf_pld_DATA0.oe         = drive_outputs;
  obuf_CONFIG_n_oe.oe	    = !CONFIG_n_reg.q;  -- SPR 128193
  
    -- Connect to the actual ouptut pins:
  A[]                       = obuf_A[].out;
  flash_A22                 = obuf_flash_A22.out;
  flash_A21                 = obuf_flash_A21.out;
  flash_A20                 = obuf_flash_A20.out;
  flash_CS_n                = obuf_flash_CS_n.out;
  flash_OE_n                = obuf_flash_OE_n.out;
  flash_RW_n                = obuf_flash_RW_n.out;
  DCLK                      = obuf_DCLK.out;
  pld_DATA0                 = obuf_pld_DATA0.out;
  CONFIG_n                  = obuf_CONFIG_n_oe.out;  -- SPR 128193 (was: CONFIG_n_reg.q)

-- I used these for debug pin assignments for the sake of simulation
--  DCLKQ3_STATE  = dclkq3_stcntg;          -- gain simulation respect
--  DCLKCOUT      = dclk_en;                -- gain simulation respect 
--  DBCNTCOUT     = The_Dclk_Divider.cout;  -- gain simulation respect 
--  DRIVE_OUT     = drive_outputs;          -- gain simulation respect 
--  STATE_CNTG    = State_Counting;         -- gain simulation respect 

  -- Spare pin needed driven to accommodate the Cyclone 

  enet_VLBUS_n              = B"1";

END;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品天堂一级| 欧美午夜理伦三级在线观看| 久久亚洲精华国产精华液 | 亚洲视频在线一区| 成人sese在线| 亚洲一区免费在线观看| 欧美高清激情brazzers| 国产一区二区毛片| 国产精品丝袜一区| 欧美亚洲图片小说| 日本伊人色综合网| 国产欧美日韩在线视频| 日本高清免费不卡视频| 日韩电影在线一区二区| 日本一区二区三区在线观看| 色激情天天射综合网| 秋霞成人午夜伦在线观看| 国产婷婷色一区二区三区四区| 99精品欧美一区二区三区小说| 亚洲国产视频在线| 久久久噜噜噜久久人人看| 91国产丝袜在线播放| 久久精品国产**网站演员| 国产精品久久一级| 91精品久久久久久久91蜜桃 | 99久久精品一区二区| 亚洲第一搞黄网站| 久久午夜色播影院免费高清| 欧洲精品视频在线观看| 国产一区视频导航| 亚洲午夜在线视频| 国产亚洲美州欧州综合国| 欧美视频一区在线观看| 国产美女精品一区二区三区| 亚洲国产综合色| 国产免费成人在线视频| 日韩一二在线观看| 一本色道久久综合亚洲精品按摩| 久久激情五月激情| 亚洲国产精品欧美一二99| 欧美激情一区不卡| 精品少妇一区二区三区 | 成人一级片网址| 日韩福利电影在线| 亚洲一区二区三区三| 国产精品久久久久久久久晋中| 91精品国产欧美一区二区| 在线免费观看日本一区| 成人免费高清在线观看| 国产一区二区日韩精品| 日韩精品一区第一页| 一区二区三区中文在线观看| 国产蜜臀97一区二区三区| 日韩欧美美女一区二区三区| 精品1区2区3区| 色偷偷久久人人79超碰人人澡| 国产98色在线|日韩| 久久疯狂做爰流白浆xx| 天天综合色天天| 亚洲理论在线观看| 亚洲三级在线看| 中文字幕在线播放不卡一区| 中文字幕第一区二区| 久久天天做天天爱综合色| 日韩三级高清在线| 91精品国产一区二区三区蜜臀| 欧美三级一区二区| 欧美性xxxxxx少妇| 日本精品视频一区二区| 色狠狠桃花综合| 色综合天天综合色综合av | 日韩亚洲欧美中文三级| 欧美喷潮久久久xxxxx| 欧美性大战久久久| 欧美视频一二三区| 欧美美女激情18p| 在线播放一区二区三区| 欧美日韩国产成人在线免费| 欧美高清性hdvideosex| 日韩欧美你懂的| 26uuu精品一区二区在线观看| 精品国产精品网麻豆系列 | 日本一区二区动态图| 国产欧美日本一区二区三区| 日本一区二区视频在线观看| 国产欧美一二三区| 亚洲视频一区二区在线| 一二三区精品视频| 日韩中文字幕av电影| 久久99精品视频| 国内精品伊人久久久久av影院| 国产精品一区二区在线播放| 高清不卡一二三区| 色88888久久久久久影院野外| 在线观看亚洲a| 在线看国产日韩| 欧美老肥妇做.爰bbww视频| 日韩午夜激情电影| 国产精品美女久久久久久久久久久| 亚洲欧美日韩电影| 婷婷六月综合网| 国产精品一区二区久激情瑜伽| eeuss鲁片一区二区三区在线观看| 色狠狠一区二区| 精品入口麻豆88视频| 国产精品高潮呻吟| 午夜av区久久| 成人三级在线视频| 欧美性色aⅴ视频一区日韩精品| 欧美一级黄色录像| 国产欧美一区二区精品婷婷| 亚洲观看高清完整版在线观看| www.日韩在线| 亚洲一区免费观看| 一区二区三区久久久| 亚洲国产日韩一级| 激情综合五月婷婷| 一本大道久久a久久综合婷婷| 欧美日韩夫妻久久| 日本一区二区免费在线 | 91久久精品日日躁夜夜躁欧美| 欧美日韩色一区| 国产欧美综合在线观看第十页| 亚洲大尺度视频在线观看| 国产99精品国产| 日韩限制级电影在线观看| 亚洲欧美日韩国产一区二区三区 | 国产精品女主播av| 日韩av网站免费在线| av电影在线观看一区| 日韩美一区二区三区| 一区二区免费在线| 国产精品亚洲专一区二区三区| 欧美男男青年gay1069videost| 国产精品看片你懂得| 成人免费视频caoporn| 日韩午夜在线观看视频| 国产精品国产三级国产aⅴ入口 | 欧美久久久久免费| 中文字幕日韩精品一区| 国产一区二区成人久久免费影院| 欧美少妇bbb| 亚洲三级小视频| 成人一道本在线| 亚洲精品在线免费播放| 首页国产欧美久久| 欧美日韩视频在线第一区| 亚洲视频精选在线| 99国产精品久久久久| 日本一区二区三区高清不卡| 国产美女在线精品| 精品国产一区二区三区四区四| 欧美aaaaa成人免费观看视频| 欧美日韩午夜精品| 亚洲与欧洲av电影| 欧美在线|欧美| 亚洲精品久久久久久国产精华液| 成人亚洲一区二区一| 久久久综合九色合综国产精品| 美国一区二区三区在线播放| 日韩一区二区视频| 免费成人在线播放| 日韩欧美中文字幕一区| 麻豆国产欧美一区二区三区| 6080午夜不卡| 青青草97国产精品免费观看无弹窗版| 欧美日韩精品免费| 日本在线观看不卡视频| 91精品午夜视频| 蜜臀91精品一区二区三区| 精品精品欲导航| 国产麻豆精品久久一二三| 久久亚洲综合色| 成人黄色大片在线观看| 亚洲色图视频网| 91免费版在线看| 亚洲成人自拍网| 制服丝袜在线91| 久久99精品国产.久久久久久 | 日韩午夜激情免费电影| 美腿丝袜一区二区三区| 26uuu另类欧美| 成人视屏免费看| 亚洲一区免费在线观看| 欧美一区二区在线不卡| 极品少妇xxxx精品少妇| 亚洲国产精品二十页| 在线免费观看日韩欧美| 日本亚洲视频在线| 国产网站一区二区| 91麻豆蜜桃一区二区三区| 五月婷婷激情综合网| 精品日韩99亚洲| 91伊人久久大香线蕉| 日韩电影在线观看电影| 欧美极品aⅴ影院| 欧美在线免费观看亚洲| 蜜臀av一区二区在线免费观看| 国产女主播视频一区二区| 欧美色综合网站|