vhdl編程
VHDL語言是用來描述硬體的語言,通常用於CPLD和FPGA的硬體程序設計
VHDL語言的編譯環境可由所用晶元廠商提供,如ALTERA公司的QuartusII等軟體,還可由第三方綜合軟體來進行編譯如Synplify等。
一般一些嵌入式系統設計,fpga設計,等書籍里有相關的介紹
『貳』 什麼是VHDL語言,有什麼用
VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生於1982年。1987年底,VHDL被IEEE和美國國防部確認為標准硬體描述語言 。自IEEE公布了VHDL的標准版本,IEEE-1076(簡稱87版)之後,各EDA公司相繼推出了自己的VHDL設計環境,或宣布自己的設計工具可以和VHDL介面。此後VHDL在電子設計領域得到了廣泛的接受,並逐步取代了原有的非標準的硬體描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,(簡稱93版)。現在,VHDL和Verilog作為IEEE的工業標准硬體描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬體描述語言。有專家認為,在新的世紀中,VHDL於Verilog語言將承擔起大部分的數字系統設計任務。
VHDL主要用於描述數字系統的結構,行為,功能和介面。除了含有許多具有硬體特徵的語句外,VHDL的語言形式和描述風格與句法是十分類似於一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可是部分,及埠)和內部(或稱不可視部分),既涉及實體的內部功能和演算法完成部分。在對一個設計實體定義了外部界面後,一旦其內部開發完成後,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點
『叄』 如何用VHDL語言編程基本RS觸發器……
根據真值表的描述結合VHDL編程思想很好實現你想要的程序;
程序並不難,關鍵是你用心的程度;
我猜你也許也是一名我的同行……
自己的努力才是過硬的本領!!!!
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY RS_clk IS
PORT( S,R,res :IN std_logic;
Q,NOT_Q:out std_logic);
END RS_clk;
ARCHITECTURE behav OF RS_clk IS
signal sel1,sel2: std_logic;
BEGIN
process(res,sel1,sel2)
begin
if res='0' then sel1<='0';
sel2<='1';
elsif (S='1' and R='0') then sel1<='1';
sel2<='0';
elsif (S='0' and R='1') then sel1<='0';
sel2<='1';
elsif (S='0' and R='0') then sel1<=sel1;
sel2<=sel2;
end if;
Q<=sel1;
NOT_Q<=sel2;
end process;
END behav;
『肆』 怎麼使用VHDL語言編程
1:把你想實現的目標用vhdl寫好2:然後再在quartusII中編譯沒錯的話3:建立波形文件4:模擬
通過了就說明你的程序基本沒問題但也不一定因為這是沒加實際電路的延遲所以5:在實際板子上驗證然後調試成功的話就ok了
『伍』 vhdl怎麼編程 和其他面向對象的高級語言思路一樣嗎
VHDL是面向硬體的編程,和其他高級語言思路不太一樣。VHDL語言要求對硬體要熟悉,知道代碼和硬體結構的對應關系,這樣才能寫出綜合結果較好的程序,比如綜合出來的電路邏輯門比較少。所以VHDL代碼不能隨意寫,有些符合語法規則的代碼有可能綜合出來一個很壞的電路。
其它高級語言就沒有這樣的問題,只要符合語法,能實現功能,基本就可以接受了。
這有一篇關於硬體描述代碼的文章建議看一下,會有幫助的:http://www.52rd.com/Blog/Detail_RD.Blog_Olive_2492.html
『陸』 用VHDL語言編程~急~
1. signal cnt:std_logic_vector(4 downto 0);
process(clk)
if clk'event and clk='1' then
if cnt="2100" then
cnt<="1000";
jinwei<='1';
else cnt<=cnt+1;
end if ;
end if;
end process;
6、b(3)=1;b(0)=0
『柒』 vhdl編程
我看了你的編程程序,幾千字的文章。我都嚇了一大跳。你也真能寫。看來你是急瘋了。你就挑主要的內容輸送到網頁中。進行搜索。民間高手們肯定幫你。
『捌』 VHDL語言編程,求救,求救,求救。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity cxjc is
port(cp,cx:in std_logic;
y:out std_logic);
end cxjc;
architecture rtl of cxjc is
type state is (s0,s1,s2,s3);
signal n:state;
begin
process(cp,cx)
begin
if cp'event and cp='1' then
case n is
when s0 => if cx='1' then
n<=s1; y<='0';
else n<=s0; y<='0'; end if;
when s1 => if cx='1' then
n<=s2; y<='0';
else n<=s0; y<='0'; end if;
when s2 => if cx='0' then
n<=s3; y<='0';
else n<=s0; y<='0'; end if;
when s3 => if cx='1' then
n<=s0; y<='1';
else n<=s0; y<='0'; end if;
when others=>null;
end case;
end if;
end process ;
end rtl;
這是以前用VHDL語言寫的一個數字序列檢測器,當檢測到「1101」時,則y輸出一個高電平。
根據你的情況,可以把四位檢測位改到八位,道理一樣。可以把輸出Y接到LED1的正端。在模擬時,CLK設置為1KHZ就可以了。
其它功能嘛,談談我的想法。在process開始的地方,用一個IF語句加一個使能端S1;然後,至於數碼管的驅動,我不知道你用的是共陰的、共陽的,還是BCD碼,還有,你要用幾位數顯示錯誤碼的個數,它們的驅動方式是不一樣的。共陰的,高電平有效;共陽的,低電平有效;要是BCD碼驅動的,就簡單了,可以直接顯示出你的二進制數。一位的簡單,多位數的要用到掃描程序。
希望對你有用,祝你早日做成功。