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 用滑鼠插入文字框,放在...