freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

采用vhdl進(jìn)行高層次設(shè)計(jì)(編輯修改稿)

2025-02-02 17:32 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 值,否則會(huì)造成不需要的 latch IF語(yǔ)句 ? IF語(yǔ)句對(duì)應(yīng)的電路就是多選電路 ,比如 if select=?1? then output=a。 else output=b。 end if。 對(duì)應(yīng)的電路就是用 select作為選擇信號(hào)來(lái)選通 a和 b Case語(yǔ)句 CASE 語(yǔ)句的描述如下: CASE expression IS WHEN choices1= sequence_of_statements1。 { WHEN choices2= sequence_of_statements1。 } END CASE 其中條件有如下四種表達(dá)方法: WHEN 值 = WHEN 值 | 值 | … |值 = WHEN 值 TO 值 = WHEN others = 選擇項(xiàng)必須覆蓋表達(dá)式所有選項(xiàng) , 不足時(shí)其它選項(xiàng)包括在 others項(xiàng)中 。 Case語(yǔ)句 ? Case語(yǔ)句對(duì)應(yīng)的是無(wú)優(yōu)先級(jí)的多選 ? 如果在 case中給多個(gè)信號(hào)賦值一定要在前面有缺省賦值 . ? 大家看下面的程序有什么問(wèn)題 ? Case語(yǔ)句 Process(decoder_in) begin CASE decoder_in IS WHEN “000” = decoder_out=“11111110” ; WHEN “001” = decoder_out=“11111101” ; WHEN “010” = decoder_out=“11111011” ; WHEN “011” = decoder_out=“11110111” ; WHEN “100” = decoder_out=“11101111” ; WHEN “101” = decoder_out=“11011111” ; WHEN “110” = decoder_out=“10111111” ; WHEN “111” = decoder_out=“01111111” END CASE; ?Decoder_in 為std_logic_vector型 ,所以即使是 9個(gè)值也沒有完全賦值 ,因此如果在 case前沒有 decoder的缺省賦值 ,就應(yīng)該有 default選項(xiàng) ?when default= decoder_out=(others=?X?)。 Loop語(yǔ)句 FOR identifier IN discrete_range LOOP sequence_of_statemetns END LOOP ; LOOP語(yǔ)句適用于描述有重復(fù)操作 , 或模塊需要很強(qiáng)的迭代能力時(shí)使用 。 如下電路完成對(duì)輸入的 8位向量的翻轉(zhuǎn) , 即信號(hào)的高位與低位對(duì)調(diào): FOR i IN 0 TO 7 LOOP output_vector( i) =input_vector( 7i) ; END LOOP; loop語(yǔ)句 ? 上述程序中 i為循環(huán)變量,在 VHDL中不允許任何對(duì)循環(huán)變量的賦值,也就是說(shuō)不允許在任何函數(shù)返回值中存在循環(huán)變量,或在任何過(guò)程的輸出與雙向參量中存在循環(huán)變量。并且循環(huán)變量不用顯式說(shuō)明,它的作用域僅存在于循環(huán)語(yǔ)句內(nèi)部,因此不允許在循環(huán)語(yǔ)句內(nèi)部存在于循環(huán)變量同名的變量或信號(hào) 進(jìn)制 ? B(binary) O(octal) X(Hexadecimal) ? 通常情況下我們都用二進(jìn)制 ? 對(duì)于位寬為 4n的用 16進(jìn)制極為方便 ,在VHDL的語(yǔ)言規(guī)定中 ,可以使用 =X”0F” 賦值 ,但 synopsys到 9910才支持 ,如果工具不支持只能使用 2進(jìn)制 . 理解并行的概念 ? 在 architecture中的語(yǔ)句都是并行的 ,它們的執(zhí)行順序和位置無(wú)關(guān) ,一個(gè) process相當(dāng)于一個(gè)并行語(yǔ)句 . 比如在 architecture 中存在 : D=A+E。 A=B+C。 將產(chǎn)生兩個(gè)加法器 ,第二個(gè)輸出作為第一個(gè)的一個(gè)輸入 在仿真時(shí) ,當(dāng) B或 C變化時(shí) ,激活語(yǔ)句 2,當(dāng) A或 E變化時(shí) ,激活語(yǔ)句 2. ? 本質(zhì) :在現(xiàn)實(shí)電路中 ,各個(gè)部件是并行工作的 ,一個(gè)部件的輸入變化 ,才會(huì)引起這個(gè)部件的輸出變換 . 避免組合環(huán) ? 在一般情況下不要使用組合環(huán) ,尤其是不要用行為級(jí)描述組合環(huán) ,如果需要使用電路圖形式 ,并在設(shè)計(jì)中不要優(yōu)化這個(gè)模塊 練習(xí) 寫一個(gè)帶有異步復(fù)位同步置數(shù)的增量計(jì)數(shù)器 Clk 時(shí)鐘 load 同步置數(shù)信號(hào) rst 異步清零 data 置入數(shù)據(jù) count 計(jì)數(shù)器輸出 lIBRARY IEEE。 USE 。 USE 。 ENTITY counter IS PORT (clk :IN std_logic。 load :IN std_logic。 rst :IN std_logic。 data :IN std_logic_vector(7 downto 0)。 count :OUT std_logic_vector(7 downto 0))。 END counter。 ARCHITECTURE arc_counter OF counter IS SIGNAL t :std_logic_vector(7 downto 0)。 BEGIN PROCESS(clk,rst) BEGIN IF rst =39。139。 THEN t=(others=39。039。)。 ELSIF clk39。event AND clk=39。139。 THEN IF load=39。139。 THEN t=data。 ELSE t=t1。 END IF。 END IF。 END PROCESS。 count=t。 END arc_counter。 敏感表 Process(a,b) begin s=a。 t=b。 v=s or t。 end process Process(a,b,s,t) begin s=a。 t=b。 v=s or t。 end process ?仿真和綜合的區(qū)別 ? ?結(jié)論 :出現(xiàn)在賦值號(hào)左邊的都應(yīng)該寫在敏感表中 Latch Process(x,z) begin if x=?1? then y=z。 end if。 end process。 X=0時(shí)需要保存原值 ,導(dǎo)致產(chǎn)生一個(gè) latch 使用 VHDL描述基本電路 原因 ? 采用 HDL語(yǔ)言進(jìn)行數(shù)字電路設(shè)計(jì)的流程中最重要的環(huán)節(jié)就是將語(yǔ)言描述轉(zhuǎn)化為電路,將你的設(shè)計(jì)付諸實(shí)現(xiàn),因此你必須知道所描述的語(yǔ)言對(duì)應(yīng)的電路,只有這樣綜合工具才會(huì)輸出一個(gè)可預(yù)知的、準(zhǔn)確的、高質(zhì)量的結(jié)果,滿足設(shè)計(jì)者對(duì)電路功能、時(shí)序和面積上的要求。數(shù)字電路都是由一些基本單元連接而成的,只有能準(zhǔn)確的描述這些常見電路才有可能使用這些模塊構(gòu)建更復(fù)雜的數(shù)字電路,因此熟悉數(shù)字電路中一些常見電路的描述是進(jìn)行大規(guī)模系統(tǒng)設(shè)計(jì)的基礎(chǔ) RTL電路模型 c l kD Q組合邏輯 1c l kD QC l oc k_ph1 C l oc k_ph2 c l kDQC l oc k_ph3圖 3 ― 2 多項(xiàng)時(shí)鐘的 R T L 電路模型組合邏輯 2組合邏輯 3結(jié)論 ? 對(duì)于 RTL電路的描述主要就是針對(duì)時(shí)序部件和組合邏輯的描述,如果設(shè)計(jì)者在使用 VHDL語(yǔ)言進(jìn)行描述時(shí),能遵照組合邏輯和時(shí)序電路描述的規(guī)范,那么就可以使綜合工具明確設(shè)計(jì)者的意圖,綜合出設(shè)計(jì)者期望的電路。 數(shù)字系統(tǒng)的結(jié)構(gòu) ? 除了調(diào)用的一些宏單元模塊 時(shí)序電路、組合邏輯以及總線和存儲(chǔ)單元 ,這四種基本單元就可以構(gòu)成各種各樣的數(shù)字電路。 ? 我個(gè)人的理解 ,不知道對(duì)不對(duì) ? 時(shí)序部件 ? 時(shí)序邏輯電路在任一時(shí)刻的輸出信號(hào)不但與當(dāng)時(shí)的輸入信號(hào)有關(guān),而且還依賴于電路原來(lái)的狀態(tài),因此這類電路必須具有記錄過(guò)去狀態(tài)的能力。時(shí)序邏輯電路中最基本的記憶部件就是就是觸發(fā)器( flipflop)和鎖存器( latch),它們都是一位的存儲(chǔ)單元,多位存儲(chǔ)單元就可以構(gòu)成寄存器( Register) LATCH ? 鎖存器是電平觸發(fā)的,鎖存器的值在時(shí)鐘的一個(gè)邏輯狀態(tài)可以更改,在另一個(gè)邏輯狀態(tài)被保存下來(lái),因此在使能階段輸入端的一個(gè)毛刺也會(huì)導(dǎo)致電路的誤操作,無(wú)法阻止毛刺的傳播,容易產(chǎn)生較多的競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象。從數(shù)字電路教材中,我們可以知道鎖存器的優(yōu)點(diǎn)是面積小、功耗低、速度較快,因此在許多全定制和半定制 ASIC設(shè)計(jì)中會(huì)使用鎖存器單元,但在使用FPGA或 CPLD實(shí)現(xiàn)電路時(shí),應(yīng)該避免使用鎖存器。 寄存器的描述 PROCESS BEGIN WAIT UNTIL (edge) … END PROCESS。 或 PROCESS( sensitivity list) BEGIN IF ( edge) … END IF。 END PROCESS。 時(shí)鐘沿描述 使用 WAIT語(yǔ)句時(shí) , 進(jìn)程不需要敏感表 , WAIT UNTIL語(yǔ)句就相當(dāng)于敏感表的功能 。 在使用 IF語(yǔ)句時(shí)應(yīng)該將時(shí)鐘信號(hào)放入敏感表中 。 對(duì)于時(shí)鐘的跳變有兩種描述方法 , event屬性或函數(shù)調(diào)用 。 如下所示: clk?event AND clk=?1? 上跳沿的 event屬性描述 clk?event AND clk=?0? 下跳沿的 event屬性描述 rising_edge( clk) 上跳沿的函數(shù)調(diào)用 falling_edge( clk) 下跳沿的函數(shù)調(diào)用 在電路設(shè)計(jì)中 , 應(yīng)使用 event屬性來(lái)描述時(shí)鐘跳變 , 因?yàn)橐恍?VHDL的綜合工具并不支持函數(shù)調(diào)用 , 并且函數(shù)只檢測(cè) 0到 1和 1到 0的跳變 , 無(wú)法檢測(cè)出 X到 1或 0到 X, 這對(duì)于使用的九值邏輯是不適合的 。 時(shí)鐘沿描述 時(shí)鐘沿在作為 IF或 ELSIF語(yǔ)句的條件時(shí) , 只可以單獨(dú)使用 , 不能和其他條件共存 , 如下面的語(yǔ)句就是錯(cuò)誤的: IF ( edge AND rst=?1?) THEN 同時(shí)當(dāng)某一 IF語(yǔ)句或 ELSIF語(yǔ)句后有時(shí)鐘沿做條件時(shí) , 就不可以在有ELSE付句 , 如下面的語(yǔ)句描述也是錯(cuò)誤的: IF rst=?1? THEN Sequential_statement ELSIF (edge) THEN Sequential_statement ELSE Sequential_statement END IF。 異步復(fù)位和同步復(fù)位 ? 記憶部件在電路加電后其狀態(tài)是不確定的,它的初值應(yīng)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1