全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1714
推到 Plurk!
推到 Facebook!

VHDL的記憶體寫法

答題得分者是:mis881085
sungkuo
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-30 01:28:20 IP:163.28.xxx.xxx 未訂閱
我在QuartusII的help學習記憶體寫法 拿裡面的範例練習 範例簡單架構大概如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all; 
ENTITY tstrom IS
        PORT (...);
END tstrom; 
ARCHITECTURE behavior OF tstrom IS
COMPONENT asyn_rom_256x15
     GENERIC (...);
     PORT (...);
END COMPONENT; 
BEGIN
   u1: asyn_rom_256x15
        GENERIC MAP (...)
   PORT MAP (...);
END behavior;
compiler後,出現error說我沒有asyn_rom_256x15這個entity 請問:我要怎麼編輯 asyn_rom_256x15這個entity呢?? 發表人 - sungkuo 於 2005/07/30 01:37:40

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-30 02:28:18 IP:220.134.xxx.xxx 未訂閱
請問為何要寫memory?建議直接兜IC比較快, 也省Logic gate, 用CPLD/FPGA兜不划算, 有點浪費Gates.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
sungkuo
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-30 03:06:54 IP:163.28.xxx.xxx 未訂閱
ㄜ...原因喔...因為需要阿... 我是在做我學長做過的東西 整個電路架構有個block是RAM 恩...應該是要讓整個作品更有實用性 也就是能隨時輸入資料來讓作品隨時改變工作 所以沒辦法,一定得用 想問一下?? 你說直接兜IC,那是什麼意思呢? 發表人 - sungkuo 於 2005/07/30 03:07:25

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-30 09:41:32 IP:220.134.xxx.xxx 未訂閱
就是叫你別用VHDL寫,直接去買ram或rom看你須要多大,直接外接.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
mis881085
一般會員


發表:2
回覆:7
積分:6
註冊:2005-04-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-30 22:58:02 IP:203.73.xxx.xxx 未訂閱
我專題的程式碼內 也有想過使用MEMORY  不過我只會寫成PACKAGE  我想把它改成FUNCTION 好像不行 但因該 能夠讓您參考看看  如果使用QII COMPILER因該不會有問題 如果用ModelSim 的話 可能要抓ㄧ下lpm_components這個LIBRARY PS: 有人知道怎麼把這段東西寫成FUNCTION  或者 怎麼在FOR LOOP 裡面 使用它嗎? PS 已修正格式 不知是否正確
PACKAGE rom_constants IS
  constant DATA_WIDTH : INTEGER := 8;
  constant ADDR_WIDTH : INTEGER := 8;
END rom_constants; 
Library IEEE;
Use IEEE.std_logic_1164.all;
Use IEEE.std_logic_arith.all;
Use IEEE.std_logic_unsigned.all;
LIBRARY lpm;
USE lpm.lpm_components.all;
LIBRARY work;
USE work.rom_constants.ALL;
ENTITY CPU IS
PORT(
     CLK:IN STD_LOGIC;
     OE:IN STD_LOGIC;
     PC:IN STD_LOGIC_vector(7 downto 0);
     ins:out STD_LOGIC_vector(7 downto 0)
);
end cpu;
architecture a of cpu is
begin
prom:LPM_ROM
   GENERIC MAP (LPM_WIDTH=>8,
                LPM_WIDTHAD=>8,
                LPM_FILE=> "prog1.mif")
   PORT MAP(address=>pc,
            memenab=>OE,
            inclock => clk, 
            outclock => clk,
            q=>ins);
END a;
Memory之內容設定prog1.mif:
% Memory Initialization File (prog1.mif)%
DEPTH=256; --設定表格內容為256bit        
WIDTH = 8;        --設定表格內每個元件皆為8bit寬度
ADDRESS_RADIX = HEX;        --設定資料線編排為16進制
DATA_RADIX = HEX; --設定內容格式為16進制
CONTENT
        BEGIN—以下為表格內資料
    0 : 63;
    1 : 7c;
    2 : 77;
    3 : 7b;
    4 : f2;
    --....略    END; 
發表人 - mis881085 於 2005/07/31 01:23:45 發表人 - mis881085 於 2005/07/31 01:25:43

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-30 23:28:51 IP:220.134.xxx.xxx 未訂閱
mis881085 PO程式碼請縮排. 不知如何做請參考版規, 煩請修改配合!謝謝!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
sungkuo
一般會員


發表:1
回覆:2
積分:0
註冊:2005-07-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-01 00:29:22 IP:163.28.xxx.xxx 未訂閱
謝謝mis881085  程式可以跑了   我在好好研究 謝謝!!
系統時間:2024-07-03 9:57:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!