系統任務$readmemb和$readmemh 這兩個系統任務用來從檔案中讀取資料到儲存器中。可以在模擬的任何時刻被執行使用,使用格式共六種: (1) $readmemb(“”,); (2) $readmemb(“”,,); (3) $readmemb(“”,,,); (4) $readmema(“”,); (5) $readmema(“”,>); (6) $readmema(“”,,,); 在這兩個系統任務中,被讀取的資料檔案的內容只能包含:空白位置(空格、換行、製表格、註釋行、二進位制或十六進位制的數字。數字中不能包含位寬說明和格式說明,對於$readmemb系統任務,每個數字必須使二進位制數字,對於$readmemh系統任務,每個數字必須使十六進位制數字。數字中不定值x或X,高阻值z或Z,和在下劃線(_)的使用方法及代表的意義與一般Verilog HDL程式中的用法和意義是一樣的。另外,數字必須用空白位置或註釋行來分隔開。 對於上面6種系統任務格式,需補充說明一下5點: (1) 如果系統任務宣告語句中和資料檔案裡都沒有進行地址說明,則預設存放起始地址為該儲存器定義語句中的起始地址。資料檔案裡的資料被連續存放到該儲存器中,直到該儲存單元存滿為止或資料檔案裡的資料存完。 (2) 如果系統任務中說明了存放的起始地址,沒有說明存放的結束地址,則資料從起始地址開始存放,存到該儲存器定義語句中的結束地址為止。 (3) 如果系統任務宣告語句中,結束地址和起始地址都進行了說明,則資料檔案裡的資料按該起始地址開始存放到儲存單元中,直到該結束地址,而不考慮該儲存器的定義語句的起始地址和結束地址。 (4) 如果地址資訊在系統任務和資料檔案裡面都進行了說明,那麼資料檔案裡的地址必須在系統任務中地址引數宣告的範圍之內。否則提示錯誤,並且裝載資料到儲存器中的操作被中斷。 (5) 如果資料檔案裡的資料個數和系統任務中起始地址及結束地址暗示的資料個數不同的話,也要提示錯誤資訊。
系統任務$readmemb和$readmemh 這兩個系統任務用來從檔案中讀取資料到儲存器中。可以在模擬的任何時刻被執行使用,使用格式共六種: (1) $readmemb(“”,); (2) $readmemb(“”,,); (3) $readmemb(“”,,,); (4) $readmema(“”,); (5) $readmema(“”,>); (6) $readmema(“”,,,); 在這兩個系統任務中,被讀取的資料檔案的內容只能包含:空白位置(空格、換行、製表格、註釋行、二進位制或十六進位制的數字。數字中不能包含位寬說明和格式說明,對於$readmemb系統任務,每個數字必須使二進位制數字,對於$readmemh系統任務,每個數字必須使十六進位制數字。數字中不定值x或X,高阻值z或Z,和在下劃線(_)的使用方法及代表的意義與一般Verilog HDL程式中的用法和意義是一樣的。另外,數字必須用空白位置或註釋行來分隔開。 對於上面6種系統任務格式,需補充說明一下5點: (1) 如果系統任務宣告語句中和資料檔案裡都沒有進行地址說明,則預設存放起始地址為該儲存器定義語句中的起始地址。資料檔案裡的資料被連續存放到該儲存器中,直到該儲存單元存滿為止或資料檔案裡的資料存完。 (2) 如果系統任務中說明了存放的起始地址,沒有說明存放的結束地址,則資料從起始地址開始存放,存到該儲存器定義語句中的結束地址為止。 (3) 如果系統任務宣告語句中,結束地址和起始地址都進行了說明,則資料檔案裡的資料按該起始地址開始存放到儲存單元中,直到該結束地址,而不考慮該儲存器的定義語句的起始地址和結束地址。 (4) 如果地址資訊在系統任務和資料檔案裡面都進行了說明,那麼資料檔案裡的地址必須在系統任務中地址引數宣告的範圍之內。否則提示錯誤,並且裝載資料到儲存器中的操作被中斷。 (5) 如果資料檔案裡的資料個數和系統任務中起始地址及結束地址暗示的資料個數不同的話,也要提示錯誤資訊。