VHDL程式中,怎樣對同訊號多次賦值,然後輸出。具體描述

2021-03-03 23:58:42 字數 1570 閱讀 3599

1樓:匿名使用者

用if---elsif---elsif----else 語句,不同條件下輸出不同值

2樓:匿名使用者

按照你的舉例,這不叫對一個訊號進行多次不同的賦值,只能叫不同情況下對一個訊號賦不同的值。用case語句就可以實現。

vhdl中的訊號不能多次賦值的修改 請教

3樓:匿名使用者

沒有復位訊號

抄麼?建襲

議加入復位訊號保證baidata_in_d1初始為0,如果實在不du能加zhi入復位訊號,可以嘗試下邊

dao這個定義

signal data_in_d1,data_in_d2: std_logic_vector(1 downto 0) := (others => 『0』);

有復位訊號的話可以這樣

process (clk, rst)

begin -- process

if rst = '1' then

data_in_d1 <= (others => '0');

elsif clk'event and clk = '1' thenif en = '1' then

data_in_d1 <= data_in;

else

data_in_d1 <= data_in_d1;

end if;

end if;

end process;

另外有個小建議,你這模組的名字看起來像是qpsk解調吧?

data_out <= data_in - data_in_d1;

這句話在邏輯中的結果是個組合的加法邏輯,不利於滿足下一級觸發器的setup時間,建議你插入暫存器打拍處理。

4樓:匿名使用者

你都已經end process,最後的賦值就沒有用了data_out <= data_in - data_in_d1;

5樓:匿名使用者

"想在開始的來時候將data_in_d1賦值為源bai00",是什麼意思,是說du在第一個 clk 上升zhi沿之前為00,而第一個上升沿來時,賦dao值:還是說在第一個上升沿後為00,第二個上升沿後才為data_in,如果是前者的話,它已經滿足了你的要求,

如果是後者:architecture a of qpsk_mbh is

signal data_in_d1,data_in_d2: std_logic_vector(1 downto 0);

begin

process(clk)

variable shi:bit:='0';

begin

if rising_edge(clk) thenif en = '1' then

if shi='1'then

data_in_d1<=data_in;

end if;

shi:='1';

end if;

end if;

end process;

data_out <= data_in - data_in_d1;

end a;

編C程式,用同函式名對n個資料進行從小到大排序

include using namespace std int main float b 5 long int c 5 void sort int void sort float void sort long sort a sort b sort c return 0 void sort int a...

c程式對csv檔案中的內容抓取求思路

csv雖然顯示效果上接近excel,但本質上是一個txt檔案,每個資料之間用逗號分隔 你可以做個實驗,open csv with txt 所以完全使用txt的讀取方式,按行讀取即可,然後將正行資料用逗號分隔,獲得一行陣列。使用streamreader開啟檔案,利用readline方法可以一行一行的讀...

在中,怎樣才可以在同面中錄入橫豎方向不同的文字

例如上面效果,可以通過插入橫排 豎排文字框來實現,其具體的操作步驟 1 單擊插入 形狀 基本形狀 文字框工具 2 拖動滑鼠,在頁面上繪製一個文字框 3 輸入所需的橫排文字 4 選中文字框,單擊文字框工具格式 形狀輪廓 無輪廓 5 重複上面的操作,只是插入的是豎排文字框工具 6 用滑鼠插入文字框,放在...