ram,讀取儲存器,用於儲存資料。基本的原理就是使用時鐘驅動時序,利用位址區分位置,使用使能控制寫入。輸出的結果以寫入的位寬輸出。
頂層**:
moduleram_ip是quartus中直接呼叫ip得到的檔案,ip的所有設定均為預設。ram(
input
clk,
input
rst_n,
output [7:0
] q);
reg [7:0
] address;
reg [7:0
] data;
always@(posedge clk)begin
if(!rst_n)begin
address
<=8
'd0;
data<=8
'd0;
endelse
if(address<8
'd100)begin
address<=address+1
'b1;
data<=address;
endend
ram_ip u1(
.address(address),
.clock(clk),
.data(data),
.wren(rst_n),
.q(q)
);endmodule
測試檔案:
`timescale 1ns/1ns這個是測試的激勵檔案,採用變數監測的方式得到想要的結果。module
ram_tb;
regclk;
regrst_n;
wire [7:0
] q;
initial
begin
clk<=1
'b0;
rst_n<=1
'b0;
endalways #10 clk<=~clk;
initial
begin
$monitor($
time,,"
q=%h
",q);
#20rst_n
<=1
'b1;
#10000
$stop;
endram u1_tb(
.clk(clk),
.rst_n(rst_n),
.q(q)
);endmodule
0 q=00資料比較多,通過儲存器的檢視檢視:30 q=xx
50 q=00
90 q=01
110 q=02
130 q=03
150 q=04
170 q=05
190 q=06
210 q=07
230 q=08
250 q=09
270 q=0a
290 q=0b
310 q=0c
330 q=0d
350 q=0e
370 q=0f
390 q=10
410 q=11
430 q=12
450 q=13
470 q=14
490 q=15
510 q=16
530 q=17
550 q=18
570 q=19
590 q=1a
610 q=1b
630 q=1c
650 q=1d
670 q=1e
690 q=1f
710 q=20
730 q=21
750 q=22
770 q=23
790 q=24
810 q=25
830 q=26
850 q=27
870 q=28
890 q=29
910 q=2a
930 q=2b
950 q=2c
970 q=2d
990 q=2e
1010 q=2f
1030 q=30
1050 q=31
1070 q=32
1090 q=33
1110 q=34
1130 q=35
1150 q=36
1170 q=37
1190 q=38
1210 q=39
1230 q=3a
1250 q=3b
1270 q=3c
1290 q=3d
1310 q=3e
1330 q=3f
1350 q=40
1370 q=41
1390 q=42
1410 q=43
1430 q=44
1450 q=45
1470 q=46
1490 q=47
1510 q=48
1530 q=49
1550 q=4a
1570 q=4b
1590 q=4c
1610 q=4d
1630 q=4e
1650 q=4f
1670 q=50
1690 q=51
1710 q=52
1730 q=53
1750 q=54
1770 q=55
1790 q=56
1810 q=57
1830 q=58
1850 q=59
1870 q=5a
1890 q=5b
1910 q=5c
1930 q=5d
1950 q=5e
1970 q=5f
1990 q=60
2010 q=61
2030 q=62
2050 q=63** note: $stop : d:/library/fpga_altera/a3_ram/ram_tb.v(20
) time:
10020 ns iteration: 0 instance: /ram_tb
從前面的30ns時q的值為xx的情況可以看出,在乙個完整的時鐘週期內,如果wren發生了變化,讀取的資料也將不確定。這也是非同步時序的缺點,容易出現未知情況。如果使能訊號為同步時序,則可以有效避免。
ram還是使用的比較多的ip,一般的設計中需要處理大量的資料時,一般會採用ram來完成。與之相似的還有rom,其值是直接配置好後讀取的,無法寫入,具體的操作和ram類似。rom資料的配置檔案可以了解一下。
如何固定Linux系統的IP位址 親測有效
今天想連線winscp,發現連不上,原來linux系統的ip位址變了,為了避免ip位址的變動,我就想固定ip位址 1 輸入ifconfig 如果centos是最小化安裝,是沒有ifconfig命令的 或ip addr 可以檢視網路相關配置資訊 2 輸入 vi etc sysconfig networ...
測開之 python的虛擬環境
虛擬環境 virtual environment 它是乙個虛擬化,從電腦獨立開闢出來的環境。通俗的來講,虛擬環境就是借助虛擬機器docker來把一部分內容獨立出來,我們把這部分獨立出來的東西稱作 容器 在這個容器中,我們可以只安裝我們需要的依賴包,各個容器之間互相隔離,互不影響。譬如,本次學習需要用...
Nginx之 獲取客戶端的真實IP
為了獲取客戶端的真實ip。該模組需要安裝read ip模組,運維應該預設有安裝。沒有的話也可自行安裝 配置方式相當簡單,重新編譯 nginx 加上 with http realip module 引數,如 make install在server中增加 set real ip from 192.168...